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