Boot verified for IIgs, IIe 128k and IIe 64k

This commit is contained in:
Florian Reitz 2017-11-29 01:20:44 +01:00
parent 741624f3b5
commit ab87f81ba8
3 changed files with 84 additions and 94 deletions

Binary file not shown.

View File

@ -1,68 +1,68 @@
:10000000A220A200A203A201782CFFCF20BBCABA73 :10000000A220A200A203A2010878A960853D203D9C
:10001000BD00018DF807290F853D0A0A0A0A852BC4 :1000100000BABD00018DF807290F28853D0A0A0A9C
:10002000AA20B8C99003A92F602000C8A901854261 :100020000A852BAA2CFFCF20B7C99003A92F6020E7
:10003000A62B8643A90885456444644764462CFF83 :1000300000C8A9018542A62B8643A90885456444CA
:10004000CF20DEC9A9018542A62B8643A90A854592 :10004000644764462CFFCF20DDC9A9018542A62B59
:1000500064446447A90185462CFFCF20DEC9A62B46 :100050008643A90A854564446447A90185462CFF67
:100060004C0108D848A52B48A53D48A54048A541C6 :10006000CF20DDC9A62B4C0108D848A52B48A53DBB
:10007000482CFFCF20BBCABABD00018DF807290F5D :1000700048A54048A541480878A960853D203D0035
:10008000853D0A0A0A0A852BAA20B8C99005A92F1E :10008000BABD00018DF807290F28853D0A0A0A0A22
:10009000388037A9803C83C0F02BA542C900F011FD :10009000852BAA2CFFCF20B7C99004A92F802CA9AB
:1000A000C901F012C902F013C903F014A901388084 :1000A000803C83C0F020A542F00DC901F00EC902CA
:1000B0001920D0C9801420DEC9800F2047CA800AC9 :1000B000F00FA90138801420CFC9800F20DDC9803E
:1000C00020B8CA80052000C890D0BA9D0501688577 :1000C0000A2046CA80052000C890DBBA9D05016859
:1000D0004168854068853D68852B686000000000A8 :1000D000854168854068853D68852B686000000023
:1000E0000000000000000000000000000000000010 :1000E0000000000000000000000000000000000010
:1000F000000000000000000000000000FFFF876318 :1000F000000000000000000000000000FFFF976902
:10010000D8A9039D81C0BD83C009019D83C0A907F3 :10010000A9039D81C0BD83C009019D83C0A9079D2E
:100110009D82C0A00AA9FF9D80C03C81C010FB88C1 :1001100082C0A00AA9FF9D80C03C81C010FB88D08E
:10012000D0F5BD83C029FE9D83C0A9E18540A9CA41 :10012000F5BD83C029FE9D83C0A9DC8540A9CA8591
:10013000854120F3C82007C9C901D041A9ED8540F8 :100130004120F2C82006C9C901D041A9E88540A9DB
:10014000A9CA854120F3C82020C9C901D032A9F924 :10014000CA854120F2C8201FC9C901D032A9F4854F
:100150008540A9CA854120F3C82007C9A9FF854069 :1001500040A9CA854120F2C82006C9A9FA8540A94C
:10016000A9CA854120F3C82007C9C901F0E0C90028 :10016000CA854120F2C82006C9C901F0E0C900D003
:10017000D00BBD83C009109D83C04CBAC84CE1C8E8 :100170000BBD83C009109D83C04CB9C84CE0C8A911
:10018000A9F98540A9CA854120F3C8A9058540A9D8 :10018000F48540A9CA854120F2C8A9008540A9CBC1
:10019000CB854120F3C82007C9C901F0E3C900D0CD :10019000854120F2C82006C9C901F0E3C900D00397
:1001A000034CBAC8A9E78540A9CA854120F3C820F5 :1001A0004CB9C8A9E28540A9CA854120F2C82006F9
:1001B00007C9C901F0F6C900D027A9F38540A9CA2B :1001B000C9C901F0F6C900D027A9EE8540A9CA85B2
:1001C000854120F3C82007C9C900D015BD83C009E7 :1001C0004120F2C82006C9C900D015BD83C00980EE
:1001D000809D83C0BD81C009049D81C018A000908E :1001D0009D83C0BD81C009049D81C018A00090030B
:1001E0000338A027BD83C009019D83C0A9009D825B :1001E00038A027BD83C009019D83C0A9009D82C09E
:1001F000C098605AA000B1409D80C03C81C010FBF7 :1001F00098605AA000B1409D80C03C81C010FBC8EF
:10020000C8C00690F17A60A9FF9D80C03C81C010F3 :10020000C00690F17A60A9FF9D80C03C81C010FBC0
:10021000FBBD80C08980D0EF48A9FF9D80C0686089 :10021000BD80C08980D0EF48A9FF9D80C068602064
:100220002007C9485AA004A9FF9D80C03C81C01086 :1002200006C9485AA004A9FF9D80C03C81C010FBAC
:10023000FBBD80C04888D0EFA43D6899F805689957 :10023000BD80C04888D0EFA43D6899F805689978DA
:1002400078056899F804689978047AA9FF9D80C0B8 :10024000056899F804689978047AA9FF9D80C068C8
:100250006860DA5A8AA8A63DA5469DF805A5479D7F :1002500060DA5A8AA8A63DA5469DF805A5479D786F
:100260007805A9009DF8049D7804A9802443F00531 :1002600005A9009DF8049D7804A9802543F005A9FF
:10027000A9019DF804A9103983C0D011A0091EF866 :10027000019DF804A9103983C0D011A0091EF8050A
:10028000053E78053EF8043E780488D0F17AFA609D :100280003E78053EF8043E780488D0F17AFA605A48
:100290005AA43D9D80C0B978049D80C0B9F8049DE2 :10029000A43D9D80C0B978049D80C0B9F8049D80BC
:1002A00080C0B978059D80C0B9F8059D80C0A9FFC0 :1002A000C0B978059D80C0B9F8059D80C0A9FF9DA3
:1002B0009D80C02007C97A6048A9403C83C018F0DF :1002B00080C02006C97A6048A9403C83C018F0017C
:1002C0000138686048A9203C83C018F00138686094 :1002C00038686048A9203C83C018F001386860A9EC
:1002D000A90020C4C99002A92BA2FFA0FF60205250 :1002D0000020C3C99002A92BA2FFA0FF602051C932
:1002E000C9BD83C029FE9D83C0A9512090C9C90002 :1002E000BD83C029FE9D83C0A951208FC9C900D0FC
:1002F000D050A9FF9D80C0BD80C0C9FED0F4BD8193 :1002F00050A9FF9D80C0BD80C0C9FED0F4BD81C0A3
:10030000C009109D81C0A9FF9D80C0A000BD80C014 :1003000009109D81C0A9FF9D80C0A000BD80C09143
:100310009144C8D0F8E645BD80C09144C8D0F8C625 :1003100044C8D0F8E645BD80C09144C8D0F8C64571
:1003200045BD80C0BD80C0BD80C0BD81C029EF9DDE :10032000BD80C0BD80C0BD80C0BD81C029EF9D81A2
:1003300081C018A9000848BD83C009019D83C06819 :10033000C018A9000848BD83C009019D83C0682872
:10034000286038A92780EE20C4C9B0672052C9BDF3 :100340006038A92780EE20C3C9B0672051C9BD839A
:1003500083C029FE9D83C0A9582090C9C900D04EF2 :10035000C029FE9D83C0A958208FC9C900D04EA9CD
:10036000A9FF9D80C0A9FE9D80C0A000B1449D80D2 :10036000FF9D80C0A9FE9D80C0A000B1449D80C0BB
:10037000C0C8D0F8E645B1449D80C0C8D0F8C64595 :10037000C8D0F8E645B1449D80C0C8D0F8C645A9AC
:10038000A9FF9D80C09D80C09D80C0BD80C0291FE9 :10038000FF9D80C09D80C09D80C0BD80C0291FC9C9
:10039000C905D01A18A9000848A9FF9D80C0BD80D2 :1003900005D01A18A9000848A9FF9D80C0BD80C0DB
:1003A000C0F0F6BD83C009019D83C068286038A9EC :1003A000F0F6BD83C009019D83C068286038A92785
:1003B0002780E438A92B80DF38A901604170706C78 :1003B00080E438A92B80DF4170706C655D5B53640D
:1003C000655D5B53642076302E38202863293230F7 :1003C0002076302E38202863293230313720466C91
:1003D000313720466C6F7269616E20526569747A9C :1003D0006F7269616E20526569747A004000000096
:1003E000004000000000954100000000F9480000B6 :1003E00000954100000000F948000001AA87500074
:1003F00001AA875000000200FF7700000000656935 :1003F000000200FF77000000006569400000007700
:1004000040000000776900000000FF0000000000CD :100400006900000000FF0000000000000000000084
:1004100000000000000000000000000000000000DC :1004100000000000000000000000000000000000DC
:1004200000000000000000000000000000000000CC :1004200000000000000000000000000000000000CC
:1004300000000000000000000000000000000000BC :1004300000000000000000000000000000000000BC

