Mercurial > hg > Members > kono > nitros9-code
annotate level1/cmds/binex.asm @ 1282:c1f7d686924e
Now back-ported to OS-9 Level One and assembled from there.
author | boisy |
---|---|
date | Wed, 27 Aug 2003 23:47:59 +0000 |
parents | c6e6cf68e03e |
children | 84ea83668304 |
rev | line source |
---|---|
0 | 1 ******************************************************************** |
2 * Binex - Motorola S-Record utility | |
3 * | |
4 * $Id$ | |
5 * | |
6 * Ed. Comments Who YY/MM/DD | |
7 * ------------------------------------------------------------------ | |
200
e9ce43cc215e
Made major changes to headers for consistency and identification
boisy
parents:
0
diff
changeset
|
8 * 67 From Tandy OS-9 Level One VR 02.00.00 |
e9ce43cc215e
Made major changes to headers for consistency and identification
boisy
parents:
0
diff
changeset
|
9 * 68 Set proper edition |
846 | 10 * 1 Restarted edition, removed Motorola copyright BGP 03/01/14 |
11 | |
0 | 12 |
13 nam Binex | |
14 ttl Motorola S-Record utility | |
15 | |
16 * Disassembled 98/09/15 00:08:52 by Disasm v1.6 (C) 1988 by RML | |
17 | |
18 ifp1 | |
19 use defsfile | |
20 endc | |
21 | |
22 tylg set Prgrm+Objct | |
23 atrv set ReEnt+rev | |
24 rev set $01 | |
846 | 25 edition set 1 |
0 | 26 |
27 mod eom,name,tylg,atrv,start,size | |
28 | |
29 u0000 rmb 1 | |
30 u0001 rmb 1 | |
31 u0002 rmb 2 | |
32 u0004 rmb 1 | |
33 u0005 rmb 1 | |
34 u0006 rmb 1 | |
35 u0007 rmb 2 | |
36 u0009 rmb 1 | |
37 u000A rmb 2 | |
38 u000C rmb 1 | |
39 u000D rmb 31 | |
40 u002C rmb 1 | |
41 u002D rmb 1 | |
42 u002E rmb 1 | |
43 u002F rmb 2 | |
44 u0031 rmb 2 | |
45 u0033 rmb 2 | |
46 u0035 rmb 656 | |
47 size equ . | |
48 | |
49 name fcs /Binex/ | |
200
e9ce43cc215e
Made major changes to headers for consistency and identification
boisy
parents:
0
diff
changeset
|
50 fcb edition |
e9ce43cc215e
Made major changes to headers for consistency and identification
boisy
parents:
0
diff
changeset
|
51 |
846 | 52 * fcc "Copyright 1982 Motorola, Inc." |
53 * fcb $01 | |
0 | 54 |
55 start stx <u0002 | |
846 | 56 lda #READ. |
0 | 57 os9 I$Open |
58 bcc L003C | |
59 L0039 os9 F$Exit | |
60 L003C sta <u0000 | |
61 stx <u0002 | |
846 | 62 lda #WRITE. |
63 ldb #SHARE.+PEXEC.+PWRIT.+PREAD.+EXEC.+UPDAT. | |
0 | 64 os9 I$Create |
65 bcs L0039 | |
66 sta <u0001 | |
67 stx <u0002 | |
68 ldd #$0000 | |
69 sta <u0006 | |
70 std <u000A | |
71 std <u002F | |
72 ldx #$5330 | |
73 stx <u002D | |
74 ldx #$3030 | |
75 stx <u0031 | |
76 stx <u0033 | |
846 | 77 L0062 leax >AskStart,pcr |
0 | 78 lda #$01 |
846 | 79 ldy #AskStrtL |
0 | 80 os9 I$Write |
81 leax <u0031,u | |
82 lda #$00 | |
83 ldy #$0005 | |
84 os9 I$ReadLn | |
85 leay -$01,y | |
86 cmpy #$0000 | |
87 beq L0062 | |
88 cmpy #$0004 | |
89 bhi L0062 | |
90 beq L00A7 | |
91 tfr y,d | |
92 pshs b | |
93 decb | |
94 leax <u0031,u | |
95 leay $04,x | |
96 L0095 lda b,x | |
97 sta ,-y | |
98 decb | |
99 bpl L0095 | |
100 ldb #$04 | |
101 subb ,s+ | |
102 lda #$30 | |
103 L00A2 sta ,-y | |
104 decb | |
105 bgt L00A2 | |
106 L00A7 lbsr L0178 | |
846 | 107 leax >AskName,pcr |
0 | 108 lda #$01 |
846 | 109 ldy #AskNameL |
0 | 110 os9 I$Write |
111 leax u000C,u | |
112 lda #$00 | |
113 ldy #$0015 | |
114 os9 I$ReadLn | |
115 leay -$01,y | |
116 cmpy #$0000 | |
117 bne L0120 | |
118 L00CA lda <u0000 | |
119 leax u000C,u | |
120 ldy #$0020 | |
121 os9 I$Read | |
122 lbcs L0160 | |
123 cmpy #$0000 | |
124 lbeq L0160 | |
125 lda <u0006 | |
126 bne L0120 | |
127 inc <u0006 | |
128 lda #$31 | |
129 sta <u002E | |
130 ldx <u0004 | |
131 stx <u000A | |
132 ldx u000C,u | |
133 cmpx #$87CD | |
134 beq L0120 | |
846 | 135 leax >Alert,pcr |
0 | 136 pshs y |
846 | 137 ldy #AlertL |
0 | 138 lda #$01 |
139 os9 I$Write | |
140 leax <u0035,u | |
141 ldy #$0002 | |
142 lda #$00 | |
143 os9 I$ReadLn | |
144 puls y | |
145 lda <u0035,u | |
146 anda #$DF | |
147 cmpa #$59 | |
148 beq L0120 | |
149 L011C clrb | |
150 os9 F$Exit | |
151 L0120 sty <u0007 | |
152 tfr y,d | |
153 addb #$03 | |
154 stb <u0009 | |
155 leax u0009,u | |
156 clra | |
157 ldb ,x | |
158 L012E adda ,x+ | |
159 decb | |
160 bne L012E | |
161 coma | |
162 sta ,x | |
163 leax u0009,u | |
164 leay <u002F,u | |
165 ldb ,x | |
166 incb | |
167 L013E bsr L01B6 | |
168 decb | |
169 bne L013E | |
170 ldb #$0D | |
171 stb ,y | |
172 leax <u002D,u | |
173 ldy #$0073 | |
174 lda <u0001 | |
175 os9 I$WritLn | |
176 lbcs L0039 | |
177 ldd <u000A | |
178 addd <u0007 | |
179 std <u000A | |
180 lbra L00CA | |
181 L0160 cmpb #$D3 | |
182 lbne L0039 | |
183 lda #$39 | |
184 cmpa <u002E | |
185 beq L011C | |
186 sta <u002E | |
187 ldx <u0004 | |
188 stx <u000A | |
189 ldy #$0000 | |
190 bra L0120 | |
191 L0178 bsr L017C | |
192 sta <u0004 | |
193 L017C lda ,x+ | |
194 bsr L0197 | |
195 lsla | |
196 lsla | |
197 lsla | |
198 lsla | |
199 anda #$F0 | |
200 pshs a | |
201 lda ,x+ | |
202 bsr L0197 | |
203 adda ,s+ | |
204 sta <u0005 | |
205 adda <u002C | |
206 sta <u002C | |
207 lda <u0005 | |
208 rts | |
209 L0197 suba #$30 | |
210 bmi L01A6 | |
211 cmpa #$09 | |
212 ble L01A5 | |
213 suba #$07 | |
214 cmpa #$0F | |
215 bhi L01A6 | |
216 L01A5 rts | |
217 L01A6 leax >L01D7,pcr | |
218 lda #$02 | |
219 ldy #$00FF | |
220 os9 I$WritLn | |
221 lbra L011C | |
222 L01B6 pshs b,a | |
223 lda ,x+ | |
224 tfr a,b | |
225 lsra | |
226 lsra | |
227 lsra | |
228 lsra | |
229 bsr L01CC | |
230 sta ,y+ | |
231 tfr b,a | |
232 bsr L01CC | |
233 sta ,y+ | |
234 puls pc,b,a | |
235 L01CC anda #$0F | |
236 adda #$30 | |
237 cmpa #$39 | |
238 bls L01D6 | |
239 adda #$07 | |
240 L01D6 rts | |
241 L01D7 fcc "** NON-HEX CHARACTER ENCOUNTERED" | |
846 | 242 fcb C$BELL,C$CR |
243 AskName fcc "Enter name for header record: " | |
244 AskNameL equ *-AskName | |
245 AskStart fcc "Enter starting address for file: $" | |
246 AskStrtL equ *-AskStart | |
247 Alert fcb C$BELL,C$CR,C$LF | |
0 | 248 fcc "** Not a binary load module file. Proceed anyway (Y/N)? " |
846 | 249 AlertL equ *-Alert |
0 | 250 |
251 emod | |
252 eom equ * | |
253 end |