diff options
Diffstat (limited to 'programs')
| -rw-r--r-- | programs/echo.pal | 6 | ||||
| -rw-r--r-- | programs/echo_int.pal | 58 | ||||
| -rw-r--r-- | programs/echo_optimal.pal | 67 | ||||
| -rw-r--r-- | programs/fib_mike.pal (renamed from programs/mike_fib.pal) | 2 |
4 files changed, 128 insertions, 5 deletions
diff --git a/programs/echo.pal b/programs/echo.pal index 4e59623..83b46e8 100644 --- a/programs/echo.pal +++ b/programs/echo.pal | |||
| @@ -1,13 +1,11 @@ | |||
| 1 | / vim: set sw=8 noexpandtab : | 1 | / vim: set sw=8 noexpandtab : |
| 2 | 2 | ||
| 3 | *200 | 3 | *200 |
| 4 | TFL | ||
| 4 | LOOP, TSF | 5 | LOOP, TSF |
| 5 | JMS ECHO | ||
| 6 | JMP LOOP | 6 | JMP LOOP |
| 7 | |||
| 8 | ECHO, 0 | ||
| 9 | WAIT, KSF | 7 | WAIT, KSF |
| 10 | JMP WAIT | 8 | JMP WAIT |
| 11 | KRB | 9 | KRB |
| 12 | TLS | 10 | TLS |
| 13 | JMP I ECHO | 11 | JMP LOOP |
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 @@ | |||
| 1 | / vim: set sw=8 noexpandtab : | ||
| 2 | |||
| 3 | *000 | ||
| 4 | |||
| 5 | INTRET, 0 | ||
| 6 | JMP GOTINT | ||
| 7 | |||
| 8 | *010 | ||
| 9 | |||
| 10 | HEAD, 7777 / because preincrement | ||
| 11 | TAIL, 7777 | ||
| 12 | |||
| 13 | *200 | ||
| 14 | |||
| 15 | CLA IAC | ||
| 16 | KIE | ||
| 17 | ION | ||
| 18 | CLA | ||
| 19 | LOOP, TAD TAIL | ||
| 20 | CMA IAC | ||
| 21 | TAD HEAD | ||
| 22 | SNA | ||
| 23 | JMP LOOP | ||
| 24 | CLA | ||
| 25 | CDF 0010 | ||
| 26 | TAD I TAIL | ||
| 27 | CDF 0000 | ||
| 28 | IOF / critical section | ||
| 29 | TLS | ||
| 30 | BUSY, TSF / FIXME: remove busy wait inside IOF (see echo_optimal.pal) | ||
| 31 | JMP BUSY | ||
| 32 | TCF | ||
| 33 | ION | ||
| 34 | CLA / end critical section | ||
| 35 | JMP LOOP | ||
| 36 | |||
| 37 | *400 | ||
| 38 | |||
| 39 | SAVEA, 0 | ||
| 40 | SAVEF, 0 | ||
| 41 | |||
| 42 | GOTINT, DCA SAVEA | ||
| 43 | GTF | ||
| 44 | AND (7577) | ||
| 45 | DCA SAVEF | ||
| 46 | KSF | ||
| 47 | JMP RETINT | ||
| 48 | KRB | ||
| 49 | CDF 0010 | ||
| 50 | DCA I HEAD | ||
| 51 | CDF 0000 | ||
| 52 | RETINT, CLA | ||
| 53 | TAD SAVEF | ||
| 54 | RTF | ||
| 55 | CLA | ||
| 56 | TAD SAVEA | ||
| 57 | ION | ||
| 58 | JMP I INTRET | ||
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 @@ | |||
| 1 | / vim: set sw=8 noexpandtab : | ||
| 2 | |||
| 3 | *000 | ||
| 4 | |||
| 5 | INTRET, 0 | ||
| 6 | JMP GOTINT | ||
| 7 | |||
| 8 | *010 | ||
| 9 | |||
| 10 | HEAD, 7777 / because preincrement | ||
| 11 | TAIL, 7777 | ||
| 12 | |||
| 13 | *100 | ||
| 14 | |||
| 15 | TTBUSY, 0 / FIXME: sometimes we get wedged with TTBUSY=1, but TT flag is clear (no TT interrupt occurs) | ||
| 16 | |||
| 17 | *200 | ||
| 18 | |||
| 19 | CLA IAC | ||
| 20 | KIE | ||
| 21 | ION | ||
| 22 | CLA | ||
| 23 | LOOP, TAD TTBUSY | ||
| 24 | SZA | ||
| 25 | JMP LOOP | ||
| 26 | TAD TAIL | ||
| 27 | CMA IAC | ||
| 28 | TAD HEAD | ||
| 29 | SNA | ||
| 30 | JMP LOOP | ||
| 31 | CLA | ||
| 32 | CDF 0010 | ||
| 33 | TAD I TAIL | ||
| 34 | CDF 0000 | ||
| 35 | IOF / critical section | ||
| 36 | TPC | ||
| 37 | CLA IAC | ||
| 38 | ION | ||
| 39 | DCA TTBUSY / end critical section | ||
| 40 | JMP LOOP | ||
| 41 | |||
| 42 | *400 | ||
| 43 | |||
| 44 | SAVEA, 0 | ||
| 45 | SAVEF, 0 | ||
| 46 | |||
| 47 | GOTINT, DCA SAVEA | ||
| 48 | GTF | ||
| 49 | AND (7577) | ||
| 50 | DCA SAVEF | ||
| 51 | TSF | ||
| 52 | JMP KBIN | ||
| 53 | DCA TTBUSY | ||
| 54 | TCF | ||
| 55 | KBIN, KSF | ||
| 56 | JMP RETINT | ||
| 57 | KRB | ||
| 58 | CDF 0010 | ||
| 59 | DCA I HEAD | ||
| 60 | CDF 0000 | ||
| 61 | RETINT, CLA | ||
| 62 | TAD SAVEF | ||
| 63 | RTF | ||
| 64 | CLA | ||
| 65 | TAD SAVEA | ||
| 66 | ION | ||
| 67 | JMP I INTRET | ||
diff --git a/programs/mike_fib.pal b/programs/fib_mike.pal index 6f56109..a20a843 100644 --- a/programs/mike_fib.pal +++ b/programs/fib_mike.pal | |||
| @@ -9,7 +9,7 @@ LOOP, CLA | |||
| 9 | TAD FIB0 | 9 | TAD FIB0 |
| 10 | JMS PUTN | 10 | JMS PUTN |
| 11 | CLA | 11 | CLA |
| 12 | TAD (054) | 12 | TAD (012) |
| 13 | JMS PUTC | 13 | JMS PUTC |
| 14 | CLA | 14 | CLA |
| 15 | TAD FIB0 | 15 | TAD FIB0 |
