A large commit.
[pdp8.git] / sw / adventure / work / A5TOA1.RA
CommitLineData
84b5715c
PH
1/ SUBROUTINE A5TOA1(A,B,D)\r
2/(pdp11:)SUBROUTINE A5TOA1(A,B,C,D)\r
3/\r
4/ THIS ROUTINE TAKES THE UP TO 6 CHARACTER "WORD" IN A:B:C\r
5/ AND TYPES IT OUT, FOLLOWED BY THE PUNCTUATION MARK IN D.\r
6/ IT ALSO APPENDS A CRLF TO GET TO A NEW LINE.\r
7/ For OS/8: the word is in A,B with nothing in C.\r
8/\r
9/ IMPLICIT INTEGER (A-Z)\r
10/ COMMON /ALPHAS/ BLANK\r
11\r
12 EXTERN SIXOUT\r
13 EXTERN CGET\r
14 EXTERN CPUT\r
15 SECT A5TOA1\r
16 JA #ST\r
17#XR, ORG .+10\r
18 TEXT +A5TOA1+\r
19#RET, SETX #XR\r
20 SETB #BASE\r
21 JA .+3\r
22#BASE, ORG .+6\r
81e70d48 23ZERO, F 0\r
84b5715c
PH
24A, ORG .+3\r
25B, ORG .+3\r
26D, ORG .+3\r
81e70d48 27ONE, F 1\r
84b5715c 28THREE, F 3\r
81e70d48 29BLANK, TEXT + +\r
84b5715c
PH
30 ORG #BASE+30\r
31 FNOP\r
32 JA #RET\r
33 FNOP\r
34#GOBAK, 0;0\r
84b5715c
PH
35#RTN, BASE #BASE\r
36 JA #GOBAK\r
84b5715c
PH
37#ST, STARTD\r
38 0210\r
39 FSTA #GOBAK,0\r
40 0200\r
41 SETX #XR\r
42 SETB #BASE\r
43 LDX 0,1\r
44 FSTA #BASE\r
45 FLDA% #BASE,1+\r
46 FSTA A\r
47 FLDA% #BASE,1+\r
48 FSTA B\r
49 FLDA% #BASE,1+\r
50 FSTA D\r
51 STARTF\r
52 FLDA% A\r
53 FSTA A\r
54 FLDA% B\r
55 FSTA B\r
56 FLDA% D\r
57 FSTA D\r
58/ IF (A .NE. BLANK) TYPE 1,A\r
59 FLDA A\r
60 FSUB BLANK\r
61 JEQ #G0001\r
62 JSR TRIM\r
63 JA .+4\r
64 JA A\r
65 JSR SIXOUT\r
66 JA .+10\r
67 JA A\r
68 JA ZERO\r
81e70d48 69 JA THREE\r
84b5715c
PH
70/ IF (B .NE. BLANK) TYPE 1,B\r
71#G0001, FLDA B\r
72 FSUB BLANK\r
73 JEQ #G0002\r
74 JSR TRIM\r
75 JA .+4\r
76 JA B\r
77 JSR SIXOUT\r
78 JA .+10\r
79 JA B\r
80 JA ZERO\r
81e70d48 81 JA THREE\r
84b5715c
PH
82/ IF (C .NE. BLANK) TYPE 1,C\r
83/ TYPE 2,D\r
84#G0002, JSR TRIM\r
85 JA .+4\r
86 JA D\r
87 JSR SIXOUT\r
88 JA #RTN\r
89 JA D\r
90 JA ZERO\r
81e70d48 91 JA ONE\r
84b5715c
PH
92/ RETURN\r
93/ END\r
94\r
95/1 FORMAT('+',A2,$)\r
96/2 FORMAT('+',A2)\r
97\r
98 SECT TRIM\r
99 JA #TST\r
100#TXR, ORG .+10\r
101 TEXT +TRIM +\r
102#TRET, SETX #TXR\r
103 SETB #TBASE\r
104 JA .+3\r
105#TBASE, ORG .+6\r
106PSTR, ORG .+3\r
107I, ORG .+3\r
108CH, ORG .+3\r
109K1, F 1\r
110K6, F 6\r
111K32, F 32\r
112 ORG #TBASE+30\r
113 FNOP\r
114 JA #TRET\r
115 FNOP\r
116#TGOBK, 0;0\r
117\r
118#TRTN, BASE #TBASE\r
119 JA #TGOBK\r
120#TST, STARTD\r
121 0210\r
122 FSTA #TGOBK,0\r
123 0200\r
124 SETX #TXR\r
125 SETB #TBASE\r
126 LDX 0,1\r
127 FSTA #TBASE\r
128 FLDA% #TBASE,1+\r
129 FSTA PSTR\r
130 STARTF\r
131\r
132 FLDA K6\r
133 FSTA I\r
134#T10, FLDA PSTR\r
135 STARTD\r
136 FSTA #TG001\r
137 FSTA #TG002\r
138 STARTF\r
139 JSR CGET\r
140 JA .+0010\r
141#TG001, JA .\r
142 JA I\r
143 JA CH\r
144 FLDA CH\r
145 FSUB K32\r
146 JNE #TRTN\r
147 JSR CPUT\r
148 JA .+0010\r
149#TG002, JA .\r
150 JA I\r
151 JA ZERO\r
152 FLDA I\r
153 FSUB K1\r
154 FSTA I\r
155 JGT #T10\r
156\r
157 JA #TRTN\r