Test with phantom slots

This commit is contained in:
Florian Reitz 2017-12-17 21:27:04 +01:00
parent 06efc602c4
commit fe9ae43e09
5 changed files with 78 additions and 65 deletions

Binary file not shown.

View File

@ -1,72 +1,72 @@
:10000000A220A200A203A23C0878A960853D203D61
:1000100000BABD00018DF807290F28853D0A0A0A9C
:100020000A852BAA2CFFCFA000B9DECAF0080980F0
:10003000995007C810F32C61C0300520DEC9900B21
:100020000A852BAA2CFFCFA000B916C9F0080980B9
:10003000995007C810F32C61C03005204ACA900BB4
:10004000ADF8073A854164406C40002000C8A90122
:100050008542A62B8643A9088545644464476446C7
:100060002CFFCF2004CAA9018542A62B8643A90AEA
:10007000854564446447A90185462CFFCF2004CA06
:100060002CFFCF2070CAA9018542A62B8643A90A7E
:10007000854564446447A90185462CFFCF2070CA9A
:10008000A62B4C0108D848A52B48A53D48A54048BB
:10009000A541480878A960853D203D00BABD000112
:1000A0008DF807290F28853D0A0A0A0A852BAA2CF4
:1000B000FFCF20DEC99004A92F802CA9803C83C0EB
:1000B000FFCF204ACA9004A92F802CA9803C83C07E
:1000C000F020A542F00DC901F00EC902F00FA90100
:1000D00038801420F6C9800F2004CA800A206DCA17
:1000D0003880142062CA800F2070CA800A20D9CAD2
:1000E00080052000C890DBBA9D05016885416885C0
:1000F0004068853D68852B6860000000FFFF97859C
:1000F0004068853D68852B6860000000FFFFB7857C
:10010000A9039D81C0BD83C009019D83C0A9079D2E
:1001100082C0A00AA9FF9D80C03C81C010FB88D08E
:10012000F5BD83C029FE9D83C0A9058540A9CB8567
:10013000412016C9202AC9C901D065A9118540A945
:10014000CB85412016C92043C9C901D056A43DB969
:10015000F805C9AAD04AA91D8540A9CB854120161A
:10016000C9202AC9A9298540A9CB85412016C920C3
:100170002AC9C901F0E0C900D026A9238540A9CB2E
:1001800085412016C92043C9C900D014A43DB978BF
:10012000F5BD83C029FE9D83C0A93D8540A9C98531
:1001300041206DC92081C9C901D065A9498540A95F
:10014000C98541206DC9209AC9C901D056A43DB9BD
:10015000F805C9AAD04AA9558540A9C98541206D8D
:10016000C92081C9A9618540A9C98541206DC920DF
:1001700081C9C901F0E0C900D026A95B8540A9C9A1
:100180008541206DC9209AC9C900D014A43DB97811
:10019000042940F048BD83C009109D83C04CEFC8BE
:1001A0004C04C9A91D8540A9CB85412016C9A92F9A
:1001B0008540A9CB85412016C9202AC9C901F0E391
:1001C000C900D0034CDDC8A90B8540A9CB854120CF
:1001D00016C9202AC9C901F0F6C900D027A9178578
:1001E00040A9CB85412016C9202AC9C900D015BD18
:1001A0004C04C9A9558540A9C98541206DC9A967D5
:1001B0008540A9C98541206DC92081C9C901F0E3E5
:1001C000C900D0034CDDC8A9438540A9C985412099
:1001D0006DC92081C9C901F0F6C900D027A94F8592
:1001E00040A9C98541206DC92081C9C900D015BD6C
:1001F00083C009809D83C0BD81C009049D81C01852
:10020000A000900338A027BD83C009019D83C0A929
:10021000009D82C098605AA000B1409D80C03C8182
:10022000C010FBC8C00690F17A60A9FF9D80C03C59
:1002300081C010FBBD80C08980D0EF48A9FF9D80A0
:10024000C06860202AC9485AA0044C52C9A9FF9D21
:1002500080C03C81C010FBBD80C04888D0EFA43D69
:100260006899F805689978056899F8046899780498
:100270007AA9FF9D80C06860DA5A8AA8A63DA54683
:100280009DF805A5479D7805A9009DF8049D780473
:10029000A9802543F005A9019DF804A9103983C060
:1002A000D011A0091EF8053E78053EF8043E7804FA
:1002B00088D0F17AFA605AA43D9D80C0B978049D37
:1002C00080C0B9F8049D80C0B978059D80C0B9F898
:1002D000059D80C0A9FF9D80C0202AC97A6048A9D9
:1002E000403C83C018F00138686048A9203C83C0B6
:1002F00018F001386860A90020EAC99002A92BA271
:10030000FFA0FF602078C9BD83C029FE9D83C0A9DE
:100310005120B6C9C900D050A9FF9D80C0BD80C082
:10032000C9FED0F4BD81C009109D81C0A9FF9D8088
:10033000C0A000BD80C09144C8D0F8E645BD80C0D3
:100340009144C8D0F8C645BD80C0BD80C0BD80C046
:10035000BD81C029EF9D81C018A9000848BD83C098
:1003600009019D83C068286038A92780EE20EAC96A
:10037000B0672078C9BD83C029FE9D83C0A95820DD
:10038000B6C9C900D04EA9FF9D80C0A9FE9D80C0FE
:10039000A000B1449D80C0C8D0F8E645B1449D801E
:1003A000C0C8D0F8C645A9FF9D80C09D80C09D8073
:1003B000C0BD80C0291FC905D01A18A9000848A9C6
:1003C000FF9D80C0BD80C0F0F6BD83C009019D8344
:1003D000C068286038A92780E438A92B80DF202056
:1003E0004170706C655D5B53642076312E3120283E
:1003F00063293230313720466C6F7269616E20524A
:100400006569747A0040000000009541000000001A
:10041000F948000001AA875000000200FF770000A1
:100420000000FF7A00000000FF69400000007769CB
:1004300000000000FF0000000000000000000000BD
:1004400000000000000000000000000000000000AC
:10021000009D82C0986020204170706C655D5B53CA
:10022000642076312E312028632932303137204640
:100230006C6F7269616E20526569747A00400000CB
:100240000000954100000000F948000001AA875015
:1002500000000200FF7700000000FF7A00000000AD
:10026000FF6940000000776900000000FF5AA0000D
:10027000B1409D80C03C81C010FBC8C00690F17A9F
:1002800060A9FF9D80C03C81C010FBBD80C08980FB
:10029000D0EF48A9FF9D80C068602081C9485AA05E
:1002A000044CA9C9A9FF9D80C03C81C010FBBD8042
:1002B000C04888D0EFA43D6899F80568997805682A
:1002C00099F804689978047AA9FF9D80C06860DA7B
:1002D0005A8AA8A63DA5469DF805A5479D78059E86
:1002E000F8049E7804A9802543F005A9019DF8042F
:1002F000A53D48A9702543853DC43DF007BDF804E0
:100300001A9DF80468853DA9103983C0D011A00951
:100310001EF8053E78053EF8043E780488D0F17A50
:10032000FA605AA43D9D80C0B978049D80C0B9F898
:10033000049D80C0B978059D80C0B9F8059D80C036
:10034000A9FF9D80C02081C97A6048A9403C83C034
:1003500018F00138686048A9203C83C018F00138C3
:100360006860A9002056CA9002A92BA2FFA0FF60D6
:1003700020CFC9BD83C029FE9D83C0A9512022CAB8
:10038000C900D050A9FF9D80C0BD80C0C9FED0F477
:10039000BD81C009109D81C0A9FF9D80C0A000BD86
:1003A00080C09144C8D0F8E645BD80C09144C8D013
:1003B000F8C645BD80C0BD80C0BD80C0BD81C0291C
:1003C000EF9D81C018A9000848BD83C009019D8325
:1003D000C068286038A92780EE2056CAB06720CFB1
:1003E000C9BD83C029FE9D83C0A9582022CAC90067
:1003F000D04EA9FF9D80C0A9FE9D80C0A000B14441
:100400009D80C0C8D0F8E645B1449D80C0C8D0F8F2
:10041000C645A9FF9D80C09D80C09D80C0BD80C095
:10042000291FC905D01A18A9000848A9FF9D80C036
:10043000BD80C0F0F6BD83C009019D83C0682860FF
:1004400038A92780E438A92B80DF000000000000D5
:10045000000000000000000000000000000000009C
:10046000000000000000000000000000000000008C
:10047000000000000000000000000000000000007C

