hfs-boot/smartport.aii
Kelvin Sherlock e02675057f Support for variable block size (ie, volumes > 32 MB)
Squashed commit of the following:

commit 44a6544242
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Wed Aug 11 22:10:11 2021 -0400

    improved 32-bit (well, smartport is 24-bit) block support

commit 7fc041289f
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Wed Aug 4 23:49:15 2021 -0400

    convert the extent blocks into 32-bit absolute blocks when loading.
    Currently the block comparisons are still 16-bit, though.

commit 0fabe65aca
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Tue Aug 3 20:13:27 2021 -0400

    move stack adjustment code to take effect from the callback routines

commit 6da1f9fa3c
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Tue Jul 27 21:31:23 2021 -0400

    re-arrange to avoid relative expression warning

commit dbfe66cc99
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Tue Jul 27 21:31:01 2021 -0400

    use smartport.aii

commit 95aa4d8bd5
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Thu Jul 22 23:58:20 2021 -0400

    large volume support (WIP, untested).
    the general theory is, multiply the extents by the allocation adjustment to get physical block offsets.
    currently, comparisons are still 16-bit though.
2021-08-15 20:45:46 -04:00

88 lines
1.2 KiB
Plaintext

Command record 0
Status equ $00
ReadBlock equ $01
WriteBlock equ $02
Format equ $03
Control equ $04
Init equ $05
Open equ $06 ; character device
Close equ $07 ; character device
Read equ $08
Write equ $09
SetFormatOption equ $0a
GetFormatOption equ $0b
endr
Error record 0
badCommand equ $01
badPcount equ $04
busError equ $06
badUnit equ $11
noInterrupt equ $1f
badCode equ $21
badParameter equ $22
ioError equ $27
noDrive equ $28
noWrite equ $2b
badBlock equ $2d
diskSwitch equ $2e
offLine equ $2f
; $30-$3f = device specific
; $40-$4f = reserved
; $50-$5f = non fatal
; $60-$6f = non fatal version of $20-$2f
ioTerm equ $69
endr
StatusDCB record 0
pCount ds.b 1
unit ds.b 1
statusList ds.w 1
statusCode ds.b 1
endr
IOBlockDCB record 0
pCount ds.b 1
unit ds.b 1
dataBuffer ds.w 1
blockNumber ds.b 3 ; 24-bit
endr
FormatDCB record 0
pCount ds.b 1
unit ds.b 1
endr
ControlDCB record 0
pCount ds.b 1
unit ds.b 1
controlList ds.w 1
controlCode ds.b 1
endr
InitDCB record 0
pCount ds.b 1
unit ds.b 1
endr
OpenDCB record 0
pCount ds.b 1
unit ds.b 1
endr
CloseDCB record 0
pCount ds.b 1
unit ds.b 1
endr
IODCB record 0
pCount ds.b 1
unit ds.b 1
dataBuffer ds.w 1
byteCount ds.w 1
address ds.b 3 ; 24-bit
endr