2005-03-26 17:23:14 +00:00
|
|
|
;
|
|
|
|
; Oliver Schmidt, 30.12.2004
|
|
|
|
;
|
|
|
|
; Apple ProDOS 8 MLI
|
|
|
|
;
|
|
|
|
|
2005-03-30 18:25:04 +00:00
|
|
|
READ_BLOCK_CALL = $80
|
|
|
|
WRITE_BLOCK_CALL= $81
|
|
|
|
RW_BLOCK_COUNT = 3
|
|
|
|
|
2007-01-05 16:16:34 +00:00
|
|
|
GET_TIME_CALL = $82
|
|
|
|
GET_TIME_COUNT = 0
|
|
|
|
|
2005-03-26 17:23:14 +00:00
|
|
|
CREATE_CALL = $C0
|
|
|
|
CREATE_COUNT = 7
|
|
|
|
|
2005-04-19 11:31:00 +00:00
|
|
|
DESTROY_CALL = $C1
|
|
|
|
DESTROY_COUNT = 1
|
|
|
|
|
|
|
|
RENAME_CALL = $C2
|
|
|
|
RENAME_COUNT = 2
|
|
|
|
|
2005-03-26 17:23:14 +00:00
|
|
|
ON_LINE_CALL = $C5
|
|
|
|
ON_LINE_COUNT = 2
|
|
|
|
|
2005-04-19 11:31:00 +00:00
|
|
|
SET_PREFIX_CALL = $C6
|
|
|
|
GET_PREFIX_CALL = $C7
|
|
|
|
PREFIX_COUNT = 1
|
|
|
|
|
2005-03-26 17:23:14 +00:00
|
|
|
OPEN_CALL = $C8
|
|
|
|
OPEN_COUNT = 3
|
|
|
|
|
|
|
|
READ_CALL = $CA
|
|
|
|
WRITE_CALL = $CB
|
|
|
|
RW_COUNT = 4
|
|
|
|
|
|
|
|
CLOSE_CALL = $CC
|
|
|
|
CLOSE_COUNT = 1
|
|
|
|
|
|
|
|
SET_MARK_CALL = $CE
|
|
|
|
GET_MARK_CALL = $CF
|
|
|
|
MARK_COUNT = 2
|
|
|
|
|
|
|
|
SET_EOF_CALL = $D0
|
|
|
|
GET_EOF_CALL = $D1
|
|
|
|
EOF_COUNT = 2
|
|
|
|
|
|
|
|
.struct MLI
|
|
|
|
.union
|
2005-03-30 18:25:04 +00:00
|
|
|
.struct RW_BLOCK
|
2005-04-19 11:31:00 +00:00
|
|
|
PARAM_COUNT .byte
|
|
|
|
UNIT_NUM .byte
|
|
|
|
DATA_BUFFER .addr
|
|
|
|
BLOCK_NUM .word
|
2005-03-30 18:25:04 +00:00
|
|
|
.endstruct
|
2005-03-26 17:23:14 +00:00
|
|
|
.struct CREATE
|
2005-04-19 11:31:00 +00:00
|
|
|
PARAM_COUNT .byte
|
|
|
|
PATHNAME .addr
|
|
|
|
ACCESS .byte
|
|
|
|
FILE_TYPE .byte
|
|
|
|
AUX_TYPE .word
|
|
|
|
STORAGE_TYPE .byte
|
|
|
|
CREATE_DATE .word
|
|
|
|
CREATE_TIME .word
|
2005-03-26 17:23:14 +00:00
|
|
|
.endstruct
|
2005-04-19 11:31:00 +00:00
|
|
|
.struct DESTROY
|
|
|
|
PARAM_COUNT .byte
|
|
|
|
PATHNAME .addr
|
2005-03-26 17:23:14 +00:00
|
|
|
.endstruct
|
2005-04-19 11:31:00 +00:00
|
|
|
.struct RENAME
|
|
|
|
PARAM_COUNT .byte
|
|
|
|
PATHNAME .addr
|
|
|
|
NEW_PATHNAME .addr
|
|
|
|
.endstruct
|
|
|
|
.struct ON_LINE
|
|
|
|
PARAM_COUNT .byte
|
|
|
|
UNIT_NUM .byte
|
|
|
|
DATA_BUFFER .addr
|
|
|
|
.endstruct
|
|
|
|
.struct PREFIX
|
2005-03-26 17:23:14 +00:00
|
|
|
PARAM_COUNT .byte
|
|
|
|
PATHNAME .addr
|
2005-04-19 11:31:00 +00:00
|
|
|
.endstruct
|
|
|
|
.struct OPEN
|
|
|
|
PARAM_COUNT .byte
|
|
|
|
PATHNAME .addr
|
|
|
|
IO_BUFFER .addr
|
|
|
|
REF_NUM .byte
|
2005-03-26 17:23:14 +00:00
|
|
|
.endstruct
|
|
|
|
.struct RW
|
2005-04-19 11:31:00 +00:00
|
|
|
PARAM_COUNT .byte
|
|
|
|
REF_NUM .byte
|
|
|
|
DATA_BUFFER .addr
|
|
|
|
REQUEST_COUNT .word
|
|
|
|
TRANS_COUNT .word
|
2005-03-26 17:23:14 +00:00
|
|
|
.endstruct
|
|
|
|
.struct CLOSE
|
2005-04-19 11:31:00 +00:00
|
|
|
PARAM_COUNT .byte
|
|
|
|
REF_NUM .byte
|
2005-03-26 17:23:14 +00:00
|
|
|
.endstruct
|
|
|
|
.struct MARK
|
2005-04-19 11:31:00 +00:00
|
|
|
PARAM_COUNT .byte
|
|
|
|
REF_NUM .byte
|
|
|
|
POSITION .byte 3
|
2005-03-26 17:23:14 +00:00
|
|
|
.endstruct
|
|
|
|
.struct EOF
|
2005-04-19 11:31:00 +00:00
|
|
|
PARAM_COUNT .byte
|
|
|
|
REF_NUM .byte
|
|
|
|
EOF .byte 3
|
2005-03-26 17:23:14 +00:00
|
|
|
.endstruct
|
|
|
|
.endunion
|
|
|
|
.endstruct
|
|
|
|
|
2005-04-19 11:31:00 +00:00
|
|
|
.global mliparam
|
|
|
|
.global callmli
|
2005-03-26 17:23:14 +00:00
|
|
|
|
2005-04-19 11:31:00 +00:00
|
|
|
DEVNUM := $BF30 ; Most recent accessed device
|
2010-05-24 20:10:19 +00:00
|
|
|
DEVCNT := $BF31 ; Number of on-line devices (minus 1)
|
|
|
|
DEVLST := $BF32 ; Up to 14 units may be active
|
2007-01-05 16:16:34 +00:00
|
|
|
DATELO := $BF90 ; Bits 15-9 = Year, 8-5 = Month, 4-0 = Day
|
|
|
|
TIMELO := $BF92 ; Bits 12-8 = Hour, 5-0 = Minute
|
2005-04-19 11:31:00 +00:00
|
|
|
PFIXPTR := $BF9A ; If = 0, no prefix active
|
|
|
|
KVERSION:= $BFFF ; Kernel version number
|