annotate level1/modules/rbdw.asm @ 3130:e0614e08fa5e

l1 boot modules: Expand documentation and clean up code Tidy up white-space and indentation. Expand documentation to show C flag is important on return from HWRead. Expand documentation to show how/why/when filler is needed at end of file. Delete dead code in some places. No functional changes.
author Neal Crook <foofoobedoo@gmail.com>
date Sun, 04 Dec 2016 21:01:42 +0000
parents 28ed72477814
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
1 ********************************************************************
2724
05b648103e78 Renamed dw3.sb to dwio.sb and rbdw3 to rbdw
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2718
diff changeset
2 * rbdw - DriveWire RBF driver
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
3 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
4 * $Id$
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
5 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
6 * This driver works in conjuction with the DriveWire Server on Linux,
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
7 * Mac or Windows, providing the CoCo with pseudo-disk access through
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
8 * the serial port.
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
9 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
10 * It adheres to the DriveWire Version 3 Protocol.
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
11 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
12 * The baud rate is set at 115200 and the communications requirements
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
13 * are set to 8-N-1. For OS-9 Level One on a CoCo 2, the baud rate
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
14 * is 57600.
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
15 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
16 * Edt/Rev YYYY/MM/DD Modified by
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
17 * Comment
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
18 * ------------------------------------------------------------------
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
19 * 1 2008/02/08 Boisy G. Pitre
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
20 * Started from drivewire.asm in DriveWire 2 Product folder.
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
21 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
22 * 2 2008/04/22 Boisy G. Pitre
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
23 * Verified working operation on a CoCo 3 running NitrOS-9/6809 Level 1 @ 57.6Kbps
2194
8a96f5241556 *** empty log message ***
boisy
parents: 2180
diff changeset
24 *
8a96f5241556 *** empty log message ***
boisy
parents: 2180
diff changeset
25 * 3 2009/03/09 Boisy G. Pitre
8a96f5241556 *** empty log message ***
boisy
parents: 2180
diff changeset
26 * Added checks for size after reading as noted by Darren A's email.
2298
d806d969eb17 Fixed a potential crash in Term
boisy
parents: 2270
diff changeset
27 *
d806d969eb17 Fixed a potential crash in Term
boisy
parents: 2270
diff changeset
28 * 4 2009/12/31 Boisy G. Pitre
d806d969eb17 Fixed a potential crash in Term
boisy
parents: 2270
diff changeset
29 * Fixed a crash in Term by adding a check for DWSubAddr of $0000
d806d969eb17 Fixed a potential crash in Term
boisy
parents: 2270
diff changeset
30 * (possible if Init fails due to subroutine module not being in
d806d969eb17 Fixed a potential crash in Term
boisy
parents: 2270
diff changeset
31 * memory and I$Detach calls Term)
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
32
2724
05b648103e78 Renamed dw3.sb to dwio.sb and rbdw3 to rbdw
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2718
diff changeset
33 nam rbdw
05b648103e78 Renamed dw3.sb to dwio.sb and rbdw3 to rbdw
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2718
diff changeset
34 ttl DriveWire RBF driver
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
35
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
36 NUMRETRIES equ 8
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
37
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
38 ifp1
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
39 use defsfile
2624
b8c7b7fbf3c9 Major changes:
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2535
diff changeset
40 use drivewire.d
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
41 endc
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
42
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
43 NumDrvs set 4
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
44
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
45 tylg set Drivr+Objct
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
46 atrv set ReEnt+rev
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
47 rev set $01
2298
d806d969eb17 Fixed a potential crash in Term
boisy
parents: 2270
diff changeset
48 edition set 4
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
49
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
50 mod eom,name,tylg,atrv,start,size
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
51
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
52 rmb DRVBEG+(DRVMEM*NumDrvs)
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
53 driveno rmb 1
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
54 retries rmb 1
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
55 size equ .
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
56
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
57 fcb DIR.+SHARE.+PEXEC.+PREAD.+PWRIT.+EXEC.+UPDAT.
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
58
2724
05b648103e78 Renamed dw3.sb to dwio.sb and rbdw3 to rbdw
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2718
diff changeset
59 name fcs /rbdw/
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
60 fcb edition
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
61
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
62 start bra Init
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
63 nop
2713
37d3ee1458b6 Fixed stupid mistake in branch table
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2656
diff changeset
64 lbra Read
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
65 lbra Write
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
66 lbra GetStat
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
67 lbra SetStat
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
68
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
69 * Term
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
70 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
71 * Entry:
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
72 * U = address of device memory area
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
73 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
74 * Exit:
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
75 * CC = carry set on error
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
76 * B = error code
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
77 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
78 Term
2656
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
79 clrb
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
80 pshs cc
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
81 * Send OP_TERM to the server
2636
4e5ff2c5b512 Optimized Term routine
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2624
diff changeset
82 IFGT LEVEL-1
2656
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
83 ldu <D.DWSubAddr
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
84 ELSE
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
85 ldu >D.DWSubAddr
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
86 ENDC
2298
d806d969eb17 Fixed a potential crash in Term
boisy
parents: 2270
diff changeset
87 * Fix crash in certain cases
2656
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
88 beq no@
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
89 ldy #$0001
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
90 lda #OP_TERM
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
91 pshs a
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
92 leax ,s
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
93 orcc #IntMasks
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
94 jsr DW$Write,u
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
95 clrb
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
96 puls a
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
97 no@ puls cc,pc
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
98
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
99 * Init
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
100 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
101 * Entry:
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
102 * Y = address of device descriptor
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
103 * U = address of device memory area
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
104 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
105 * Exit:
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
106 * CC = carry set on error
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
107 * B = error code
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
108 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
109 Init
2210
7ee1bed662f2 Fixed driver to copy D.SysPrc in Level 2 to D.Proc before link
boisy
parents: 2195
diff changeset
110 IFGT Level-1
7ee1bed662f2 Fixed driver to copy D.SysPrc in Level 2 to D.Proc before link
boisy
parents: 2195
diff changeset
111 * Perform this so we can successfully do F$Link below
7ee1bed662f2 Fixed driver to copy D.SysPrc in Level 2 to D.Proc before link
boisy
parents: 2195
diff changeset
112 ldx <D.Proc
7ee1bed662f2 Fixed driver to copy D.SysPrc in Level 2 to D.Proc before link
boisy
parents: 2195
diff changeset
113 pshs a,x
7ee1bed662f2 Fixed driver to copy D.SysPrc in Level 2 to D.Proc before link
boisy
parents: 2195
diff changeset
114 ldx <D.SysPrc
7ee1bed662f2 Fixed driver to copy D.SysPrc in Level 2 to D.Proc before link
boisy
parents: 2195
diff changeset
115 stx <D.Proc
7ee1bed662f2 Fixed driver to copy D.SysPrc in Level 2 to D.Proc before link
boisy
parents: 2195
diff changeset
116 ELSE
7ee1bed662f2 Fixed driver to copy D.SysPrc in Level 2 to D.Proc before link
boisy
parents: 2195
diff changeset
117 pshs a
7ee1bed662f2 Fixed driver to copy D.SysPrc in Level 2 to D.Proc before link
boisy
parents: 2195
diff changeset
118 ENDC
7ee1bed662f2 Fixed driver to copy D.SysPrc in Level 2 to D.Proc before link
boisy
parents: 2195
diff changeset
119
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
120 ldb #NumDrvs
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
121 stb V.NDRV,u
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
122 leax DRVBEG,u
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
123 lda #$FF
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
124 Init2 sta DD.TOT,x invalidate drive tables
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
125 sta DD.TOT+1,x
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
126 sta DD.TOT+2,x
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
127 leax DRVMEM,x
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
128 decb
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
129 bne Init2
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
130
2309
f3e79ee2ffef Driver now moved ISR to dw3, all works
boisy
parents: 2298
diff changeset
131 * Check if subroutine module has already been linked
f3e79ee2ffef Driver now moved ISR to dw3, all works
boisy
parents: 2298
diff changeset
132 IFGT LEVEL-1
f3e79ee2ffef Driver now moved ISR to dw3, all works
boisy
parents: 2298
diff changeset
133 ldu <D.DWSubAddr
f3e79ee2ffef Driver now moved ISR to dw3, all works
boisy
parents: 2298
diff changeset
134 ELSE
f3e79ee2ffef Driver now moved ISR to dw3, all works
boisy
parents: 2298
diff changeset
135 ldu >D.DWSubAddr
f3e79ee2ffef Driver now moved ISR to dw3, all works
boisy
parents: 2298
diff changeset
136 ENDC
2535
44f8ba0d87a4 Fixed crash in init routine
boisy
parents: 2309
diff changeset
137 bne InitEx
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
138 * Link to subroutine module
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
139 clra
2724
05b648103e78 Renamed dw3.sb to dwio.sb and rbdw3 to rbdw
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2718
diff changeset
140 leax dwiosub,pcr
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
141 os9 F$Link
2210
7ee1bed662f2 Fixed driver to copy D.SysPrc in Level 2 to D.Proc before link
boisy
parents: 2195
diff changeset
142 bcs InitEx
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
143 tfr y,u
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
144 IFGT LEVEL-1
2270
07b2433f0c65 moved dwdefs.d to defs/, major changes to drivers due to new globals arrangement.
boisy
parents: 2231
diff changeset
145 stu <D.DWSubAddr
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
146 ELSE
2270
07b2433f0c65 moved dwdefs.d to defs/, major changes to drivers due to new globals arrangement.
boisy
parents: 2231
diff changeset
147 stu >D.DWSubAddr
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
148 ENDC
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
149 * Initialize the low level device
2636
4e5ff2c5b512 Optimized Term routine
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2624
diff changeset
150 jsr DW$Init,u
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
151 lda #OP_INIT
2640
8d24c482646e o increased timeout in atari dwread.asm module
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2636
diff changeset
152 sta ,s
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
153 leax ,s
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
154 ldy #$0001
2636
4e5ff2c5b512 Optimized Term routine
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2624
diff changeset
155 jsr DW$Write,u
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
156 clrb
2210
7ee1bed662f2 Fixed driver to copy D.SysPrc in Level 2 to D.Proc before link
boisy
parents: 2195
diff changeset
157
2211
0d9a3b9b5886 Fixed incorrect label
boisy
parents: 2210
diff changeset
158 InitEx
2210
7ee1bed662f2 Fixed driver to copy D.SysPrc in Level 2 to D.Proc before link
boisy
parents: 2195
diff changeset
159 IFGT Level-1
7ee1bed662f2 Fixed driver to copy D.SysPrc in Level 2 to D.Proc before link
boisy
parents: 2195
diff changeset
160 puls a,x
7ee1bed662f2 Fixed driver to copy D.SysPrc in Level 2 to D.Proc before link
boisy
parents: 2195
diff changeset
161 stx <D.Proc
2309
f3e79ee2ffef Driver now moved ISR to dw3, all works
boisy
parents: 2298
diff changeset
162 InitEx2
2210
7ee1bed662f2 Fixed driver to copy D.SysPrc in Level 2 to D.Proc before link
boisy
parents: 2195
diff changeset
163 rts
7ee1bed662f2 Fixed driver to copy D.SysPrc in Level 2 to D.Proc before link
boisy
parents: 2195
diff changeset
164 ELSE
2309
f3e79ee2ffef Driver now moved ISR to dw3, all works
boisy
parents: 2298
diff changeset
165 InitEx2
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
166 puls a,pc
2210
7ee1bed662f2 Fixed driver to copy D.SysPrc in Level 2 to D.Proc before link
boisy
parents: 2195
diff changeset
167 ENDC
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
168
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
169 * Read
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
170 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
171 * Entry:
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
172 * B = MSB of LSN
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
173 * X = LSB of LSN
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
174 * Y = address of path descriptor
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
175 * U = address of device memory area
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
176 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
177 * Exit:
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
178 * CC = carry set on error
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
179 * B = error code
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
180 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
181 Read
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
182 lda #NUMRETRIES
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
183 sta retries,u
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
184 cmpx #$0000 LSN 0?
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
185 bne ReadSect branch if not
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
186 tstb LSN 0?
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
187 bne ReadSect branch if not
2636
4e5ff2c5b512 Optimized Term routine
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2624
diff changeset
188 * At this point we are reading LSN0
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
189 bsr ReadSect read the sector
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
190 bcs CpyLSNEx if error, exit
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
191 leax DRVBEG,u point to start of drive table
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
192 ldb <PD.DRV,y get drive number
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
193 NextDrv beq CopyLSN0 branch if terminal count
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
194 leax <DRVMEM,x else move to next drive table entry
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
195 decb decrement counter
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
196 bra NextDrv and continue
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
197 CopyLSN0 ldb #DD.SIZ get size to copy
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
198 ldy PD.BUF,y point to buffer
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
199 CpyLSNLp lda ,y+ get byte from buffer
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
200 sta ,x+ and save in drive table
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
201 decb
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
202 bne CpyLSNLp
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
203 CpyLSNEx rts
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
204
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
205
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
206 ReadSect pshs cc
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
207 pshs u,y,x,b,a,cc then push CC and others on stack
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
208 * Send out op code and 3 byte LSN
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
209 lda PD.DRV,y get drive number
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
210 cmpa #NumDrvs
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
211 blo Read1
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
212 ldb #E$Unit
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
213 bra ReadEr2
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
214 Read1 sta driveno,u
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
215 lda #OP_READEX load A with READ opcode
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
216
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
217 Read2
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
218 ldb driveno,u
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
219 leax ,s
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
220 std ,x
2656
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
221 ldy #5
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
222 IFGT LEVEL-1
2270
07b2433f0c65 moved dwdefs.d to defs/, major changes to drivers due to new globals arrangement.
boisy
parents: 2231
diff changeset
223 ldu <D.DWSubAddr
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
224 ELSE
2270
07b2433f0c65 moved dwdefs.d to defs/, major changes to drivers due to new globals arrangement.
boisy
parents: 2231
diff changeset
225 ldu >D.DWSubAddr
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
226 ENDC
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
227 orcc #IntMasks
2636
4e5ff2c5b512 Optimized Term routine
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2624
diff changeset
228 jsr DW$Write,u
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
229
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
230 * Get 256 bytes of sector data
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
231 ldx 5,s
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
232 ldx PD.BUF,x get buffer pointer into X
2231
27f07aa0bca0 Updated modules to use Darren Atkinson's latest changes to low level read/write routines
boisy
parents: 2211
diff changeset
233 ldy #$0100
2636
4e5ff2c5b512 Optimized Term routine
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2624
diff changeset
234 jsr DW$Read,u
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
235 bcs ReadEr1
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
236 bne ReadEr1
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
237 pshs y
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
238 leax ,s
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
239 ldy #$0002
2636
4e5ff2c5b512 Optimized Term routine
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2624
diff changeset
240 jsr DW$Write,u write checksum to server
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
241
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
242 * Get error code byte
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
243 leax ,s
2231
27f07aa0bca0 Updated modules to use Darren Atkinson's latest changes to low level read/write routines
boisy
parents: 2211
diff changeset
244 ldy #$0001
2636
4e5ff2c5b512 Optimized Term routine
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2624
diff changeset
245 jsr DW$Read,u
2656
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
246 puls d
2194
8a96f5241556 *** empty log message ***
boisy
parents: 2180
diff changeset
247 bcs ReadEr0 branch if we timed out
8a96f5241556 *** empty log message ***
boisy
parents: 2180
diff changeset
248 bne ReadEr0
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
249 tfr a,b transfer byte to B (in case of error)
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
250 tstb is it zero?
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
251 beq ReadEx if not, exit with error
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
252 cmpb #E$CRC
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
253 bne ReadEr2
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
254 ldu 7,s get U from stack
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
255 dec retries,u decrement retries
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
256 beq ReadEr1
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
257
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
258 lda #OP_REREADEX reread opcode
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
259 bra Read2 and try getting sector again
2656
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
260 ReadEr0
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
261 ReadEr1 ldb #E$Read read error
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
262 ReadEr2 lda 9,s
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
263 ora #Carry
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
264 sta 9,s
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
265 ReadEx leas 5,s
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
266 puls y,u
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
267 puls cc,pc
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
268
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
269 * Write
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
270 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
271 * Entry:
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
272 * B = MSB of LSN
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
273 * X = LSB of LSN
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
274 * Y = address of path descriptor
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
275 * U = address of device memory area
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
276 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
277 * Exit:
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
278 * CC = carry set on error
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
279 * B = error code
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
280 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
281 Write lda #NUMRETRIES
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
282 sta retries,u
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
283 pshs cc
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
284 pshs u,y,x,b,a,cc
2656
2ebf5e737ceb Updated to address Atari port problems
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
285 ENDC
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
286 * Send out op code and 3 byte LSN
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
287 lda PD.DRV,y
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
288 cmpa #NumDrvs
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
289 blo Write1
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
290 comb set Carry
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
291 ldb #E$Unit
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
292 bra WritEx
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
293 Write1 sta driveno,u
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
294 lda #OP_WRITE
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
295 Write15
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
296 ldb driveno,u
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
297 leax ,s
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
298 std ,x
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
299 ldy #$0005
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
300 IFGT LEVEL-1
2270
07b2433f0c65 moved dwdefs.d to defs/, major changes to drivers due to new globals arrangement.
boisy
parents: 2231
diff changeset
301 ldu <D.DWSubAddr
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
302 ELSE
2270
07b2433f0c65 moved dwdefs.d to defs/, major changes to drivers due to new globals arrangement.
boisy
parents: 2231
diff changeset
303 ldu >D.DWSubAddr
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
304 ENDC
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
305 orcc #IntMasks
2636
4e5ff2c5b512 Optimized Term routine
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2624
diff changeset
306 jsr DW$Write,u
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
307
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
308 * Compute checksum on sector we just sent and send checksum to server
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
309 ldy 5,s get Y from stack
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
310 ldx PD.BUF,y point to buffer
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
311 ldy #256
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
312 jsr 6,u
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
313 leax -256,x
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
314 bsr DoCSum
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
315 pshs d
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
316 leax ,s
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
317 ldy #$0002
2636
4e5ff2c5b512 Optimized Term routine
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2624
diff changeset
318 jsr DW$Write,u
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
319
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
320 * Await acknowledgement from server on receipt of sector
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
321 leax ,s
2231
27f07aa0bca0 Updated modules to use Darren Atkinson's latest changes to low level read/write routines
boisy
parents: 2211
diff changeset
322 ldy #$0001
2636
4e5ff2c5b512 Optimized Term routine
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2624
diff changeset
323 jsr DW$Read,u read ack byte from server
2194
8a96f5241556 *** empty log message ***
boisy
parents: 2180
diff changeset
324 bcs WritEx0
8a96f5241556 *** empty log message ***
boisy
parents: 2180
diff changeset
325 bne WritEx0
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
326 puls d
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
327 tsta
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
328 beq WritEx yep
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
329 tfr a,b
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
330 cmpb #E$CRC checksum error?
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
331 bne WritEx2
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
332 ldu 7,s get U from stack
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
333 dec retries,u decrement retries
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
334 beq WritEx1 exit with error if no more
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
335 lda #OP_REWRIT else resend
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
336 bra Write15
2194
8a96f5241556 *** empty log message ***
boisy
parents: 2180
diff changeset
337 WritEx0 puls d
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
338 WritEx1 ldb #E$Write
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
339 WritEx2 lda 9,s
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
340 ora #Carry
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
341 sta 9,s
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
342 WritEx leas 5,s
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
343 puls y,u
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
344 puls cc,pc
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
345
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
346 use dwcheck.asm
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
347
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
348 * SetStat
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
349 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
350 * Entry:
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
351 * R$B = function code
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
352 * Y = address of path descriptor
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
353 * U = address of device memory area
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
354 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
355 * Exit:
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
356 * CC = carry set on error
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
357 * B = error code
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
358 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
359 SetStat lda #OP_SETSTA
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
360 * Size optimization
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
361 fcb $8C skip next two bytes
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
362
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
363
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
364 * GetStat
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
365 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
366 * Entry:
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
367 * R$B = function code
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
368 * Y = address of path descriptor
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
369 * U = address of device memory area
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
370 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
371 * Exit:
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
372 * CC = carry set on error
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
373 * B = error code
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
374 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
375 GetStat
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
376 lda #OP_GETSTA
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
377 clrb clear Carry
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
378 pshs cc and push CC on stack
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
379 leas -3,s
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
380 sta ,s
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
381 lda PD.DRV,y get drive number
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
382 ldx PD.RGS,y
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
383 ldb R$B,x
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
384 std 1,s
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
385 leax ,s
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
386 ldy #$0003
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
387 IFGT LEVEL-1
2270
07b2433f0c65 moved dwdefs.d to defs/, major changes to drivers due to new globals arrangement.
boisy
parents: 2231
diff changeset
388 ldu <D.DWSubAddr
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
389 ELSE
2270
07b2433f0c65 moved dwdefs.d to defs/, major changes to drivers due to new globals arrangement.
boisy
parents: 2231
diff changeset
390 ldu >D.DWSubAddr
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
391 ENDC
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
392 jsr 6,u
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
393 leas 3,s
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
394 puls cc,pc
2724
05b648103e78 Renamed dw3.sb to dwio.sb and rbdw3 to rbdw
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2718
diff changeset
395
05b648103e78 Renamed dw3.sb to dwio.sb and rbdw3 to rbdw
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2718
diff changeset
396 dwiosub fcs /dwio/
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
397
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
398 emod
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
399 eom equ *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
400 end