summaryrefslogtreecommitdiff
path: root/programs
diff options
context:
space:
mode:
authorJulian Blake Kongslie2022-11-05 11:32:21 -0700
committerJulian Blake Kongslie2022-11-05 11:32:21 -0700
commit36e7c28531ee7bade9506144f48afed4c7ccd874 (patch)
tree2713b89afed0c225516057721b3e95763f062adf /programs
parentAvoid rereading the FLAGS register; use FLAGS_SAVED for GTF. (diff)
downloadbiggolf-36e7c28531ee7bade9506144f48afed4c7ccd874.tar.xz
Rename/remove some of the example programs
Diffstat (limited to 'programs')
-rw-r--r--programs/count.pal6
-rw-r--r--programs/echo_int.pal58
-rw-r--r--programs/fib.pal131
-rw-r--r--programs/fib_mike.pal117
-rw-r--r--programs/queue.pal (renamed from programs/echo_optimal.pal)0
5 files changed, 116 insertions, 196 deletions
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 @@
1/ vim: set sw=8 noexpandtab :
2
3*200
4
5LOOP, TAD (1)
6 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 @@
1/ vim: set sw=8 noexpandtab :
2
3*000
4
5INTRET, 0
6 JMP GOTINT
7
8*010
9
10HEAD, 7777 / because preincrement
11TAIL, 7777
12
13*200
14
15 CLA IAC
16 KIE
17 ION
18 CLA
19LOOP, 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
30BUSY, 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
39SAVEA, 0
40SAVEF, 0
41
42GOTINT, 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
52RETINT, CLA
53 TAD SAVEF
54 RTF
55 CLA
56 TAD SAVEA
57 ION
58 JMP I INTRET
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 @@
1/ vim: set sw=8 noexpandtab : 1 *200
2 2MAIN, CLA
3*200 3 TAD (-26)
4 4 DCA FIBN
5LOOP, TAD NPLUS1 5 DCA FIB0
6 MQL 6 IAC
7 TAD N 7 DCA FIB1
8 DCA NPLUS1 8LOOP, CLA
9 MQA 9 TAD FIB0
10 DCA N 10 JMS PUTN
11 CLA
12 TAD (012)
13 JMS PUTC
14 CLA
15 TAD FIB0
16 TAD FIB1
17 DCA FIB2
18 TAD FIB1
19 DCA FIB0
20 TAD FIB2
21 DCA FIB1
22 ISZ FIBN
11 JMP LOOP 23 JMP LOOP
12 24EXIT, HLT
13*300 25 CLA IAC
14 26 DCA FIB1
15N, 0 27 DCA FIB0
16NPLUS1, 1 28 JMP MAIN
29PUTN, 0
30 JMS ITOA
31 CMA IAC
32 IAC
33 CMA IAC
34 DCA 10
35PUTNL, CLA
36 TAD I 10
37 SPA
38 JMP I PUTN
39 TAD (60)
40 JMS PUTC
41 JMP PUTNL
42PUTC, 0
43 TLS
44 TSF
45 JMP .-1
46 JMP I PUTC
47ITOA, 0
48 DCA ITOAV
49 DCA ITOAD
50 DCA ITOAD+1
51 DCA ITOAD+2
52 DCA ITOAD+3
53 TAD (-14)
54 DCA ITOAN
55ITOAL, CLL / LOOP OVER BINARY INPUT BITS
56 TAD ITOAD+3
57 JMS ITOA2X
58 DCA ITOAD+3
59 TAD ITOAD+2
60 JMS ITOA2X
61 DCA ITOAD+2
62 TAD ITOAD+1
63 JMS ITOA2X
64 DCA ITOAD+1
65 TAD ITOAD
66 JMS ITOA2X
67 DCA ITOAD
68 CLL
69 TAD ITOAV / SHIFT MSB OUT OF INPUT VALUE
70 RAL
71 DCA ITOAV
72 RAL
73 TAD ITOAD+3 / ADD SHIFTED-OUT MSB TO DECIMAL LSD
74 DCA ITOAD+3
75 ISZ ITOAN
76 JMP ITOAL / NEXT LOOP ITERATION
77 TAD (ITOAD)
78 DCA ITOAR
79ITOAJ, TAD I ITOAR
80 SZA
81 JMP ITOAX
82 ISZ ITOAR
83 TAD I ITOAR
84 SZA
85 JMP ITOAX
86 ISZ ITOAR
87 TAD I ITOAR
88 SZA
89 JMP ITOAX
90 ISZ ITOAR
91ITOAX, CLA
92 TAD ITOAR
93 JMP I ITOA
94ITOA2X, 0
95 RAL / PUTS 0 IN LINK
96 DCA ITOAT
97 TAD (-12)
98 TAD ITOAT / PUTS 1 IN LINK IF WRAPPED
99 SMA
100 DCA ITOAT
101 CLA
102 TAD ITOAT
103 JMP I ITOA2X
104FIB0, 0
105FIB1, 1
106FIB2, 0
107FIBN, -27
108ITOAD, 0 / OUTPUT DIGITS (MSD FIRST)
109 0
110 0
111 0
112 4000 / OUTPUT SENTINEL
113ITOAN, 0 / INPUT BITS LOOP COUNTER
114ITOAR, 0 / POINTER TO FIRST NONZERO DIGIT
115ITOAT, 0 / SCRATCHPAD FOR ITOA2X
116ITOAV, 0 / VALUE BEING CONVERTED (TEMPORARY)
117$
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 @@
1 *200
2MAIN, CLA
3 TAD (-26)
4 DCA FIBN
5 DCA FIB0
6 IAC
7 DCA FIB1
8LOOP, CLA
9 TAD FIB0
10 JMS PUTN
11 CLA
12 TAD (012)
13 JMS PUTC
14 CLA
15 TAD FIB0
16 TAD FIB1
17 DCA FIB2
18 TAD FIB1
19 DCA FIB0
20 TAD FIB2
21 DCA FIB1
22 ISZ FIBN
23 JMP LOOP
24EXIT, HLT
25 CLA IAC
26 DCA FIB1
27 DCA FIB0
28 JMP MAIN
29PUTN, 0
30 JMS ITOA
31 CMA IAC
32 IAC
33 CMA IAC
34 DCA 10
35PUTNL, CLA
36 TAD I 10
37 SPA
38 JMP I PUTN
39 TAD (60)
40 JMS PUTC
41 JMP PUTNL
42PUTC, 0
43 TLS
44 TSF
45 JMP .-1
46 JMP I PUTC
47ITOA, 0
48 DCA ITOAV
49 DCA ITOAD
50 DCA ITOAD+1
51 DCA ITOAD+2
52 DCA ITOAD+3
53 TAD (-14)
54 DCA ITOAN
55ITOAL, CLL / LOOP OVER BINARY INPUT BITS
56 TAD ITOAD+3
57 JMS ITOA2X
58 DCA ITOAD+3
59 TAD ITOAD+2
60 JMS ITOA2X
61 DCA ITOAD+2
62 TAD ITOAD+1
63 JMS ITOA2X
64 DCA ITOAD+1
65 TAD ITOAD
66 JMS ITOA2X
67 DCA ITOAD
68 CLL
69 TAD ITOAV / SHIFT MSB OUT OF INPUT VALUE
70 RAL
71 DCA ITOAV
72 RAL
73 TAD ITOAD+3 / ADD SHIFTED-OUT MSB TO DECIMAL LSD
74 DCA ITOAD+3
75 ISZ ITOAN
76 JMP ITOAL / NEXT LOOP ITERATION
77 TAD (ITOAD)
78 DCA ITOAR
79ITOAJ, TAD I ITOAR
80 SZA
81 JMP ITOAX
82 ISZ ITOAR
83 TAD I ITOAR
84 SZA
85 JMP ITOAX
86 ISZ ITOAR
87 TAD I ITOAR
88 SZA
89 JMP ITOAX
90 ISZ ITOAR
91ITOAX, CLA
92 TAD ITOAR
93 JMP I ITOA
94ITOA2X, 0
95 RAL / PUTS 0 IN LINK
96 DCA ITOAT
97 TAD (-12)
98 TAD ITOAT / PUTS 1 IN LINK IF WRAPPED
99 SMA
100 DCA ITOAT
101 CLA
102 TAD ITOAT
103 JMP I ITOA2X
104FIB0, 0
105FIB1, 1
106FIB2, 0
107FIBN, -27
108ITOAD, 0 / OUTPUT DIGITS (MSD FIRST)
109 0
110 0
111 0
112 4000 / OUTPUT SENTINEL
113ITOAN, 0 / INPUT BITS LOOP COUNTER
114ITOAR, 0 / POINTER TO FIRST NONZERO DIGIT
115ITOAT, 0 / SCRATCHPAD FOR ITOA2X
116ITOAV, 0 / VALUE BEING CONVERTED (TEMPORARY)
117$
diff --git a/programs/echo_optimal.pal b/programs/queue.pal
index 89a1fea..89a1fea 100644
--- a/programs/echo_optimal.pal
+++ b/programs/queue.pal