forked from Apple-2-HW/AppleIISd
Hex file for new address mapping
This commit is contained in:
parent
c5945ff0ec
commit
9e674fe0c6
BIN
AppleIISd.bin
BIN
AppleIISd.bin
Binary file not shown.
191
AppleIISd.hex
191
AppleIISd.hex
@ -1,64 +1,129 @@
|
||||
:10000000A220A000A203A0FF2058FFBABD00018DCE
|
||||
:10001000F807290F853D0A0A0A0A852BAA2CFFCF6B
|
||||
:1000200020AECA9003A927002000C9C900F0010032
|
||||
:10003000A9018542A62B85436444A90885456446E9
|
||||
:1000400064472CFFCF20DDCA4C0108D82058FFBAE6
|
||||
:10005000BD00018DF807290F853D0A0A0A0A852B84
|
||||
:10006000AA2CFFCF20AECA9004A927801BA9803CF0
|
||||
:1000700083C0F022A542C900F010C901F00FC902E7
|
||||
:10008000F00EC903F00DA90138604CC6CA4CDDCA98
|
||||
:100090004C4BCB4CC1CB2000C9B0ED80D700000049
|
||||
:1000A0000000000000000000000000000000000050
|
||||
:1000B0000000000000000000000000000000000040
|
||||
:1000C0000000000000000000000000000000000030
|
||||
:1000D0000000000000000000000000000000000020
|
||||
:1000E0000000000000000000000000000000000010
|
||||
:1000F000000000000000000000000000FFFF174BA0
|
||||
:10010000D8A9039D81C0BD83C009019D83C0A907F3
|
||||
:100110009D82C0A00AA9FF9D80C03C81C010FB88C1
|
||||
:10012000D0F5BD83C029FE9D83C0A9C58540A9CB5C
|
||||
:10013000854120F0C92004CAC901D039A9D1854020
|
||||
:10014000A9CB854120F0C9201FCAC901D02AA9DD49
|
||||
:100150008540A9CB854120F0C92004CAA9E3854088
|
||||
:10016000A9CB854120F0C92004CAC901F0E0C9002B
|
||||
:10017000D0034CB2C94CDEC9A9DD8540A9CB85416D
|
||||
:1001800020F0C9A9E98540A9CB854120F0C9200408
|
||||
:10019000CAC901F0E3C900D0034CB2C9A9CB85405C
|
||||
:1001A000A9CB854120F0C92004CAC901F0F6C900D5
|
||||
:1001B000D02CA9D78540A9CB854120F0C92004CAFD
|
||||
:1001C000C900D01ABD83C009809D83C0BD81C0090C
|
||||
:1001D000049D81C018A000900838A02FB00338A05B
|
||||
:1001E00027BD83C009019D83C0A9009D82C098607E
|
||||
:1001F0005AA000B1409D80C03C81C010FBC8C00621
|
||||
:1002000090F17A60A9FF9D80C03C81C010FBBD8049
|
||||
:10021000C0853C2980D0EDA9FF9D80C0A53C602011
|
||||
:1002200004CA485AA004A9FF9D80C03C81C010FBAD
|
||||
:10023000BD80C04888D0EFA43D6899F805689978DA
|
||||
:10024000056899F804689978047AA9FF9D80C068C8
|
||||
:1002500060DA5AA63DA5469DF805A5479D7805A9F3
|
||||
:10026000009DF8049D7804A9802443F005A9019D10
|
||||
:10027000F804A0091EF8053E78053EF8043E78040F
|
||||
:1002800088D0F17AFA605AA43D9D80C0B978049D67
|
||||
:1002900080C0B9F8049D80C0B978059D80C0B9F8C8
|
||||
:1002A000059D80C0A9FF9D80C02004CA7A6048A92E
|
||||
:1002B000403C83C018F00138686048A9203C83C0E6
|
||||
:1002C00018F001386860A900A2FFA0FF20AECA9014
|
||||
:1002D00004A92F800720BACA9002A92B6020AECAB9
|
||||
:1002E000B0642051CABD83C029FE9D83C0A951209E
|
||||
:1002F00086CAC900D050A9FF9D80C0BD80C0C9FE7C
|
||||
:10030000D0F4A002BD81C009109D81C0A9FF9D80CD
|
||||
:10031000C0643CBD80C09244E644D002E645E63C61
|
||||
:10032000D0F188D0ECBD80C0BD80C0BD80C0BD8193
|
||||
:10033000C029EF9D81C018A9000848BD83C00901EC
|
||||
:100340009D83C068286038A92780EE20AECAB067B8
|
||||
:1003500020BACAB0672051CABD83C029FE9D83C0A0
|
||||
:10036000A9582086CAC900D04EA9FF9D80C0A9FE09
|
||||
:100370009D80C0A002643CB2449D80C0E644D0028F
|
||||
:10038000E645E63CD0F188D0EC9D80C09D80C09DC4
|
||||
:1003900080C0BD80C0291FC905D01C18A90008480D
|
||||
:1003A000A9FF9D80C0BD80C0C900F0F4BD83C00915
|
||||
:1003B000019D83C068286038A92780E238A92B8076
|
||||
:1003C000DD38A901604000000000954100000000F8
|
||||
:1003D000F948000001AA875000000200FF770000E2
|
||||
:0F03E0000000656940000000776900000000FF21
|
||||
:10000000D8A9039D81C0BD83C009019D83C0A907F4
|
||||
:100010009D82C0A00AA9FF9D80C03C81C010FB88C2
|
||||
:10002000D0F5BD83C029FE9D83C0A9C58540A9CA5E
|
||||
:10003000854120F0C82004C9C901D039A9D1854023
|
||||
:10004000A9CA854120F0C8201FC9C901D02AA9DD4D
|
||||
:100050008540A9CA854120F0C82004C9A9E385408C
|
||||
:10006000A9CA854120F0C82004C9C901F0E0C9002F
|
||||
:10007000D0034CB2C84CDEC8A9DD8540A9CA854171
|
||||
:1000800020F0C8A9E98540A9CA854120F0C820040C
|
||||
:10009000C9C901F0E3C900D0034CB2C8A9CB85405F
|
||||
:1000A000A9CA854120F0C82004C9C901F0F6C900D9
|
||||
:1000B000D02CA9D78540A9CA854120F0C82004C901
|
||||
:1000C000C900D01ABD83C009809D83C0BD81C0090D
|
||||
:1000D000049D81C018A000900838A02FB00338A05C
|
||||
:1000E00027BD83C009019D83C0A9009D82C098607F
|
||||
:1000F0005AA000B1409D80C03C81C010FBC8C00622
|
||||
:1001000090F17A60A9FF9D80C03C81C010FBBD804A
|
||||
:10011000C0853C2980D0EDA9FF9D80C0A53C602012
|
||||
:1001200004C9485AA004A9FF9D80C03C81C010FBAF
|
||||
:10013000BD80C04888D0EFA43D6899F805689978DB
|
||||
:10014000056899F804689978047AA9FF9D80C068C9
|
||||
:1001500060DA5AA63DA5469DF805A5479D7805A9F4
|
||||
:10016000009DF8049D7804A9802443F005A9019D11
|
||||
:10017000F804A0091EF8053E78053EF8043E780410
|
||||
:1001800088D0F17AFA605AA43D9D80C0B978049D68
|
||||
:1001900080C0B9F8049D80C0B978059D80C0B9F8C9
|
||||
:1001A000059D80C0A9FF9D80C02004C97A6048A930
|
||||
:1001B000403C83C018F00138686048A9203C83C0E7
|
||||
:1001C00018F001386860A900A2FFA0FF20AEC99016
|
||||
:1001D00004A92F800720BAC99002A92B6020AEC9BC
|
||||
:1001E000B0642051C9BD83C029FE9D83C0A95120A0
|
||||
:1001F00086C9C900D050A9FF9D80C0BD80C0C9FE7E
|
||||
:10020000D0F4A002BD81C009109D81C0A9FF9D80CE
|
||||
:10021000C0643CBD80C09244E644D002E645E63C62
|
||||
:10022000D0F188D0ECBD80C0BD80C0BD80C0BD8194
|
||||
:10023000C029EF9D81C018A9000848BD83C00901ED
|
||||
:100240009D83C068286038A92780EE20AEC9B067BA
|
||||
:1002500020BAC9B0672051C9BD83C029FE9D83C0A3
|
||||
:10026000A9582086C9C900D04EA9FF9D80C0A9FE0B
|
||||
:100270009D80C0A002643CB2449D80C0E644D00290
|
||||
:10028000E645E63CD0F188D0EC9D80C09D80C09DC5
|
||||
:1002900080C0BD80C0291FC905D01C18A90008480E
|
||||
:1002A000A9FF9D80C0BD80C0C900F0F4BD83C00916
|
||||
:1002B000019D83C068286038A92780E238A92B8077
|
||||
:1002C000DD38A901604000000000954100000000F9
|
||||
:1002D000F948000001AA875000000200FF770000E3
|
||||
:1002E0000000656940000000776900000000FF0021
|
||||
:1002F00000000000000000000000000000000000FE
|
||||
:1003000000000000000000000000000000000000ED
|
||||
:1003100000000000000000000000000000000000DD
|
||||
:1003200000000000000000000000000000000000CD
|
||||
:1003300000000000000000000000000000000000BD
|
||||
:1003400000000000000000000000000000000000AD
|
||||
:10035000000000000000000000000000000000009D
|
||||
:10036000000000000000000000000000000000008D
|
||||
:10037000000000000000000000000000000000007D
|
||||
:10038000000000000000000000000000000000006D
|
||||
:10039000000000000000000000000000000000005D
|
||||
:1003A000000000000000000000000000000000004D
|
||||
:1003B000000000000000000000000000000000003D
|
||||
:1003C000000000000000000000000000000000002D
|
||||
:1003D000000000000000000000000000000000001D
|
||||
:1003E000000000000000000000000000000000000D
|
||||
:1003F00000000000000000000000000000000000FD
|
||||
:1004000000000000000000000000000000000000EC
|
||||
:1004100000000000000000000000000000000000DC
|
||||
:1004200000000000000000000000000000000000CC
|
||||
:1004300000000000000000000000000000000000BC
|
||||
:1004400000000000000000000000000000000000AC
|
||||
:10045000000000000000000000000000000000009C
|
||||
:10046000000000000000000000000000000000008C
|
||||
:10047000000000000000000000000000000000007C
|
||||
:10048000000000000000000000000000000000006C
|
||||
:10049000000000000000000000000000000000005C
|
||||
:1004A000000000000000000000000000000000004C
|
||||
:1004B000000000000000000000000000000000003C
|
||||
:1004C000000000000000000000000000000000002C
|
||||
:1004D000000000000000000000000000000000001C
|
||||
:1004E000000000000000000000000000000000000C
|
||||
:1004F00000000000000000000000000000000000FC
|
||||
:1005000000000000000000000000000000000000EB
|
||||
:1005100000000000000000000000000000000000DB
|
||||
:1005200000000000000000000000000000000000CB
|
||||
:1005300000000000000000000000000000000000BB
|
||||
:1005400000000000000000000000000000000000AB
|
||||
:10055000000000000000000000000000000000009B
|
||||
:10056000000000000000000000000000000000008B
|
||||
:10057000000000000000000000000000000000007B
|
||||
:10058000000000000000000000000000000000006B
|
||||
:10059000000000000000000000000000000000005B
|
||||
:1005A000000000000000000000000000000000004B
|
||||
:1005B000000000000000000000000000000000003B
|
||||
:1005C000000000000000000000000000000000002B
|
||||
:1005D000000000000000000000000000000000001B
|
||||
:1005E000000000000000000000000000000000000B
|
||||
:1005F00000000000000000000000000000000000FB
|
||||
:1006000000000000000000000000000000000000EA
|
||||
:1006100000000000000000000000000000000000DA
|
||||
:1006200000000000000000000000000000000000CA
|
||||
:1006300000000000000000000000000000000000BA
|
||||
:1006400000000000000000000000000000000000AA
|
||||
:10065000000000000000000000000000000000009A
|
||||
:10066000000000000000000000000000000000008A
|
||||
:10067000000000000000000000000000000000007A
|
||||
:10068000000000000000000000000000000000006A
|
||||
:10069000000000000000000000000000000000005A
|
||||
:1006A000000000000000000000000000000000004A
|
||||
:1006B000000000000000000000000000000000003A
|
||||
:1006C000000000000000000000000000000000002A
|
||||
:1006D000000000000000000000000000000000001A
|
||||
:1006E000000000000000000000000000000000000A
|
||||
:1006F00000000000000000000000000000000000FA
|
||||
:10070000A220A000A203A0FF2058FFBABD00018DC7
|
||||
:10071000F807290F853D0A0A0A0A852BAA2CFFCF64
|
||||
:1007200020AEC99003A927002000C8C900F001002D
|
||||
:10073000A9018542A62B85436444A90885456446E2
|
||||
:1007400064472CFFCF20DDC94C0108D82058FFBAE0
|
||||
:10075000BD00018DF807290F853D0A0A0A0A852B7D
|
||||
:10076000AA2CFFCF20AEC99004A927801BA9803CEA
|
||||
:1007700083C0F022A542C900F010C901F00FC902E0
|
||||
:10078000F00EC903F00DA90138604CC6C94CDDC993
|
||||
:100790004C4BCA4CC1CA2000C8B0ED80D700000045
|
||||
:1007A0000000000000000000000000000000000049
|
||||
:1007B0000000000000000000000000000000000039
|
||||
:1007C0000000000000000000000000000000000029
|
||||
:1007D0000000000000000000000000000000000019
|
||||
:1007E0000000000000000000000000000000000009
|
||||
:1007F000000000000000000000000000FFFF174B99
|
||||
:00000001FF
|
||||
|
1959
AppleIISd.lst
1959
AppleIISd.lst
File diff suppressed because it is too large
Load Diff
406
AppleIISd.s
406
AppleIISd.s
@ -53,202 +53,6 @@ CD = $40
|
||||
INITED = $80
|
||||
|
||||
|
||||
* signature bytes
|
||||
|
||||
LDX #$20
|
||||
LDY #$00
|
||||
LDX #$03
|
||||
LDY #$FF ; neither 5.25 nor Smartport
|
||||
|
||||
* find slot nr
|
||||
|
||||
DO DEBUG
|
||||
LDA #$04
|
||||
STA SLOT
|
||||
LDA #$C4
|
||||
STA CURSLOT
|
||||
LDA #$40
|
||||
|
||||
ELSE
|
||||
JSR $FF58
|
||||
TSX
|
||||
LDA $0100,X
|
||||
STA CURSLOT ; $Cs
|
||||
AND #$0F
|
||||
STA SLOT ; $0s
|
||||
ASL A
|
||||
ASL A
|
||||
ASL A
|
||||
ASL A
|
||||
FIN
|
||||
|
||||
STA SLOT16 ; $s0
|
||||
TAX ; X holds now SLOT16
|
||||
BIT $CFFF
|
||||
JSR CARDDET
|
||||
BCC :INIT
|
||||
LDA #$27 ; no card inserted
|
||||
BRK
|
||||
|
||||
:INIT JSR INIT
|
||||
|
||||
|
||||
********************************
|
||||
*
|
||||
* Install SD card driver
|
||||
*
|
||||
********************************
|
||||
|
||||
DO DEBUG
|
||||
|
||||
* see if slot has a driver already
|
||||
|
||||
LDX $BF31 ; get devcnt
|
||||
INSTALL LDA $BF32,X ; get a devnum
|
||||
AND #$70 ; isolate slot
|
||||
CMP SLOT16 ; slot?
|
||||
BEQ :INSOUT ; yes, skip it
|
||||
DEX
|
||||
BPL INSTALL ; keep up the search
|
||||
|
||||
* restore the devnum to the list
|
||||
|
||||
LDX $BF31 ; get devcnt again
|
||||
CPX #$0D ; device table full?
|
||||
BNE :INST2
|
||||
|
||||
JSR $FF3A ; bell
|
||||
JMP :INSOUT ; do something!
|
||||
|
||||
:INST2 LDA $BF32-1,X ; move all entries down
|
||||
STA $BF32,X ; to make room at front
|
||||
DEX ; for a new entry
|
||||
BNE :INST2
|
||||
LDA #$04 ; ProFile type device
|
||||
ORA SLOT16
|
||||
STA $BF32 ; slot, drive 1 at top of list
|
||||
INC $BF31 ; update devcnt
|
||||
|
||||
* now insert the device driver vector
|
||||
|
||||
LDA SLOT
|
||||
ASL
|
||||
TAX
|
||||
LDA #<DRIVER
|
||||
STA $BF10,X ; write to driver table
|
||||
LDA #>DRIVER
|
||||
STA $BF11,X
|
||||
:INSOUT RTS
|
||||
|
||||
|
||||
********************************
|
||||
*
|
||||
* Boot from SD card
|
||||
*
|
||||
********************************
|
||||
|
||||
ELSE
|
||||
|
||||
BOOT CMP #0 ; check for error
|
||||
BEQ :BOOT1
|
||||
BRK
|
||||
|
||||
:BOOT1 LDA #$01
|
||||
STA DCMD ; load command
|
||||
LDX SLOT16
|
||||
STA $43 ; slot number
|
||||
STZ BUFFER ; buffer lo
|
||||
LDA #$08
|
||||
STA BUFFER+1 ; buffer hi
|
||||
STZ BLOCK ; block lo
|
||||
STZ BLOCK+1 ; block hi
|
||||
BIT $CFFF
|
||||
JSR READ ; call driver
|
||||
JMP $801 ; goto bootloader
|
||||
|
||||
FIN
|
||||
|
||||
|
||||
********************************
|
||||
*
|
||||
* Jump table
|
||||
*
|
||||
********************************
|
||||
|
||||
DRIVER CLD
|
||||
|
||||
DO DEBUG
|
||||
LDA #$04
|
||||
STA SLOT
|
||||
LDA #$C4
|
||||
STA CURSLOT
|
||||
LDA #$40
|
||||
|
||||
ELSE
|
||||
JSR $FF58 ; find slot nr
|
||||
TSX
|
||||
LDA $0100,X
|
||||
STA CURSLOT ; $Cs
|
||||
AND #$0F
|
||||
STA SLOT ; $0s
|
||||
ASL A
|
||||
ASL A
|
||||
ASL A
|
||||
ASL A
|
||||
FIN
|
||||
|
||||
STA SLOT16 ; $s0
|
||||
TAX ; X holds now SLOT16
|
||||
BIT $CFFF
|
||||
JSR CARDDET
|
||||
BCC :INITED
|
||||
LDA #$27 ; no card inserted
|
||||
BRA :DONE
|
||||
|
||||
:INITED LDA #INITED ; check for init
|
||||
BIT SS,X
|
||||
BEQ :INIT
|
||||
|
||||
:CMD LDA DCMD ; get command
|
||||
CMP #0
|
||||
BEQ :STATUS
|
||||
CMP #1
|
||||
BEQ :READ
|
||||
CMP #2
|
||||
BEQ :WRITE
|
||||
CMP #3
|
||||
BEQ :FORMAT
|
||||
DO DEBUG
|
||||
CMP #$FF
|
||||
BEQ :TEST
|
||||
FIN
|
||||
LDA #1 ; unknown command
|
||||
|
||||
:DONE SEC
|
||||
RTS
|
||||
|
||||
:STATUS JMP STATUS
|
||||
:READ JMP READ
|
||||
:WRITE JMP WRITE
|
||||
:FORMAT JMP FORMAT
|
||||
:INIT JSR INIT
|
||||
BCS :DONE ; init failure
|
||||
BRA :CMD
|
||||
|
||||
DO DEBUG
|
||||
:TEST JMP TEST ; do device test
|
||||
FIN
|
||||
|
||||
|
||||
* Signature bytes
|
||||
|
||||
DS \ ; fill with zeroes
|
||||
DS -4 ; locate to $xxFC
|
||||
DW $FFFF ; 65535 blocks
|
||||
DB $17 ; Status bits
|
||||
DB #<DRIVER ; LSB of driver
|
||||
|
||||
|
||||
********************************
|
||||
*
|
||||
* Initialize SD card
|
||||
@ -870,3 +674,213 @@ ACMD4140 HEX 694000
|
||||
ACMD410 HEX 690000
|
||||
HEX 0000FF
|
||||
|
||||
|
||||
********************************
|
||||
*
|
||||
* This region is mapped to
|
||||
* the $CsXX space. On the ROM
|
||||
* it must appear at address $700
|
||||
*
|
||||
********************************
|
||||
|
||||
DO DEBUG-1
|
||||
DS \
|
||||
DS $400
|
||||
ERR *-1/$CF00 ; must be at $CF00
|
||||
FIN
|
||||
|
||||
* signature bytes
|
||||
|
||||
START LDX #$20
|
||||
LDY #$00
|
||||
LDX #$03
|
||||
LDY #$FF ; neither 5.25 nor Smartport
|
||||
|
||||
* find slot nr
|
||||
|
||||
DO DEBUG
|
||||
LDA #$04
|
||||
STA SLOT
|
||||
LDA #$C4
|
||||
STA CURSLOT
|
||||
LDA #$40
|
||||
|
||||
ELSE
|
||||
JSR $FF58
|
||||
TSX
|
||||
LDA $0100,X
|
||||
STA CURSLOT ; $Cs
|
||||
AND #$0F
|
||||
STA SLOT ; $0s
|
||||
ASL A
|
||||
ASL A
|
||||
ASL A
|
||||
ASL A
|
||||
FIN
|
||||
|
||||
STA SLOT16 ; $s0
|
||||
TAX ; X holds now SLOT16
|
||||
BIT $CFFF
|
||||
JSR CARDDET
|
||||
BCC :INIT
|
||||
LDA #$27 ; no card inserted
|
||||
BRK
|
||||
|
||||
:INIT JSR INIT
|
||||
|
||||
|
||||
********************************
|
||||
*
|
||||
* Install SD card driver
|
||||
*
|
||||
********************************
|
||||
|
||||
DO DEBUG
|
||||
|
||||
* see if slot has a driver already
|
||||
|
||||
LDX $BF31 ; get devcnt
|
||||
INSTALL LDA $BF32,X ; get a devnum
|
||||
AND #$70 ; isolate slot
|
||||
CMP SLOT16 ; slot?
|
||||
BEQ :INSOUT ; yes, skip it
|
||||
DEX
|
||||
BPL INSTALL ; keep up the search
|
||||
|
||||
* restore the devnum to the list
|
||||
|
||||
LDX $BF31 ; get devcnt again
|
||||
CPX #$0D ; device table full?
|
||||
BNE :INST2
|
||||
|
||||
JSR $FF3A ; bell
|
||||
JMP :INSOUT ; do something!
|
||||
|
||||
:INST2 LDA $BF32-1,X ; move all entries down
|
||||
STA $BF32,X ; to make room at front
|
||||
DEX ; for a new entry
|
||||
BNE :INST2
|
||||
LDA #$04 ; ProFile type device
|
||||
ORA SLOT16
|
||||
STA $BF32 ; slot, drive 1 at top of list
|
||||
INC $BF31 ; update devcnt
|
||||
|
||||
* now insert the device driver vector
|
||||
|
||||
LDA SLOT
|
||||
ASL
|
||||
TAX
|
||||
LDA #<DRIVER
|
||||
STA $BF10,X ; write to driver table
|
||||
LDA #>DRIVER
|
||||
STA $BF11,X
|
||||
:INSOUT RTS
|
||||
|
||||
|
||||
********************************
|
||||
*
|
||||
* Boot from SD card
|
||||
*
|
||||
********************************
|
||||
|
||||
ELSE
|
||||
|
||||
BOOT CMP #0 ; check for error
|
||||
BEQ :BOOT1
|
||||
BRK
|
||||
|
||||
:BOOT1 LDA #$01
|
||||
STA DCMD ; load command
|
||||
LDX SLOT16
|
||||
STA $43 ; slot number
|
||||
STZ BUFFER ; buffer lo
|
||||
LDA #$08
|
||||
STA BUFFER+1 ; buffer hi
|
||||
STZ BLOCK ; block lo
|
||||
STZ BLOCK+1 ; block hi
|
||||
BIT $CFFF
|
||||
JSR READ ; call driver
|
||||
JMP $801 ; goto bootloader
|
||||
|
||||
FIN
|
||||
|
||||
|
||||
********************************
|
||||
*
|
||||
* Jump table
|
||||
*
|
||||
********************************
|
||||
|
||||
DRIVER CLD
|
||||
|
||||
DO DEBUG
|
||||
LDA #$04
|
||||
STA SLOT
|
||||
LDA #$C4
|
||||
STA CURSLOT
|
||||
LDA #$40
|
||||
|
||||
ELSE
|
||||
JSR $FF58 ; find slot nr
|
||||
TSX
|
||||
LDA $0100,X
|
||||
STA CURSLOT ; $Cs
|
||||
AND #$0F
|
||||
STA SLOT ; $0s
|
||||
ASL A
|
||||
ASL A
|
||||
ASL A
|
||||
ASL A
|
||||
FIN
|
||||
|
||||
STA SLOT16 ; $s0
|
||||
TAX ; X holds now SLOT16
|
||||
BIT $CFFF
|
||||
JSR CARDDET
|
||||
BCC :INITED
|
||||
LDA #$27 ; no card inserted
|
||||
BRA :DONE
|
||||
|
||||
:INITED LDA #INITED ; check for init
|
||||
BIT SS,X
|
||||
BEQ :INIT
|
||||
|
||||
:CMD LDA DCMD ; get command
|
||||
CMP #0
|
||||
BEQ :STATUS
|
||||
CMP #1
|
||||
BEQ :READ
|
||||
CMP #2
|
||||
BEQ :WRITE
|
||||
CMP #3
|
||||
BEQ :FORMAT
|
||||
DO DEBUG
|
||||
CMP #$FF
|
||||
BEQ :TEST
|
||||
FIN
|
||||
LDA #1 ; unknown command
|
||||
|
||||
:DONE SEC
|
||||
RTS
|
||||
|
||||
:STATUS JMP STATUS
|
||||
:READ JMP READ
|
||||
:WRITE JMP WRITE
|
||||
:FORMAT JMP FORMAT
|
||||
:INIT JSR INIT
|
||||
BCS :DONE ; init failure
|
||||
BRA :CMD
|
||||
|
||||
DO DEBUG
|
||||
:TEST JMP TEST ; do device test
|
||||
FIN
|
||||
|
||||
|
||||
* Signature bytes
|
||||
|
||||
DS \ ; fill with zeroes
|
||||
DS -4 ; locate to $xxFC
|
||||
DW $FFFF ; 65535 blocks
|
||||
DB $17 ; Status bits
|
||||
DB #<DRIVER ; LSB of driver
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user