From 9f4aa97822adc791f700670ef0fc7636849563b7 Mon Sep 17 00:00:00 2001 From: Julian Blake Kongslie Date: Sat, 29 Oct 2022 18:18:26 -0700 Subject: Understanding interrupt handling within SIMH (see echo_int.pal) Add list of Bugs Add event log file parser More changes associated with widening the ctlregs (FIXME add a typedef) Add some keyboard instructions --- programs/echo_int.pal | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 programs/echo_int.pal (limited to 'programs/echo_int.pal') diff --git a/programs/echo_int.pal b/programs/echo_int.pal new file mode 100644 index 0000000..62886ff --- /dev/null +++ b/programs/echo_int.pal @@ -0,0 +1,58 @@ +/ vim: set sw=8 noexpandtab : + +*000 + +INTRET, 0 + JMP GOTINT + +*010 + +HEAD, 7777 / because preincrement +TAIL, 7777 + +*200 + + CLA IAC + KIE + ION + CLA +LOOP, TAD TAIL + CMA IAC + TAD HEAD + SNA + JMP LOOP + CLA + CDF 0010 + TAD I TAIL + CDF 0000 + IOF / critical section + TLS +BUSY, TSF / FIXME: remove busy wait inside IOF (see echo_optimal.pal) + JMP BUSY + TCF + ION + CLA / end critical section + JMP LOOP + +*400 + +SAVEA, 0 +SAVEF, 0 + +GOTINT, DCA SAVEA + GTF + AND (7577) + DCA SAVEF + KSF + JMP RETINT + KRB + CDF 0010 + DCA I HEAD + CDF 0000 +RETINT, CLA + TAD SAVEF + RTF + CLA + TAD SAVEA + ION + JMP I INTRET -- cgit v1.2.3