From 36e7c28531ee7bade9506144f48afed4c7ccd874 Mon Sep 17 00:00:00 2001 From: Julian Blake Kongslie Date: Sat, 5 Nov 2022 11:32:21 -0700 Subject: Rename/remove some of the example programs --- programs/count.pal | 6 --- programs/echo_int.pal | 58 -------------------- programs/echo_optimal.pal | 67 ------------------------ programs/fib.pal | 131 ++++++++++++++++++++++++++++++++++++++++------ programs/fib_mike.pal | 117 ----------------------------------------- programs/queue.pal | 67 ++++++++++++++++++++++++ 6 files changed, 183 insertions(+), 263 deletions(-) delete mode 100644 programs/count.pal delete mode 100644 programs/echo_int.pal delete mode 100644 programs/echo_optimal.pal delete mode 100644 programs/fib_mike.pal create mode 100644 programs/queue.pal (limited to 'programs') diff --git a/programs/count.pal b/programs/count.pal deleted file mode 100644 index aa34be6..0000000 --- a/programs/count.pal +++ /dev/null @@ -1,6 +0,0 @@ -/ vim: set sw=8 noexpandtab : - -*200 - -LOOP, TAD (1) - JMP LOOP diff --git a/programs/echo_int.pal b/programs/echo_int.pal deleted file mode 100644 index 62886ff..0000000 --- a/programs/echo_int.pal +++ /dev/null @@ -1,58 +0,0 @@ -/ 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 diff --git a/programs/echo_optimal.pal b/programs/echo_optimal.pal deleted file mode 100644 index 89a1fea..0000000 --- a/programs/echo_optimal.pal +++ /dev/null @@ -1,67 +0,0 @@ -/ vim: set sw=8 noexpandtab : - -*000 - -INTRET, 0 - JMP GOTINT - -*010 - -HEAD, 7777 / because preincrement -TAIL, 7777 - -*100 - -TTBUSY, 0 - -*200 - - CLA IAC - KIE - ION -LOOP, CLA - 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 - -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 - -SAVEA, 0 -SAVEF, 0 diff --git a/programs/fib.pal b/programs/fib.pal index fb68dc1..a20a843 100644 --- a/programs/fib.pal +++ b/programs/fib.pal @@ -1,16 +1,117 @@ -/ vim: set sw=8 noexpandtab : - -*200 - -LOOP, TAD NPLUS1 - MQL - TAD N - DCA NPLUS1 - MQA - DCA N + *200 +MAIN, CLA + TAD (-26) + DCA FIBN + DCA FIB0 + IAC + DCA FIB1 +LOOP, CLA + TAD FIB0 + JMS PUTN + CLA + TAD (012) + JMS PUTC + CLA + TAD FIB0 + TAD FIB1 + DCA FIB2 + TAD FIB1 + DCA FIB0 + TAD FIB2 + DCA FIB1 + ISZ FIBN JMP LOOP - -*300 - -N, 0 -NPLUS1, 1 +EXIT, HLT + CLA IAC + DCA FIB1 + DCA FIB0 + JMP MAIN +PUTN, 0 + JMS ITOA + CMA IAC + IAC + CMA IAC + DCA 10 +PUTNL, CLA + TAD I 10 + SPA + JMP I PUTN + TAD (60) + JMS PUTC + JMP PUTNL +PUTC, 0 + TLS + TSF + JMP .-1 + JMP I PUTC +ITOA, 0 + DCA ITOAV + DCA ITOAD + DCA ITOAD+1 + DCA ITOAD+2 + DCA ITOAD+3 + TAD (-14) + DCA ITOAN +ITOAL, CLL / LOOP OVER BINARY INPUT BITS + TAD ITOAD+3 + JMS ITOA2X + DCA ITOAD+3 + TAD ITOAD+2 + JMS ITOA2X + DCA ITOAD+2 + TAD ITOAD+1 + JMS ITOA2X + DCA ITOAD+1 + TAD ITOAD + JMS ITOA2X + DCA ITOAD + CLL + TAD ITOAV / SHIFT MSB OUT OF INPUT VALUE + RAL + DCA ITOAV + RAL + TAD ITOAD+3 / ADD SHIFTED-OUT MSB TO DECIMAL LSD + DCA ITOAD+3 + ISZ ITOAN + JMP ITOAL / NEXT LOOP ITERATION + TAD (ITOAD) + DCA ITOAR +ITOAJ, TAD I ITOAR + SZA + JMP ITOAX + ISZ ITOAR + TAD I ITOAR + SZA + JMP ITOAX + ISZ ITOAR + TAD I ITOAR + SZA + JMP ITOAX + ISZ ITOAR +ITOAX, CLA + TAD ITOAR + JMP I ITOA +ITOA2X, 0 + RAL / PUTS 0 IN LINK + DCA ITOAT + TAD (-12) + TAD ITOAT / PUTS 1 IN LINK IF WRAPPED + SMA + DCA ITOAT + CLA + TAD ITOAT + JMP I ITOA2X +FIB0, 0 +FIB1, 1 +FIB2, 0 +FIBN, -27 +ITOAD, 0 / OUTPUT DIGITS (MSD FIRST) + 0 + 0 + 0 + 4000 / OUTPUT SENTINEL +ITOAN, 0 / INPUT BITS LOOP COUNTER +ITOAR, 0 / POINTER TO FIRST NONZERO DIGIT +ITOAT, 0 / SCRATCHPAD FOR ITOA2X +ITOAV, 0 / VALUE BEING CONVERTED (TEMPORARY) +$ diff --git a/programs/fib_mike.pal b/programs/fib_mike.pal deleted file mode 100644 index a20a843..0000000 --- a/programs/fib_mike.pal +++ /dev/null @@ -1,117 +0,0 @@ - *200 -MAIN, CLA - TAD (-26) - DCA FIBN - DCA FIB0 - IAC - DCA FIB1 -LOOP, CLA - TAD FIB0 - JMS PUTN - CLA - TAD (012) - JMS PUTC - CLA - TAD FIB0 - TAD FIB1 - DCA FIB2 - TAD FIB1 - DCA FIB0 - TAD FIB2 - DCA FIB1 - ISZ FIBN - JMP LOOP -EXIT, HLT - CLA IAC - DCA FIB1 - DCA FIB0 - JMP MAIN -PUTN, 0 - JMS ITOA - CMA IAC - IAC - CMA IAC - DCA 10 -PUTNL, CLA - TAD I 10 - SPA - JMP I PUTN - TAD (60) - JMS PUTC - JMP PUTNL -PUTC, 0 - TLS - TSF - JMP .-1 - JMP I PUTC -ITOA, 0 - DCA ITOAV - DCA ITOAD - DCA ITOAD+1 - DCA ITOAD+2 - DCA ITOAD+3 - TAD (-14) - DCA ITOAN -ITOAL, CLL / LOOP OVER BINARY INPUT BITS - TAD ITOAD+3 - JMS ITOA2X - DCA ITOAD+3 - TAD ITOAD+2 - JMS ITOA2X - DCA ITOAD+2 - TAD ITOAD+1 - JMS ITOA2X - DCA ITOAD+1 - TAD ITOAD - JMS ITOA2X - DCA ITOAD - CLL - TAD ITOAV / SHIFT MSB OUT OF INPUT VALUE - RAL - DCA ITOAV - RAL - TAD ITOAD+3 / ADD SHIFTED-OUT MSB TO DECIMAL LSD - DCA ITOAD+3 - ISZ ITOAN - JMP ITOAL / NEXT LOOP ITERATION - TAD (ITOAD) - DCA ITOAR -ITOAJ, TAD I ITOAR - SZA - JMP ITOAX - ISZ ITOAR - TAD I ITOAR - SZA - JMP ITOAX - ISZ ITOAR - TAD I ITOAR - SZA - JMP ITOAX - ISZ ITOAR -ITOAX, CLA - TAD ITOAR - JMP I ITOA -ITOA2X, 0 - RAL / PUTS 0 IN LINK - DCA ITOAT - TAD (-12) - TAD ITOAT / PUTS 1 IN LINK IF WRAPPED - SMA - DCA ITOAT - CLA - TAD ITOAT - JMP I ITOA2X -FIB0, 0 -FIB1, 1 -FIB2, 0 -FIBN, -27 -ITOAD, 0 / OUTPUT DIGITS (MSD FIRST) - 0 - 0 - 0 - 4000 / OUTPUT SENTINEL -ITOAN, 0 / INPUT BITS LOOP COUNTER -ITOAR, 0 / POINTER TO FIRST NONZERO DIGIT -ITOAT, 0 / SCRATCHPAD FOR ITOA2X -ITOAV, 0 / VALUE BEING CONVERTED (TEMPORARY) -$ diff --git a/programs/queue.pal b/programs/queue.pal new file mode 100644 index 0000000..89a1fea --- /dev/null +++ b/programs/queue.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 + +*200 + + CLA IAC + KIE + ION +LOOP, CLA + 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 + +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 + +SAVEA, 0 +SAVEF, 0 -- cgit v1.2.3