2017-12-03 21:18:37 +00:00
|
|
|
;*******************************
|
|
|
|
;
|
|
|
|
; Apple][Sd Firmware
|
2019-11-10 09:56:31 +00:00
|
|
|
; Version 1.3
|
2017-12-17 19:39:59 +00:00
|
|
|
; Defines
|
2017-12-03 21:18:37 +00:00
|
|
|
;
|
2019-11-10 09:56:31 +00:00
|
|
|
; (c) Florian Reitz, 2017 - 2019
|
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
|
2018-05-23 20:17:19 +00:00
|
|
|
BUFFER := $44 ; buffer pointer, two bytes
|
|
|
|
BLOCKNUM := $46 ; block number, two bytes
|
2018-05-13 15:58:41 +00:00
|
|
|
|
|
|
|
; Smartport
|
2018-05-23 20:17:19 +00:00
|
|
|
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
|
|
|
|
KNOWNRTS := $FF58
|
2017-12-03 21:18:37 +00:00
|
|
|
OAPPLE := $C061 ; open apple key
|
|
|
|
DATA := $C080
|
|
|
|
CTRL := DATA+1
|
|
|
|
DIV := DATA+2
|
|
|
|
SS := DATA+3
|
|
|
|
|
|
|
|
; Constants
|
|
|
|
DUMMY = $FF
|
|
|
|
FRX = $10 ; CTRL register
|
|
|
|
ECE = $04
|
|
|
|
SS0 = $01 ; SS register
|
|
|
|
SDHC = $10
|
|
|
|
WP = $20
|
|
|
|
CD = $40
|
|
|
|
INITED = $80
|
2018-05-13 15:58:02 +00:00
|
|
|
|
2019-11-10 09:56:31 +00:00
|
|
|
SMDRIVERVER = $130B ; Version 1.3 Beta
|
2018-05-29 20:08:17 +00:00
|
|
|
|
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
|