View File

@ -1,7 +1,7 @@
;*******************************
;
; Apple][Sd Firmware
; Version 1.1
; Version 1.2
; Main source
;
; (c) Florian Reitz, 2017
@ -29,14 +29,14 @@
; 65535 blocks
; Removable media
; Non-interruptable
; 2 drives
; 4 drives
; Read, write and status allowed
;
;*******************************
.segment "SLOTID"
.dbyt $FFFF ; 65535 blocks
.byt $97 ; Status bits
.byt $B7 ; Status bits
.byt <DRIVER ; LSB of driver
@ -365,7 +365,7 @@ INIT: LDA #$03 ; set SPI mode 3
RTS
TEXT: .asciiz " Apple][Sd v1.1 (c)2017 Florian Reitz"
TEXT: .asciiz " Apple][Sd v1.2 (c)2017 Florian Reitz"
CMD0: .byt $40, $00, $00
.byt $00, $00, $95

View File

@ -1,7 +1,7 @@
;*******************************
;
; Apple][Sd Firmware
; Version 1.1
; Version 1.2
; Helper functions
;
; (c) Florian Reitz, 2017
@ -118,16 +118,29 @@ GETBLOCK: PHX ; save X
STA R33,X ; in R30-R33
LDA BLOCK+1
STA R32,X
LDA #0
STA R31,X
STA R30,X
STZ R31,X
STZ R30,X
LDA #$80 ; drive number
AND $43
BEQ @SDHC ; D1
BEQ @SLOT ; D1
LDA #1 ; D2
STA R31,X
@SLOT: LDA SLOT
PHA ; save SLOT
LDA #$70 ; slot number * 16
AND $43
STA SLOT
CPY SLOT
BEQ @RESTORE ; slot number = real slot?
LDA R31,X ; is phantom slot
INC A
STA R31,X
@RESTORE: PLA ; restore SLOT
STA SLOT
@SDHC: LDA #SDHC
AND SS,Y ; if card is SDHC,
BNE @END ; use block addressing

View File

@ -1,7 +1,7 @@
;*******************************
;
; Apple][Sd Firmware
; Version 1.1
; Version 1.2
; ProDOS functions
;
; (c) Florian Reitz, 2017