annotate level1/modules/boot_1773.asm @ 1886:b151cc54904e

Added fragmented bootfile support. Added more labels and comments to FD hardware code, optimized slightly.
author boisy
date Tue, 11 Oct 2005 20:43:21 +0000 (2005-10-11)
parents c96f594fe098
children 5f8822fb42e0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
230
3d2fa54fe8fb Source changes
boisy
parents: 210
diff changeset
1 ********************************************************************
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
2 * Boot - WD1773 Boot module
230
3d2fa54fe8fb Source changes
boisy
parents: 210
diff changeset
3 *
3d2fa54fe8fb Source changes
boisy
parents: 210
diff changeset
4 * $Id$
3d2fa54fe8fb Source changes
boisy
parents: 210
diff changeset
5 *
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
6 * Edt/Rev YYYY/MM/DD Modified by
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
7 * Comment
230
3d2fa54fe8fb Source changes
boisy
parents: 210
diff changeset
8 * ------------------------------------------------------------------
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
9 * 4 1985/??/??
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
10 * Original Tandy distribution version.
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
11 *
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
12 * 6 1998/10/12 Boisy G. Pitre
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
13 * Obtained from L2 Upgrade archive, has 6ms step rate and disk timeout
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
14 * changes.
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
15 *
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
16 * 6r2 2003/05/18 Boisy G. Pitre
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
17 * Added '.' output for each sector for OS-9 L2 and NitrOS9 for
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
18 * Mark Marlette (a special request :).
1291
92e9f7416fc9 Added BLOB-stop fix, changed one line as per Robert Gault's suggestion
boisy
parents: 1287
diff changeset
19 *
92e9f7416fc9 Added BLOB-stop fix, changed one line as per Robert Gault's suggestion
boisy
parents: 1287
diff changeset
20 * 6r3 2003/08/31 Robert Gault
92e9f7416fc9 Added BLOB-stop fix, changed one line as per Robert Gault's suggestion
boisy
parents: 1287
diff changeset
21 * Put BLOB-stop code in place, changed orb #$30 to orb #$28
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
22 *
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
23 * 6r4 2004/02/17 Rodney Hamilton
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
24 * Minor optimizations, improvements in source comments
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
25 *
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
26 * 7 2005/10/10 Boisy G. Pitre
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
27 * Added fragmented bootfile support
230
3d2fa54fe8fb Source changes
boisy
parents: 210
diff changeset
28
210
6bf55704c623 Boot is adapted from OS-9 Level Two boot module, now boots from
boisy
parents: 201
diff changeset
29 nam Boot
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
30 ttl WD1773 Boot module
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
31
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
32 IFP1
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
33 use defsfile
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
34 ENDC
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
35
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
36 * FDC Control Register bits at $FF40
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
37 HALTENA equ %10000000
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
38 SIDESEL equ %01000000 DRVSEL3 if no DS drives
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
39 DDEN equ %00100000
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
40 READY equ %00010000 READY for Tandy WD1773-based controllers
1516
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
41 MOTON equ %00001000
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
42 DRVSEL2 equ %00000100
1516
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
43 DRVSEL1 equ %00000010
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
44 DRVSEL0 equ %00000001
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
45
1709
1e026af2217c Rodney's source fixer uppers
boisy
parents: 1533
diff changeset
46 * Default Boot is from drive 0
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
47 BootDr set DRVSEL0
1709
1e026af2217c Rodney's source fixer uppers
boisy
parents: 1533
diff changeset
48 IFEQ DNum-1
1e026af2217c Rodney's source fixer uppers
boisy
parents: 1533
diff changeset
49 BootDr set DRVSEL1 Alternate boot from drive 1
1e026af2217c Rodney's source fixer uppers
boisy
parents: 1533
diff changeset
50 ENDC
1e026af2217c Rodney's source fixer uppers
boisy
parents: 1533
diff changeset
51 IFEQ DNum-2
1e026af2217c Rodney's source fixer uppers
boisy
parents: 1533
diff changeset
52 BootDr set DRVSEL2 Alternate boot from drive 2
1e026af2217c Rodney's source fixer uppers
boisy
parents: 1533
diff changeset
53 ENDC
1e026af2217c Rodney's source fixer uppers
boisy
parents: 1533
diff changeset
54 IFEQ DNum-3
1e026af2217c Rodney's source fixer uppers
boisy
parents: 1533
diff changeset
55 BootDr set SIDESEL Alternate boot from drive 3
1e026af2217c Rodney's source fixer uppers
boisy
parents: 1533
diff changeset
56 ENDC
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
57
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
58 * WD17x3 DPort offsets
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
59 CONTROL equ 0
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
60 CMDREG equ 8+0 write-only
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
61 STATREG equ CMDREG read-only
1516
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
62 TRACKREG equ 8+1
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
63 SECTREG equ 8+2
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
64 DATAREG equ 8+3
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
65
1515
30c1d42f3913 Added comments, slow optimization progress
boisy
parents: 1514
diff changeset
66 * Sector Size
30c1d42f3913 Added comments, slow optimization progress
boisy
parents: 1514
diff changeset
67 SECTSIZE equ 256
30c1d42f3913 Added comments, slow optimization progress
boisy
parents: 1514
diff changeset
68
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
69 * Step Rates:
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
70 * $00 = 6ms
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
71 * $01 = 12ms
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
72 * $02 = 20ms
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
73 * $03 = 30ms
1213
4e235f213651 Lots of changes: bootscripts and bootlists added, sources massaged...
boisy
parents: 1166
diff changeset
74 STEP set $00
210
6bf55704c623 Boot is adapted from OS-9 Level Two boot module, now boots from
boisy
parents: 201
diff changeset
75
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
76 tylg set Systm+Objct
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
77 atrv set ReEnt+rev
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
78 rev set $00
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
79 edition set 7
230
3d2fa54fe8fb Source changes
boisy
parents: 210
diff changeset
80
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
81 mod eom,name,tylg,atrv,start,size
230
3d2fa54fe8fb Source changes
boisy
parents: 210
diff changeset
82
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
83 * NOTE: these are U-stack offsets, not DP
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
84 seglist rmb 2 pointer to segment list
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
85 blockloc rmb 2 pointer to memory requested
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
86 blockimg rmb 2 duplicate of the above
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
87 bootloc rmb 3 sector pointer; not byte pointer
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
88 bootsize rmb 2 size in bytes
1515
30c1d42f3913 Added comments, slow optimization progress
boisy
parents: 1514
diff changeset
89 drvsel rmb 1
1514
b7d6cb1df834 added comments
boisy
parents: 1463
diff changeset
90 currtrak rmb 1
b7d6cb1df834 added comments
boisy
parents: 1463
diff changeset
91 ddtks rmb 1 no. of sectors per track
b7d6cb1df834 added comments
boisy
parents: 1463
diff changeset
92 dblsided rmb 1
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
93 side rmb 1 side 2 flag
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
94 size equ .
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
95
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
96 name fcs /Boot/
230
3d2fa54fe8fb Source changes
boisy
parents: 210
diff changeset
97 fcb edition
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
98
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
99 start orcc #IntMasks ensure IRQs are off (necessary?)
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
100 leas -size,s
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
101 tfr s,u get pointer to data area
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
102 pshs u save pointer to data area
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
103
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
104 ************ START OF DEVICE-SPECIFIC INIT ***********
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
105 * HWInit - Initialize the device
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
106 HWInit
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
107 ldy Address,pcr get hardware address
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
108 lda #%11010000 ($D0) Force Interrupt (stops any command in progress)
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
109 sta CMDREG,y write command to command register
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
110 lbsr Delay2 delay 54~
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
111 lda STATREG,y clear status register
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
112 lda #$FF
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
113 sta currtrak,u set current track to 255
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
114 leax >NMIRtn,pcr point to NMI routine
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
115 IFGT Level-1
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
116 stx <D.NMI save address
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
117 ELSE
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
118 stx >D.XNMI+1 save address
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
119 lda #$7E
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
120 sta >D.XNMI
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
121 ENDC
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
122 lda #MOTON turn on drive motor
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
123 ora WhichDrv,pcr
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
124 sta CONTROL,y
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
125 * MOTOR ON spin-up delay loop (~307 mSec)
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
126 IFGT Level-1
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
127 ldd #50000
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
128 ELSE
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
129 ldd #25000
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
130 ENDC
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
131 IFNE H6309
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
132 nop
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
133 ENDC
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
134 L003A nop
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
135 nop
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
136 IFNE H6309
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
137 nop
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
138 nop
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
139 nop
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
140 ENDC
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
141 subd #$0001
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
142 bne L003A
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
143 ************ END OF DEVICE-SPECIFIC INIT ***********
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
144
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
145 * Request memory for LSN0
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
146 ldd #256 get sector/fd buffer
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
147 os9 F$SRqMem get it!
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
148 bcs error2
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
149 bsr getpntr restore U to point to our statics
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
150
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
151 * Read LSN0
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
152 clrb MSB sector
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
153 ldx #0 LSW sector
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
154 lbsr HWRead read LSN 0
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
155 bcs error branch if error
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
156
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
157 ifgt Level-1
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
158 lda #'0 --- loaded in LSN0'
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
159 jsr <D.BtBug ---
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
160 endc
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
161
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
162 * Pull relevant values from LSN0
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
163 lda DD.TKS,x number of tracks on this disk
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
164 sta ddtks,u
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
165 lda DD.FMT,x disk format byte
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
166 sta dblsided,u
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
167 lda DD.BT,x os9boot pointer
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
168 sta bootloc,u
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
169 ldd DD.BT+1,x LSW of 24 bit address
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
170 std bootloc+1,u
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
171 ldd DD.BSZ,x os9boot size in bytes
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
172 beq FragBoot if zero, do frag boot
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
173 std bootsize,u
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
174 * Old style boot -- make a fake FD segment
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
175 leax FD.SEG,x
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
176 addd #$00FF round up to next page
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
177 * Important note: We are making an assumption that the upper 8 bits of the
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
178 * FDSL.B field will always be zero. That is a safe assumption, since an
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
179 * FDSL.B value of $00FF would mean the file is 65280 bytes. A bootfile
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
180 * under NitrOS-9 cannot be this large, and therefore this assumption
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
181 * is safe.
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
182 sta FDSL.B+1,x save file size
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
183 lda bootloc,u
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
184 sta FDSL.A,x
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
185 ldd bootloc+1,u
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
186 std FDSL.A+1,x save LSN of file (contiguous)
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
187 clr FDSL.S,x make next segment entry 0
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
188 clr FDSL.S+1,x
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
189 clr FDSL.S+2,x
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
190 ldd bootsize,u
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
191 bra GrabBootMem
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
192
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
193 Back2Krn ldx blockimg,u pointer to start of os9boot in memory
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
194 clrb clear carry
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
195 ldd bootsize,u
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
196 error2 leas 2+size,s reset the stack same as PULS U
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
197 rts return to kernel
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
198
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
199 * Error point - return allocated memory and then return to kernel
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
200 error
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
201 * Return memory allocated for sector buffers
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
202 ldd #256
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
203 ldu blockloc,u
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
204 os9 F$SRtMem
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
205 bra error2
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
206
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
207 * Routine to save off alloced mem from F$SRqMem into blockloc,u and restore
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
208 * the statics pointer in U
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
209 getpntr tfr u,d save pointer to requested memory
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
210 ldu 2,s recover pointer to data stack
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
211 std blockloc,u
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
212 rts
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
213
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
214 * NEW! Fragmented boot support!
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
215 FragBoot ldb bootloc,u MSB fd sector location
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
216 ldx bootloc+1,u LSW fd sector location
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
217 lbsr HWRead get fd sector
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
218 ldd FD.SIZ+2,x get file size (we skip first two bytes)
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
219 std bootsize,u
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
220 leax FD.SEG,x point to segment table
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
221
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
222 GrabBootMem
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
223 ifgt Level-1
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
224 os9 F$BtMem
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
225 else
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
226 os9 F$SRqMem
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
227 endc
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
228 bcs error
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
229 bsr getpntr
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
230 std blockimg,u
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
231
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
232 * Get os9boot into memory
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
233 BootLoop stx seglist,u update segment list
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
234 ldb FDSL.A,x MSB sector location
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
235 BL2 ldx FDSL.A+1,x LSW sector location
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
236 bne BL3
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
237 tstb
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
238 beq Back2Krn
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
239 BL3 lbsr HWRead
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
240 inc blockloc,u point to next input sector in mem
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
241
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
242 ifgt Level-1
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
243 lda #'. Show .'
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
244 jsr <D.BtBug
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
245 endc
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
246
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
247 ldx seglist,u get pointer to segment list
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
248 dec FDSL.B+1,x get segment size
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
249 beq NextSeg if <=0, get next segment
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
250
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
251 ldd FDSL.A+1,x update sector location by one to 24bit word
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
252 addd #1
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
253 std FDSL.A+1,x
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
254 ldb FDSL.A,x
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
255 adcb #0
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
256 stb FDSL.A,x
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
257 bra BL2
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
258
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
259 NextSeg leax FDSL.S,x advance to next segment entry
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
260 bra BootLoop
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
261
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
262
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
263
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
264 ************************************************************
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
265 ************************************************************
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
266 * Hardware-Specific Booter Area *
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
267 ************************************************************
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
268 ************************************************************
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
269
210
6bf55704c623 Boot is adapted from OS-9 Level Two boot module, now boots from
boisy
parents: 201
diff changeset
270
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
271 DoDDns lda #DDEN+MOTON double density enable and motor on
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
272 ora WhichDrv,pcr OR in selected drive
1516
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
273 sta drvsel,u save drive selection byte
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
274 clr currtrak,u clear current track
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
275 lda #$05
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
276 lbsr SetTrak Set the track to the head we want
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
277 ldb #0+STEP RESTORE cmd
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
278 lbra Talk2FDC send command and wait for it to complete
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
279
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
280 *
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
281 * HWRead - Read a 256 byte sector from the device
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
282 * Entry: Y = hardware address
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
283 * B = bits 23-16 of LSN
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
284 * X = bits 15-0 of LSN
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
285 * blockloc,u = ptr to 256 byte sector
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
286 * Exit: X = ptr to data (i.e. ptr in blockloc,u)
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
287 *
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
288 * Read a sector from the 1773
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
289 * Entry: B,X = LSN to read
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
290 HWRead lda #$91
1515
30c1d42f3913 Added comments, slow optimization progress
boisy
parents: 1514
diff changeset
291 bsr L00DF else branch subroutine
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
292 bcs HWRRts branch if error
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
293 ldx blockloc,u get buffer pointer in X for caller
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
294 clrb
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
295 HWRRts rts
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
296
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
297 L00D7 bcc L00DF
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
298 pshs x,b,a
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
299 bsr DoDDns
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
300 puls x,b,a
1515
30c1d42f3913 Added comments, slow optimization progress
boisy
parents: 1514
diff changeset
301 L00DF pshs x,b,a save LSN, command
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
302 bsr ReadSect
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
303 puls x,b,a restore LSN, command
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
304 bcc HWRRts branch if OK
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
305 lsra
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
306 bne L00D7
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
307 ReadSect bsr Seek2Sect seek to the sector stored in X
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
308 bcs HWRRts if error, return to caller
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
309 ldx blockloc,u get address of buffer to fill
1515
30c1d42f3913 Added comments, slow optimization progress
boisy
parents: 1514
diff changeset
310 orcc #IntMasks mask interrupts
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
311 pshs x save X
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
312 ldx #$FFFF
1516
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
313 ldb #%10000000 ($80) READ SECTOR command
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
314 stb CMDREG,y write to command register
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
315 ldb drvsel,u (DDEN+MOTORON+BootDr)
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
316 * NOTE: The 1773 FDC multiplexes the write precomp enable and ready
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
317 * signals on the ENP/RDY pin, so the READY bit must always be ON for
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
318 * read and seek commands. (from the FD502 FDC Service Manual)
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
319 orb #DDEN+READY set DDEN+READY bits ($30)
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
320 tst side,u are we on side 2?
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
321 beq L0107
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
322 orb #SIDESEL set side 2 bit
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
323 L0107 stb CONTROL,y
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
324 lbsr Delay2 delay 54~
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
325 orb #HALTENA HALT enable ($80)
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
326 * lda #%00000010 RESTORE cmd ($02)
1516
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
327 *L0111 bita >DPort+STATREG
1291
92e9f7416fc9 Added BLOB-stop fix, changed one line as per Robert Gault's suggestion
boisy
parents: 1287
diff changeset
328 * bne L0123
92e9f7416fc9 Added BLOB-stop fix, changed one line as per Robert Gault's suggestion
boisy
parents: 1287
diff changeset
329 * leay -$01,y
92e9f7416fc9 Added BLOB-stop fix, changed one line as per Robert Gault's suggestion
boisy
parents: 1287
diff changeset
330 * bne L0111
1515
30c1d42f3913 Added comments, slow optimization progress
boisy
parents: 1514
diff changeset
331 * lda drvsel,u
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
332 * sta >DPort+CONTROL
1291
92e9f7416fc9 Added BLOB-stop fix, changed one line as per Robert Gault's suggestion
boisy
parents: 1287
diff changeset
333 * puls y
92e9f7416fc9 Added BLOB-stop fix, changed one line as per Robert Gault's suggestion
boisy
parents: 1287
diff changeset
334 * bra L0138
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
335 stb CONTROL,y
1291
92e9f7416fc9 Added BLOB-stop fix, changed one line as per Robert Gault's suggestion
boisy
parents: 1287
diff changeset
336 nop
92e9f7416fc9 Added BLOB-stop fix, changed one line as per Robert Gault's suggestion
boisy
parents: 1287
diff changeset
337 nop
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
338 * bra L0123
1516
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
339
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
340 ldx ,s get X saved earlier
1516
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
341 * Sector READ Loop
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
342 L0123 lda DATAREG,y read from WD DATA register
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
343 sta ,x+
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
344 * stb >DPort+CONTROL
1291
92e9f7416fc9 Added BLOB-stop fix, changed one line as per Robert Gault's suggestion
boisy
parents: 1287
diff changeset
345 nop
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
346 bra L0123
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
347 * RVH NOTE: This ONLY works for double density boot disks! The Tandy
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
348 * controllers internally gate HALT enable with the DDEN bit, which
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
349 * means that reading a single-density boot disk will not generate the
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
350 * NMI signal needed to exit the read loop! Single-density disks must
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
351 * use a polled I/O loop instead.
1515
30c1d42f3913 Added comments, slow optimization progress
boisy
parents: 1514
diff changeset
352 NMIRtn leas R$Size,s adjust stack
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
353 puls x
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
354 ldb STATREG,y read WD STATUS register
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
355 bitb #$9C any errors?
1516
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
356 * bitb #$04 LOST DATA bit set?
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
357 beq r@ branch if not
1516
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
358 * beq ChkErr branch if not
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
359 L0138 comb else we will return error
210
6bf55704c623 Boot is adapted from OS-9 Level Two boot module, now boots from
boisy
parents: 201
diff changeset
360 ldb #E$Read
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
361 r@ rts
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
362
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
363 Seek2Sect
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
364 lda #MOTON permit alternate drives
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
365 ora WhichDrv,pcr permit alternate drives
1516
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
366 sta drvsel,u save byte to static mem
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
367 clr side,u start on side 1
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
368 tfr x,d move LSN into D
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
369 cmpd #$0000 zero?
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
370 beq L016C branch if so
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
371 clr ,-s else clear space on stack
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
372 tst dblsided,u double sided disk?
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
373 beq SnglSid branch if not
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
374 bra DblSid
1515
30c1d42f3913 Added comments, slow optimization progress
boisy
parents: 1514
diff changeset
375 * Double-sided code
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
376 L0152 com side,u flag side 2
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
377 bne DblSid
210
6bf55704c623 Boot is adapted from OS-9 Level Two boot module, now boots from
boisy
parents: 201
diff changeset
378 inc ,s
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
379 DblSid subb ddtks,u
210
6bf55704c623 Boot is adapted from OS-9 Level Two boot module, now boots from
boisy
parents: 201
diff changeset
380 sbca #$00
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
381 bcc L0152
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
382 bra L0168
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
383 L0160 inc ,s
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
384 SnglSid subb ddtks,u subtract sectors per track from B
210
6bf55704c623 Boot is adapted from OS-9 Level Two boot module, now boots from
boisy
parents: 201
diff changeset
385 sbca #$00
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
386 bcc L0160
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
387 L0168 addb #18 add sectors per track (should this be ddtks?)
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
388 puls a get current track indicator off of stack
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
389 L016C incb
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
390 stb SECTREG,y save in sector register
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
391 SetTrak ldb currtrak,u get current track in B
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
392 stb TRACKREG,y save in track register
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
393 cmpa currtrak,u same as A?
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
394 beq rtsok branch if so
1514
b7d6cb1df834 added comments
boisy
parents: 1463
diff changeset
395 sta currtrak,u
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
396 sta DATAREG,y
1516
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
397 ldb #$10+STEP SEEK command
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
398 bsr Talk2FDC send command to controller
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
399 pshs x
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
400 * Seek Delay
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
401 ldx #$222E delay ~39 mSec (78mS L1)
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
402 SeekDly leax -$01,x
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
403 bne SeekDly
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
404 puls x
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
405 rtsok clrb
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
406 rts
1516
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
407
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
408 *ChkErr bitb #$98 evaluate WD status (READY, RNF, CRC err)
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
409 * bne L0138
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
410 * clrb
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
411 * rts
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
412
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
413 Talk2FDC bsr DoCMD issue FDC cmd, wait 54~
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
414 FDCLoop ldb STATREG,y get status
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
415 bitb #$01 still BUSY?
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
416 bne FDCLoop loop until command completes
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
417 rts
1516
9a9734ef451c Added comments, symbolics, optimized code slightly
boisy
parents: 1515
diff changeset
418
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
419 * Issue command and wait 54 clocks
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
420 * Controller requires a min delay of 14uS (DD) or 28uS (SD)
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
421 * following a command write before status register is valid
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
422 DoCMD bsr SelNSend
1515
30c1d42f3913 Added comments, slow optimization progress
boisy
parents: 1514
diff changeset
423 * Delay branches
1520
5ff76789bec2 Updated boot_1773.asm from Rodney H.
boisy
parents: 1516
diff changeset
424 * 54 clock delay including bsr (=30uS/L2,60us/L1)
1515
30c1d42f3913 Added comments, slow optimization progress
boisy
parents: 1514
diff changeset
425 Delay2
1363
53c50c807d55 Major move to new NitrOS-9 project
boisy
parents: 1308
diff changeset
426 IFNE H6309
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
427 nop
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
428 nop
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
429 ENDC
1515
30c1d42f3913 Added comments, slow optimization progress
boisy
parents: 1514
diff changeset
430 lbsr Delay3
30c1d42f3913 Added comments, slow optimization progress
boisy
parents: 1514
diff changeset
431 Delay3
1363
53c50c807d55 Major move to new NitrOS-9 project
boisy
parents: 1308
diff changeset
432 IFNE H6309
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
433 nop
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
434 nop
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
435 ENDC
1515
30c1d42f3913 Added comments, slow optimization progress
boisy
parents: 1514
diff changeset
436 lbsr Delay4
30c1d42f3913 Added comments, slow optimization progress
boisy
parents: 1514
diff changeset
437 Delay4
1363
53c50c807d55 Major move to new NitrOS-9 project
boisy
parents: 1308
diff changeset
438 IFNE H6309
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
439 nop
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
440 ENDC
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
441 rts
210
6bf55704c623 Boot is adapted from OS-9 Level Two boot module, now boots from
boisy
parents: 201
diff changeset
442
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
443 * Select And Send
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
444 * Entry: B = command byte
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
445 SelNSend lda drvsel,u
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
446 sta CONTROL,y
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
447 stb CMDREG,y
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
448 rts
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
449
1166
bb618bed0bdc Miscellaneous source improvements
boisy
parents: 249
diff changeset
450 IFGT Level-1
1287
10957d54bf16 Made all modules rev 0
boisy
parents: 1213
diff changeset
451 * Filler to get $1D0
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
452 Filler fill $39,$1D0-3-2-1-*
1166
bb618bed0bdc Miscellaneous source improvements
boisy
parents: 249
diff changeset
453 ENDC
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
454
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
455 Address fdb DPort
1886
b151cc54904e Added fragmented bootfile support. Added more labels and comments
boisy
parents: 1882
diff changeset
456 WhichDrv fcb BootDr
1882
c96f594fe098 Added fragmented boot support... needs additional testing.
boisy
parents: 1709
diff changeset
457
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
458 emod
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
459 eom equ *
48
cdfe69117a2f Cleaned up source
boisy
parents: 0
diff changeset
460 end