Hex file for new address mapping

This commit is contained in:
Florian Reitz 2017-10-17 00:06:33 +02:00
parent c5945ff0ec
commit 9e674fe0c6
4 changed files with 1455 additions and 1101 deletions

Binary file not shown.

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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