comparison CoCoOS9/level2v3/CMDS/exbin.asm @ 31:bd2b07db8917 cocoos9lv2v3

CoCoOS9 version
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Jul 2018 15:16:13 +0900
parents
children
comparison
equal deleted inserted replaced
30:7b1b25ff010a 31:bd2b07db8917
1 ********************************************************************
2 * Exbin - Motorola S-Record utility
3 *
4 * $Id: exbin.asm,v 1.1.1.1 2001/02/21 23:30:54 boisy Exp $
5 *
6 * Ed. Comments Who YY/MM/DD
7 * ------------------------------------------------------------------
8 * 67 Original Tandy distribution version
9
10 nam Exbin
11 ttl Motorola S-Record utility
12
13 * Disassembled 98/09/15 00:16:49 by Disasm v1.6 (C) 1988 by RML
14
15 ifp1
16 use defsfile
17 endc
18
19 tylg set Prgrm+Objct
20 atrv set ReEnt+rev
21 rev set $01
22
23 mod eom,name,tylg,atrv,start,size
24
25 u0000 rmb 1
26 u0001 rmb 1
27 u0002 rmb 2
28 u0004 rmb 1
29 u0005 rmb 1
30 u0006 rmb 2
31 u0008 rmb 1
32 u0009 rmb 2
33 u000B rmb 1
34 u000C rmb 1
35 u000D rmb 1
36 u000E rmb 1
37 u000F rmb 1
38 u0010 rmb 2
39 u0012 rmb 2
40 u0014 rmb 2
41 u0016 rmb 656
42 size equ .
43
44 name fcs /Exbin/
45 fcc "Copyright 1982 Motorola, Inc."
46 fcb $01
47
48 start stx <u0002
49 lda #$01
50 os9 I$Open
51 bcc L003C
52 L0039 os9 F$Exit
53 L003C sta <u0000
54 stx <u0002
55 lda #$02
56 ldb #$7F
57 os9 I$Create
58 bcs L0039
59 sta <u0001
60 stx <u0002
61 ldd #$0000
62 std <u0009
63 std <u000B
64 sta <u000F
65 ldx #$4E61
66 stx <u0010
67 ldx #$6D65
68 stx <u0012
69 ldx #$3D20
70 stx <u0014
71 L0065 lda <u0000
72 leax <u0016,u
73 ldy #$0100
74 os9 I$ReadLn
75 lbcs L0114
76 leax <u0016,u
77 tfr x,y
78 tfr x,d
79 addd #$0100
80 std <u0006
81 L0081 lda ,x+
82 cmpa #$53
83 beq L008D
84 cmpx <u0006
85 bne L0081
86 bra L0065
87 L008D lda ,x+
88 suba #$30
89 sta <u000E
90 beq L009E
91 cmpa #$09
92 bne L009B
93 bra L0065
94 L009B deca
95 bne L0065
96 L009E bsr L011F
97 sta <u0008
98 suba #$03
99 sta <u000C
100 sta <u000D
101 bsr L011B
102 tst <u000E
103 beq L00CD
104 pshs x
105 ldx <u0009
106 lda <u000F
107 beq L00C0
108 cmpx <u0004
109 beq L00C6
110 leax >L018D,pcr
111 bra L00DE
112 L00C0 ldx <u0004
113 lda #$01
114 sta <u000F
115 L00C6 ldb <u000C
116 abx
117 stx <u0009
118 puls x
119 L00CD bsr L011F
120 sta ,y+
121 dec <u000D
122 bpl L00CD
123 lda <u0008
124 inca
125 beq L00EB
126 leax >L0171,pcr
127 L00DE lda #$02
128 ldy #$00FF
129 os9 I$WritLn
130 L00E7 clrb
131 lbra L0039
132 L00EB lda <u000E
133 bne L0102
134 lda #$0D
135 sta ,-y
136 lda #$01
137 ldy #$00FF
138 leax <u0010,u
139 os9 I$WritLn
140 lbra L0065
141 L0102 lda <u0001
142 ldy <u000B
143 leax <u0016,u
144 os9 I$Write
145 lbcc L0065
146 lbra L0039
147 L0114 cmpb #$D3
148 beq L00E7
149 lbra L0039
150 L011B bsr L011F
151 sta <u0004
152 L011F lda ,x+
153 bsr L013A
154 lsla
155 lsla
156 lsla
157 lsla
158 anda #$F0
159 pshs a
160 lda ,x+
161 bsr L013A
162 adda ,s+
163 sta <u0005
164 adda <u0008
165 sta <u0008
166 lda <u0005
167 rts
168 L013A suba #$30
169 bmi L0149
170 cmpa #$09
171 ble L0148
172 suba #$07
173 cmpa #$0F
174 bhi L0149
175 L0148 rts
176 L0149 leax >L014F,pcr
177 bra L00DE
178 L014F fcc "** NON-HEX CHARACTER ENCOUNTERED"
179 fcb $07,C$CR
180 L0171 fcc "** CHECKSUM ERROR DETECTED"
181 fcb $07,C$CR
182 L018D fcc "** NON-CONTIGUOUS ADDRESS SPACE DETECTED"
183 fcb $07,C$CR
184
185 emod
186 eom equ *
187 end