summaryrefslogtreecommitdiff
path: root/programs/fib.pal
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/fib.pal
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 '')
-rw-r--r--programs/fib.pal131
1 files changed, 116 insertions, 15 deletions
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$