AppleIISd/Firmware/src/AppleIISd.inc

78 lines
1.9 KiB
PHP
Raw Normal View History

2017-12-03 21:18:37 +00:00
;*******************************
;
; Apple][Sd Firmware
2021-08-24 22:28:34 +00:00
; Version 1.2.3
; Defines
2017-12-03 21:18:37 +00:00
;
2021-02-20 12:59:37 +00:00
; (c) Florian Reitz, 2017 - 2021
2017-12-03 21:18:37 +00:00
;
; X register usually contains SLOT16
; Y register is used for counting or SLOT
;
;*******************************
2018-05-13 15:58:41 +00:00
; ZP locations
2018-05-22 19:53:11 +00:00
PSAVE := $3D ; P save location
2018-05-13 15:58:41 +00:00
SLOT16 := $3E ; $s0 -> slot * 16
SLOT := $3F ; $0s
2017-12-03 21:18:37 +00:00
CMDLO := $40
CMDHI := $41
2018-05-22 19:53:11 +00:00
PDZPAREA = PSAVE
2018-05-13 15:58:41 +00:00
PDZPSIZE = CMDHI-PDZPAREA+1
2017-12-03 21:18:37 +00:00
2018-05-13 15:58:41 +00:00
; ProDOS
2017-12-03 21:18:37 +00:00
DCMD := $42 ; Command code
2018-05-13 15:58:02 +00:00
DSNUMBER := $43 ; drive / slot number
BUFFER := $44 ; buffer pointer, two bytes
BLOCKNUM := $46 ; block number, two bytes
2018-05-13 15:58:41 +00:00
; Smartport
SMPARAMLIST := $48 ; parameter list, two bytes
SMCMDLIST := $4A ; command list, two bytes
2018-05-28 22:36:39 +00:00
SMCSCODE := $4C
2018-05-23 18:51:44 +00:00
SMZPAREA = SMPARAMLIST
SMZPSIZE = SMCSCODE-SMZPAREA+1
SMCMD = DCMD
2018-05-09 19:39:02 +00:00
2017-12-03 21:18:37 +00:00
2018-05-23 18:51:44 +00:00
; Ram equates, access with SLOT offset
2017-12-03 21:18:37 +00:00
R30 := $0478
R31 := $04F8
R32 := $0578
R33 := $05F8
2018-05-22 19:53:11 +00:00
DRVNUM := $0678
2017-12-03 21:18:37 +00:00
CURSLOT := $07F8 ; $Cs
2018-05-09 19:39:02 +00:00
2018-05-22 19:53:11 +00:00
; Rom equates
2017-12-03 21:18:37 +00:00
OAPPLE := $C061 ; open apple key
DATA := $C080
CTRL := DATA+1
SS := DATA+3
; Constants
DUMMY = $FF
FRX = $10 ; CTRL register
ECE = $04
SS0 = $01 ; SS register
SDHC = $10
WP = $20
CD = $40
2020-06-04 16:06:07 +00:00
CARD_INIT = $80
2018-05-13 15:58:02 +00:00
2018-05-29 20:08:17 +00:00
SMDRIVERVER = $120B ; Version 1.2 Beta
2018-05-13 15:58:02 +00:00
; Error codes
NO_ERR = $00
2018-05-13 15:58:41 +00:00
ERR_BADCMD = $01
ERR_BADPCNT = $04
ERR_BUSERR = $06
ERR_BADUNIT = $11
2018-05-24 07:40:50 +00:00
ERR_NOINT = $1F
2018-05-13 15:58:41 +00:00
ERR_BADCTL = $21
ERR_BADCTLPARM = $22
ERR_IOERR = $27
ERR_NODRIVE = $28
ERR_NOWRITE = $2B
ERR_BADBLOCK = $2D
ERR_OFFLINE = $2F