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_optimal.pal | 67 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 programs/echo_optimal.pal (limited to 'programs/echo_optimal.pal') diff --git a/programs/echo_optimal.pal b/programs/echo_optimal.pal new file mode 100644 index 0000000..1281309 --- /dev/null +++ b/programs/echo_optimal.pal @@ -0,0 +1,67 @@ +/ vim: set sw=8 noexpandtab : + +*000 + +INTRET, 0 + JMP GOTINT + +*010 + +HEAD, 7777 / because preincrement +TAIL, 7777 + +*100 + +TTBUSY, 0 / FIXME: sometimes we get wedged with TTBUSY=1, but TT flag is clear (no TT interrupt occurs) + +*200 + + CLA IAC + KIE + ION + CLA +LOOP, TAD TTBUSY + SZA + JMP LOOP + TAD TAIL + CMA IAC + TAD HEAD + SNA + JMP LOOP + CLA + CDF 0010 + TAD I TAIL + CDF 0000 + IOF / critical section + TPC + CLA IAC + ION + DCA TTBUSY / end critical section + JMP LOOP + +*400 + +SAVEA, 0 +SAVEF, 0 + +GOTINT, DCA SAVEA + GTF + AND (7577) + DCA SAVEF + TSF + JMP KBIN + DCA TTBUSY + TCF +KBIN, 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