Status00 call updated

This commit is contained in:
Florian Reitz 2018-05-29 22:08:17 +02:00
parent 06739f1d19
commit 8348d6d2dc
5 changed files with 63 additions and 29 deletions

Binary file not shown.

View File

@ -71,32 +71,32 @@
:10046000F9BABD0D0185481869039D0D01BD0E0146 :10046000F9BABD0D0185481869039D0D01BD0E0146
:10047000854969009D0E01A001B1488542C8B14877 :10047000854969009D0E01A001B1488542C8B14877
:10048000AAC8B14885498648A901A642E00AB01A1F :10048000AAC8B14885498648A901A642E00AB01A1F
:10049000B248DDE1CCD027A001B148A43F9978064D :10049000B248DDEECCD027A001B148A43F99780640
:1004A0008A0AAA20C2CBB002A900AAA00068994873 :1004A0008A0AAA20C2CBB002A900AAA00068994873
:1004B00000C8C00590F78AA002A200C90160A90483 :1004B00000C8C00590F78AA002A200C90160A90483
:1004C00080E87CEBCC2046CCA43FB97806D00EA5C2 :1004C00080E87CF8CC2053CCA43FB97806D018A59E
:1004D0004CF004A9213860A904924A1860A64CF097 :1004D0004CF004A9213860A904924AA007B90BCDB9
:1004E00016CAF008CACAF00FA9213860A901924AB9 :1004E000914A88D0F81860A64CF016CAF008CACA1B
:1004F000A8A900914A1860A9E8A63E203FCAB00208 :1004F000F00FA9213860A901924AA8A900914A18D1
:100500000910204BCA90020904924AA001A9FF9148 :1005000060A9E8A63E203FCAB0020910204BCA905D
:100510004AC8914AC8A900914AA54CF00CA004B958 :10051000020904924AA001A9FF914AC8914AC8A9B8
:10052000FBCC914AC8C01990F618602046CCA64C66 :1005200000914AA54CF00CA004B90FCD914AC8C067
:10053000F00FCAF00CCAF006CAF007CAF003A921EE :100530001990F618602053CCA64CF00FCAF00CCAE4
:100540003860A91F3860A002B148854AC8B1488503 :10054000F006CAF00ACAF003A92138A9001860A968
:100550004BC8B148854C602071CC900160A63EA488 :100550001F3860A002B148854AC8B148854BC8B170
:100560003F4C7ECA2071CC900160A63EA43F4CE770 :1005600048854C60207ECC900160A63EA43F4C7E26
:10057000CAB97806F044C901F00EC902F00EC903E9 :10057000CA207ECC900160A63EA43F4CE7CAB97861
:10058000F010C904F0118032A53E8010A53E09800C :1005800006F044C901F00EC902F00EC903F010C90B
:10059000800AA53E3A8005A53E3A09808543A0021F :1005900004F0118032A53E8010A53E0980800AA596
:1005A000B1488544C8B1488545C8B1488546C8B1F9 :1005A0003E3A8005A53E3A09808543A002B14885C0
:1005B000488547C8B148D0061860A9113860A92DF0 :1005B00044C8B1488545C8B1488546C8B148854753
:1005C0003860B97806F004A9001860A9113860B93C :1005C000C8B148D0061860A9113860A92D3860B9A3
:1005D000780618F003A9113860A9013860A92738F6 :1005D0007806F004A9001860A9113860B9780618E7
:1005E0006003030301030101010404C5CB57CC647C :1005E000F003A9113860A9013860A9273860030316
:1005F000CCC2CC2BCCCFCCD9CCD9CCDDCCDDCC1063 :1005F0000301030101010404C5CB64CC71CCCFCC51
:100600004150504C455D5B53442020202020202049 :1006000035CCDCCCE6CCE6CCEACCEACC4000000B26
:1006100002001200000000000000000000000000C6 :10061000120000104150504C455D5B534420202097
:1006200000000000000000000000000000000000CA :100620002020202002000B1200000000000000002B
:1006300000000000000000000000000000000000BA :1006300000000000000000000000000000000000BA
:1006400000000000000000000000000000000000AA :1006400000000000000000000000000000000000AA
:10065000000000000000000000000000000000009A :10065000000000000000000000000000000000009A

View File