View File

@ -63,13 +63,16 @@ INITED = $80
LDA #$40 LDA #$40
.else .else
PHP
SEI SEI
BIT $CFFF LDA #$60 ; opcode for RTS
JSR KNOWNRTS STA SLOT
JSR SLOT
TSX TSX
LDA $0100,X LDA $0100,X
STA CURSLOT ; $Cs STA CURSLOT ; $Cs
AND #$0F AND #$0F
PLP
STA SLOT ; $0s STA SLOT ; $0s
ASL A ASL A
ASL A ASL A
@ -79,7 +82,7 @@ INITED = $80
STA SLOT16 ; $s0 STA SLOT16 ; $s0
TAX ; X holds now SLOT16 TAX ; X holds now SLOT16
;BIT $CFFF BIT $CFFF
JSR CARDDET JSR CARDDET
BCC @INIT BCC @INIT
LDA #$2F ; no card inserted LDA #$2F ; no card inserted
@ -213,12 +216,16 @@ DRIVER: CLD
LDA #$40 LDA #$40
.else .else
BIT $CFFF PHP
JSR KNOWNRTS ; find slot nr SEI
LDA #$60 ; opcode for RTS
STA SLOT
JSR SLOT
TSX TSX
LDA $0100,X LDA $0100,X
STA CURSLOT ; $Cs STA CURSLOT ; $Cs
AND #$0F AND #$0F
PLP
STA SLOT ; $0s STA SLOT ; $0s
ASL A ASL A
ASL A ASL A
@ -228,11 +235,10 @@ DRIVER: CLD
STA SLOT16 ; $s0 STA SLOT16 ; $s0
TAX ; X holds now SLOT16 TAX ; X holds now SLOT16
;BIT $CFFF BIT $CFFF
JSR CARDDET JSR CARDDET
BCC @INITED BCC @INITED
LDA #$2F ; no card inserted LDA #$2F ; no card inserted
SEC
BRA @RESTZP BRA @RESTZP
@INITED: LDA #INITED ; check for init @INITED: LDA #INITED ; check for init
@ -240,14 +246,11 @@ DRIVER: CLD
BEQ @INIT BEQ @INIT
@CMD: LDA DCMD ; get command @CMD: LDA DCMD ; get command
CMP #0 BEQ @STATUS ; branch if cmd is 0
BEQ @STATUS
CMP #1 CMP #1
BEQ @READ BEQ @READ
CMP #2 CMP #2
BEQ @WRITE BEQ @WRITE
CMP #3
BEQ @FORMAT
.ifdef DEBUG .ifdef DEBUG
CMP #$FF CMP #$FF
BEQ @TEST BEQ @TEST
@ -262,12 +265,11 @@ DRIVER: CLD
BRA @RESTZP BRA @RESTZP
@WRITE: JSR WRITE @WRITE: JSR WRITE
BRA @RESTZP BRA @RESTZP
@FORMAT: JSR FORMAT
BRA @RESTZP
.ifdef DEBUG .ifdef DEBUG
@TEST: JSR TEST ; do device test @TEST: JSR TEST ; do device test
BRA @RESTZP BRA @RESTZP
.endif .endif
@INIT: JSR INIT @INIT: JSR INIT
BCC @CMD ; init ok BCC @CMD ; init ok
@ -288,8 +290,8 @@ DRIVER: CLD
; Signature bytes ; Signature bytes
.segment "SLOTID" .segment "SLOTID"
.dbyt $FFFF ; 65535 blocks .dbyt $FFFF ; 65535 blocks
.byt $87 ; Status bits .byt $97 ; Status bits
.byt <DRIVER ; LSB of driver .byt <DRIVER ; LSB of driver
;******************************* ;*******************************
@ -305,8 +307,7 @@ DRIVER: CLD
;******************************* ;*******************************
.segment "EXTROM" .segment "EXTROM"
INIT: CLD INIT: LDA #$03 ; set SPI mode 3
LDA #$03 ; set SPI mode 3
STA CTRL,X STA CTRL,X
LDA SS,X LDA SS,X
ORA #SS0 ; set CS high ORA #SS0 ; set CS high
@ -417,6 +418,7 @@ INIT: CLD
CLC ; all ok CLC ; all ok
LDY #0 LDY #0
BCC @END1 BCC @END1
@IOERROR: SEC @IOERROR: SEC
LDY #$27 ; init error LDY #$27 ; init error
@END1: LDA SS,X ; set CS high @END1: LDA SS,X ; set CS high
@ -527,7 +529,7 @@ GETBLOCK: PHX ; save X
STA R30,X STA R30,X
LDA #$80 ; drive number LDA #$80 ; drive number
BIT $43 AND $43
BEQ @SDHC ; D1 BEQ @SDHC ; D1
LDA #1 ; D2 LDA #1 ; D2
STA R31,X STA R31,X
@ -792,18 +794,6 @@ WRITE: JSR WRPROT
;*******************************
;
; Format
; not supported!
;
;*******************************
FORMAT: SEC
LDA #$01 ; invalid command
KNOWNRTS: RTS
;******************************* ;*******************************
; ;
; Test routine ; Test routine