]> git.sur5r.net Git - cc65/blob - libsrc/apple2/mli.inc
Call interrupt handlers with carry clear
[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 CREATE_CALL     = $C0
12 CREATE_COUNT    = 7
13
14 DESTROY_CALL    = $C1
15 DESTROY_COUNT   = 1
16
17 RENAME_CALL     = $C2
18 RENAME_COUNT    = 2
19
20 ON_LINE_CALL    = $C5
21 ON_LINE_COUNT   = 2
22
23 SET_PREFIX_CALL = $C6
24 GET_PREFIX_CALL = $C7
25 PREFIX_COUNT    = 1
26
27 OPEN_CALL       = $C8
28 OPEN_COUNT      = 3
29
30 READ_CALL       = $CA
31 WRITE_CALL      = $CB
32 RW_COUNT        = 4
33
34 CLOSE_CALL      = $CC
35 CLOSE_COUNT     = 1
36
37 SET_MARK_CALL   = $CE
38 GET_MARK_CALL   = $CF
39 MARK_COUNT      = 2
40
41 SET_EOF_CALL    = $D0
42 GET_EOF_CALL    = $D1
43 EOF_COUNT       = 2
44
45         .struct MLI
46                 .union
47                         .struct RW_BLOCK
48                                 PARAM_COUNT     .byte
49                                 UNIT_NUM        .byte
50                                 DATA_BUFFER     .addr
51                                 BLOCK_NUM       .word
52                         .endstruct
53                         .struct CREATE
54                                 PARAM_COUNT     .byte
55                                 PATHNAME        .addr
56                                 ACCESS          .byte
57                                 FILE_TYPE       .byte
58                                 AUX_TYPE        .word
59                                 STORAGE_TYPE    .byte
60                                 CREATE_DATE     .word
61                                 CREATE_TIME     .word
62                         .endstruct
63                         .struct DESTROY
64                                 PARAM_COUNT     .byte
65                                 PATHNAME        .addr
66                         .endstruct
67                         .struct RENAME
68                                 PARAM_COUNT     .byte
69                                 PATHNAME        .addr
70                                 NEW_PATHNAME    .addr
71                         .endstruct
72                         .struct ON_LINE
73                                 PARAM_COUNT     .byte
74                                 UNIT_NUM        .byte
75                                 DATA_BUFFER     .addr
76                         .endstruct
77                         .struct PREFIX
78                                 PARAM_COUNT     .byte
79                                 PATHNAME        .addr
80                         .endstruct
81                         .struct OPEN
82                                 PARAM_COUNT     .byte
83                                 PATHNAME        .addr
84                                 IO_BUFFER       .addr
85                                 REF_NUM         .byte
86                         .endstruct
87                         .struct RW
88                                 PARAM_COUNT     .byte
89                                 REF_NUM         .byte
90                                 DATA_BUFFER     .addr
91                                 REQUEST_COUNT   .word
92                                 TRANS_COUNT     .word
93                         .endstruct
94                         .struct CLOSE
95                                 PARAM_COUNT     .byte
96                                 REF_NUM         .byte
97                         .endstruct
98                         .struct MARK
99                                 PARAM_COUNT     .byte
100                                 REF_NUM         .byte
101                                 POSITION        .byte 3
102                         .endstruct
103                         .struct EOF
104                                 PARAM_COUNT     .byte
105                                 REF_NUM         .byte
106                                 EOF             .byte 3
107                         .endstruct
108                 .endunion
109         .endstruct
110
111         .global         mliparam
112         .global         callmli
113
114 ENTRY   :=      $BF00           ; MLI call entry point
115 DEVNUM  :=      $BF30           ; Most recent accessed device
116 PFIXPTR :=      $BF9A           ; If = 0, no prefix active
117 KVERSION:=      $BFFF           ; Kernel version number