1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
;
; Oliver Schmidt, 30.12.2004
;
; Apple ProDOS 8 MLI
;
READ_BLOCK_CALL = $80
WRITE_BLOCK_CALL= $81
RW_BLOCK_COUNT = 3
GET_TIME_CALL = $82
GET_TIME_COUNT = 0
CREATE_CALL = $C0
CREATE_COUNT = 7
DESTROY_CALL = $C1
DESTROY_COUNT = 1
RENAME_CALL = $C2
RENAME_COUNT = 2
GET_INFO_CALL = $C4
GET_INFO_COUNT = $A
ON_LINE_CALL = $C5
ON_LINE_COUNT = 2
SET_PREFIX_CALL = $C6
GET_PREFIX_CALL = $C7
PREFIX_COUNT = 1
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
.struct RW_BLOCK
PARAM_COUNT .byte
UNIT_NUM .byte
DATA_BUFFER .addr
BLOCK_NUM .word
.endstruct
.struct CREATE
PARAM_COUNT .byte
PATHNAME .addr
ACCESS .byte
FILE_TYPE .byte
AUX_TYPE .word
STORAGE_TYPE .byte
CREATE_DATE .word
CREATE_TIME .word
.endstruct
.struct DESTROY
PARAM_COUNT .byte
PATHNAME .addr
.endstruct
.struct RENAME
PARAM_COUNT .byte
PATHNAME .addr
NEW_PATHNAME .addr
.endstruct
.struct INFO
PARAM_COUNT .byte
PATHNAME .addr
ACCESS .byte
FILE_TYPE .byte
AUX_TYPE .word
STORAGE_TYPE .byte
BLOCKS .word
MODE_DATE .word
MODE_TIME .word
CREATE_DATE .word
CREATE_TIME .word
.endstruct
.struct ON_LINE
PARAM_COUNT .byte
UNIT_NUM .byte
DATA_BUFFER .addr
.endstruct
.struct PREFIX
PARAM_COUNT .byte
PATHNAME .addr
.endstruct
.struct OPEN
PARAM_COUNT .byte
PATHNAME .addr
IO_BUFFER .addr
REF_NUM .byte
.endstruct
.struct RW
PARAM_COUNT .byte
REF_NUM .byte
DATA_BUFFER .addr
REQUEST_COUNT .word
TRANS_COUNT .word
.endstruct
.struct CLOSE
PARAM_COUNT .byte
REF_NUM .byte
.endstruct
.struct MARK
PARAM_COUNT .byte
REF_NUM .byte
POSITION .byte 3
.endstruct
.struct EOF
PARAM_COUNT .byte
REF_NUM .byte
EOF .byte 3
.endstruct
.endunion
.endstruct
.global mliparam
.global callmli
DEVNUM := $BF30 ; Most recent accessed device
DEVCNT := $BF31 ; Number of on-line devices (minus 1)
DEVLST := $BF32 ; Up to 14 units may be active
DATELO := $BF90 ; Bits 15-9 = year, 8-5 = month, 4-0 = day
TIMELO := $BF92 ; Bits 12-8 = hour, 5-0 = minute
LEVEL := $BF94 ; File level: used in open, flush, close
MACHID := $BF98 ; Machine identification
PFIXPTR := $BF9A ; If = 0, no prefix active
KVERSION:= $BFFF ; Kernel version number
|