annotate 3rdparty/drivers/nocan/rammer.asm @ 1570:a4b6825eeb72

ccdisk renamed to rb1773, added CC3 driver into source
author boisy
date Tue, 18 May 2004 01:26:19 +0000
parents e8755309071c
children 6353bb024571
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1518
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
1 ********************************************************************
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
2 * rammer - Nitros-9 level 2 ram disk
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
3 *
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
4 * $id: rammer.asm,v 1.0 2004/02/06 01:00:00 Gault exp $
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
5 *
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
6 * Alan Dekok's version of rammer - based on original Keving Darling version
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
7 *
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
8 * note: Highly modified for use on non-standard Coco systems. RAM not
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
9 * taken from 2Meg OS-9 memory!
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
10 *
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
11 * edt/rev yyyy/mm/dd modified by
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
12 * comment
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
13 * ------------------------------------------------------------------
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
14 * 4 ????/??/?? ???
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
15 * original Kevin Darling version.
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
16 *
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
17 * 5 2000/03/14 L. Curtis Boyle
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
18 * several changes
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
19 *
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
20 * 5r2 2000/05/09 L. Curtis Boyle
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
21 * Allowed driver to go past 400k, attempted some fixes for handling /md,
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
22 * so that setting vfy=0 on /r0 would not completely crash the system.
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
23 * Fixed some error reporting bugs that would crash the system, and
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
24 * moved entry table to between read/write to allow short branches to both.
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
25 *
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
26 * 6r2 2004/2/2 R. Gault
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
27 * Highly modified for use with nocan 8/64meg board & emulators.
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
28 * The RAM disk uses no OS-9 memory, just memory above 2Meg. The size of
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
29 * the drive is by default 6Meg, 14Meg, or 62Meg but can be changed by altering
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
30 * the descriptor, r0.
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
31
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
32 H6309 set 1 0=6809 1=6309
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
33 Nocan set 0 0=64Meg Nocan 1=8Meg MESS and Nocan3 2=16Meg Collyer
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
34
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
35 * Select the correct pair for the system RAM
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
36
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
37 ifeq Nocan-1
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
38 *MaxLSN is $5FFF for 8Meg system use 6Meg RAM disk
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
39 MaxMSB set 0
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
40 MaxLSW set $5FFF
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
41 endc
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
42
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
43 ifeq Nocan
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
44 *MaxLSN is $3DFFF for 64Meg system use 62Meg RAM disk
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
45 MaxMSB set 3
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
46 MaxLSW set $DFFF
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
47 endc
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
48
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
49 ifeq Nocan-2
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
50 *MaxLSN is $DFFF for 16Meg system use 14Meg RAM disk
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
51 MaxMSB set 0
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
52 MaxLSW set $DFFF
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
53 endc
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
54
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
55 nam rammer
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
56 ttl nitros-9 level 2 ram disk
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
57
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
58 ifp1
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
59 use /dd/defs/defsfile
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
60 endc
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
61
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
62 tylg set drivr+objct
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
63 atrv set reent+rev
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
64 rev set 1
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
65 edition set 6
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
66
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
67 mod eom,name,tylg,atrv,start,size
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
68
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
69
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
70 u0000 rmb drvbeg+drvmem reserve room for 1 entry drive table
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
71 ff9b rmb 1
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
72 stack rmb 25
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
73 size equ .
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
74
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
75 fcb dir.+share.+pread.+pwrit.+pexec.+read.+write.+exec.
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
76
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
77 name fcs /Rammer/
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
78 fcb edition
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
79
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
80 start lbra init
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
81 lbra read
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
82 lbra write
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
83 lbra getstat
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
84 lbra getstat actually setstat (no calls, so same routine)
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
85 lbra term terminate (returns memory)
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
86
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
87 * terminate routine - deallocates ram
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
88 term clrb exit without error
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
89 rts
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
90
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
91 * init routine - only gets called once.
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
92 * called if you iniz the device as well
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
93 * entry: y=address of device descriptor
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
94 * u=device mem area
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
95 * note: all of device mem (except v.port) is cleared to 0's
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
96 init lda #1
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
97 sta v.ndrv,u only can handle 1 drive descriptor
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
98 leax drvbeg,u point to start of drive table
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
99 lda #$ff
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
100 sta ,x set DD.TOT to bad value
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
101 sta V.TRAK,x set track to bad value
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
102 ifeq Nocan-1
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
103 * This may be the wrong place to read this byte. It may be necessary
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
104 * to read it prior to each sector read/write if the video bits are
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
105 * altered by a user's program.
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
106 lda >$9B save default $FF9B image for future use
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
107 sta ff9b,u
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
108 endc
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
109 clrb no error & return
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
110 rts
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
111
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
112 * entry: b:x=lsn to read
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
113 * y=path dsc. ptr
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
114 * u=device mem ptr
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
115 read pshs y,x preserve path & device mem ptrs
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
116 bsr ovtest
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
117 bcs error
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
118 bsr l00c8 calculate mmu block & offset for sector
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
119 bsr l00ae transfer sector from ram drive to pd.buf
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
120 puls y,x restore ptrs
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
121 cmpx #0 sector 0?
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
122 bne getstat no, exit without error
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
123 ldx pd.buf,y get buffer ptr
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
124 leay drvbeg,u point to start of drive table
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
125 ifne H6309
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
126 ldw #dd.siz copy the info we need into drive table
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
127 tfm x+,y+
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
128 else
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
129 ldb #dd.siz copy the info we need into drive table
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
130 readlp lda ,x+
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
131 sta ,y+
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
132 decb
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
133 bne readlp
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
134 endc
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
135 * getstat/setstat - no calls, just exit w/o error
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
136 getstat clrb
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
137 rts
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
138
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
139 error leas 2,s
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
140 error2 ldb #247 seek error
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
141 rts
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
142
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
143 ovtest cmpb #MaxMSB prevent access to LSN > than "hardware" supports
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
144 bls good
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
145 cmpx #MaxLSW
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
146 bls good
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
147 orcc #1
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
148 rts
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
149 good andcc #$FE
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
150 rts
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
151
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
152 * entry: b:x = lsn to write
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
153 * y=path dsc. ptr
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
154 * u=device mem ptr
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
155 write equ *
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
156 bsr ovtest
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
157 bcs error2
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
158 bsr l00c8 calculate mmu block & offset for sector
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
159 exg x,y x=sector buffer ptr, y=offset within mmu block
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
160 * transfer between rbf sector buffer & ram drive image sector buffer
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
161 * called by both read and write (with x,y swapping between the two)
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
162 l00ae orcc #intmasks shut irq's off
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
163 ifeq Nocan
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
164 sta >$ff80 Nocan64; map ram drive block into MMU block #0
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
165 endc
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
166 ifeq Nocan-1
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
167 sta >$FF9B Nocan3 or MESS
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
168 endc
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
169 ifeq Nocan-2
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
170 sta >$FF70 Collyer
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
171 endc
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
172 stb >$ffa0
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
173 ifne H6309
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
174 ldw #$0100 256 byte transfer
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
175 tfm x+,y+ copy between the two buffers
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
176 else
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
177 clrb
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
178 writelp lda ,x+
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
179 sta ,y+
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
180 decb
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
181 bne writelp
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
182 endc
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
183 ifeq Nocan
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
184 clr >$ff80 Nocan64
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
185 endc
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
186 ifeq Nocan-1
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
187 ldb ff9b,u Nocan3 or MESS
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
188 stb >$FF9B
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
189 endc
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
190 ifeq Nocan-2
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
191 clr >$FF70 Collyer
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
192 endc
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
193 clr >$ffa0 remap in system block 0
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
194 andcc #^(intmasks) turn irq's back on
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
195 rts
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
196
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
197 * subroutine to calculate mmu block # and offset based on sector # requested
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
198 * entry: y=path dsc. ptr
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
199 * u=device mem ptr
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
200 * b:x=LSN to calculate for beyond 2megs; ie. $200000
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
201 * that means ram drive has minimum value at $ff80 of 1 and
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
202 * mmu block number = lsn/32 + $100
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
203 * exit: a=mmu block # to send to $ff80
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
204 * b=mmu block # to send to $ffa0
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
205 * x=offset within mmu block to get sector from (always <8k)
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
206 * y=sector buffer ptr
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
207 l00c8 equ *
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
208 pshs b,x
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
209 lda 2,s
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
210 anda #$1f
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
211 clrb
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
212 tfr d,x regX now offset into MMU block
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
213 ifeq H6309
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
214 lsl 2,s lsn*8/$10=lsn/$20
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
215 rol 1,s
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
216 rol ,s
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
217 lsl 2,s
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
218 rol 1,s
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
219 rol ,s
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
220 lsl 2,s
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
221 rol 1,s
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
222 rol ,s
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
223 ldd ,s
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
224 else
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
225 ldw ,s++
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
226 lda ,s+
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
227 lsla
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
228 rolw
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
229 lsla
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
230 rolw
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
231 lsla this value now not needed
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
232 rolw
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
233 tfr w,d
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
234 endc
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
235 inca make it past the 2megs of os-9
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
236 ifeq Nocan-1
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
237 lsla shift it to MMU bits 5&6 for Nocan3 or MESS
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
238 lsla
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
239 lsla
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
240 lsla
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
241 * !!! This next line could be a problem if video bits are altered.
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
242 * It would require reading the bits prior to every sector read/write!!!
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
243 ora ff9b,u OR in video bits
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
244 endc
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
245 ifeq H6309
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
246 leas 3,s
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
247 endc
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
248 ldy pd.buf,y get sector buffer address
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
249 rts
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
250
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
251 emod
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
252 eom equ *
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
253 end
e8755309071c Added files from Robert Gault for NOCAN 8/64MB RAM
boisy
parents:
diff changeset
254