@ -9,8 +9,8 @@ The assembler sources are written for CC65. The [schematics](AppleIISd.pdf) are
## Features ## Features
* works with ProDOS and GS/OS * works with ProDOS and GS/OS
* up to 64MB storage space (2x 65535 blocks) * up to 128MB storage space (4x 65535 blocks)
* ProDOS driver in ROM * ProDOS and Smartport driver in ROM
* Auto boot * Auto boot
* Access LED * Access LED
* Card detect and write protect sensing * Card detect and write protect sensing
@ -27,6 +27,21 @@ The AppleIISd requires an enhanced IIe or IIgs computer. The ROM code uses some
When a 2732 type ROM is used, the binary image has to be programmed at offset 0x800, because A11 is always high for compatibility with 2716 type ROMs. When a 2732 type ROM is used, the binary image has to be programmed at offset 0x800, because A11 is always high for compatibility with 2716 type ROMs.
## Smartport drive remapping
The AppleIISd features Smartport drivers in ROM to provide more than two drives in both GS/OS and ProDOS.
As ProDOS supports only two drives per slot, additional drives on a Smartport device are mapped to 'phantom slots'. Version prior to version 2 supported only the remapping of drives when the card was in slot 5. Starting with version 2, the remapping seems to work on all slots. The following list shows the assignments as slot/drive, when no other devices are attached:
* Slot 7: 7/1, 7/2, 4/1, 4/2
* Slot 6: 6/1, 6/2, 4/1, 4/1
* Slot 5: 5/1, 5/2, 2/1, 2/1
* Slot 4: 4/1, 4/2, 1/1, 1/2
* Slot 3: 80 col HW, not usable
* Slot 2: 2/1, 2/2, 4/1, 4/2
* Slot 1: 1/1, 1/2, 4/1, 4/2
When more devices are connected, things get a little confusing ;-)
## Building the sources ## Building the sources
Be sure to have the newest version of CC65 (V2.16) and some kind of Make instaled, then type one of the following comands: Be sure to have the newest version of CC65 (V2.16) and some kind of Make instaled, then type one of the following comands:
``` ```
@ -73,7 +88,7 @@ LDA $C0C0
## TODOs ## TODOs
* Much more testing * Much more testing
* SRAM option (may never work, though) * SRAM option (may never work, though)
* Enable 4 or 6 volumes under GS/OS * Enable more than 4 volumes under GS/OS
* Use 28 pin socket to support other EPROMS than 2716 and 2732 * Use 28 pin socket to support other EPROMS than 2716 and 2732
## Known Bugs ## Known Bugs

View File

@ -61,6 +61,8 @@ WP = $20
CD = $40 CD = $40
INITED = $80 INITED = $80
SMDRIVERVER = $120B ; Version 1.2 Beta
; Error codes ; Error codes
NO_ERR = $00 NO_ERR = $00
ERR_BADCMD = $01 ERR_BADCMD = $01

View File

@ -122,8 +122,15 @@ SMSTATUS: JSR GETCSLIST
SEC SEC
RTS RTS
; TODO support partitions based on card size
@STATUS00: LDA #4 ; support 4 partitions @STATUS00: LDA #4 ; support 4 partitions
STA (SMCMDLIST) STA (SMCMDLIST)
LDY #7
@LOOP00: LDA STATUS00DATA-1,Y
STA (SMCMDLIST),Y
DEY
BNE @LOOP00
CLC CLC
RTS RTS
@ -200,7 +207,9 @@ SMCONTROL: JSR GETCSLIST
SEC SEC
@RESET: @RESET:
@SETDCB: @SETDCB:
@EJECT: RTS @EJECT: LDA #NO_ERR ; only return OK
CLC
RTS
@IRQ: LDA #ERR_NOINT ; interrupts not supported @IRQ: LDA #ERR_NOINT ; interrupts not supported
SEC SEC
@ -390,10 +399,18 @@ SPDISPATCH:
.word SMREADCHAR .word SMREADCHAR
.word SMWRITECHAR .word SMWRITECHAR
; Status 00 command data
STATUS00DATA:
.byt $40 ; no interrupts
.word $0000 ; unknown vendor
.word SMDRIVERVER ; driver version
.byt $00, $00 ; reserved
.assert(*-STATUS00DATA)=7, error, "STATUS00DATA must be 7 bytes long"
; Status 3 command data ; Status 3 command data
STATUS3DATA: STATUS3DATA:
.byt 16, "APPLE][SD " ; ID length and string, padded .byt 16, "APPLE][SD " ; ID length and string, padded
.byt $02 ; hard disk .byt $02 ; hard disk
.byt $00 ; removable hard disk .byt $00 ; removable hard disk
.word $0012 ; driver version .word SMDRIVERVER ; driver version
.assert (*-STATUS3DATA)=21, error, "STATUS3DATA must be 21 bytes long" .assert (*-STATUS3DATA)=21, error, "STATUS3DATA must be 21 bytes long"