AppleIISd/src/AppleIISd.inc

72 lines
1.8 KiB
PHP
Raw Normal View History

2017-12-03 21:18:37 +00:00
;*******************************
;
; Apple][Sd Firmware
2018-05-13 15:58:02 +00:00
; Version 1.2
; Defines
2017-12-03 21:18:37 +00:00
;
2018-05-13 15:58:02 +00:00
; (c) Florian Reitz, 2017 - 2018
2017-12-03 21:18:37 +00:00
;
; X register usually contains SLOT16
; Y register is used for counting or SLOT
;
;*******************************
2018-05-09 19:39:02 +00:00
; ZP equates
2017-12-03 21:18:37 +00:00
SLOT16 := $2B ; $s0 -> slot * 16
SLOT := $3D ; $0s
CMDLO := $40
CMDHI := $41
2018-05-09 19:39:02 +00:00
; ProDOS equates
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-09 19:39:02 +00:00
BUFFER := $44 ; buffer pointer
BLOCK := $46 ; block number
; Smartport equates
SMPARAM := $43 ; parameter count
SMUNIT := $44 ; unit number
SMBUFF := $45 ; buffer pointer
SMSTAT := $47 ; status / control code
SMBLOCK := $47 ; block number
SMCOUNT := $47 ; byte count
SMADDR := $49 ; address for read
2017-12-03 21:18:37 +00:00
2018-05-09 19:39:02 +00:00
; Ram equates
2017-12-03 21:18:37 +00:00
R30 := $0478
R31 := $04F8
R32 := $0578
R33 := $05F8
CURSLOT := $07F8 ; $Cs
2018-05-09 19:39:02 +00:00
; Slot equates
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
; Error codes
NO_ERR = $00
ERR_BAD_CMD = $01
ERR_BAD_PCNT = $04
ERR_BUS_ERR = $06
ERR_BAD_UNIT = $11
ERR_BAD_CTL = $21
ERR_BAD_CTL_PARM = $22
ERR_IO_ERR = $27
ERR_NO_DRIVE = $28
ERR_NO_WRITE = $2B
ERR_BAD_BLOCK = $2D
ERR_OFF_LINE = $2F