]> git.sur5r.net Git - cc65/blob - libsrc/apple2/mli.inc
dio implementation by Oliver Schmidt
[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 ON_LINE_CALL    = $C5
15 ON_LINE_COUNT   = 2
16
17 OPEN_CALL       = $C8
18 OPEN_COUNT      = 3
19
20 READ_CALL       = $CA
21 WRITE_CALL      = $CB
22 RW_COUNT        = 4
23
24 CLOSE_CALL      = $CC
25 CLOSE_COUNT     = 1
26
27 SET_MARK_CALL   = $CE
28 GET_MARK_CALL   = $CF
29 MARK_COUNT      = 2
30
31 SET_EOF_CALL    = $D0
32 GET_EOF_CALL    = $D1
33 EOF_COUNT       = 2
34
35         .struct MLI
36                 .union
37                         .struct RW_BLOCK
38                                 PARAM_COUNT     .byte
39                                 UNIT_NUM        .byte
40                                 DATA_BUFFER     .addr
41                                 BLOCK_NUM       .word
42                         .endstruct
43                         .struct CREATE
44                                 PARAM_COUNT     .byte
45                                 PATHNAME        .addr
46                                 ACCESS          .byte
47                                 FILE_TYPE       .byte
48                                 AUX_TYPE        .word
49                                 STORAGE_TYPE    .byte
50                                 CREATE_DATE     .word
51                                 CREATE_TIME     .word
52                         .endstruct
53                         .struct ON_LINE
54                                 PARAM_COUNT     .byte
55                                 UNIT_NUM        .byte
56                                 DATA_BUFFER     .addr
57                         .endstruct
58                         .struct OPEN
59                                 PARAM_COUNT     .byte
60                                 PATHNAME        .addr
61                                 IO_BUFFER       .addr
62                                 REF_NUM         .byte
63                         .endstruct
64                         .struct RW
65                                 PARAM_COUNT     .byte
66                                 REF_NUM         .byte
67                                 DATA_BUFFER     .addr
68                                 REQUEST_COUNT   .word
69                                 TRANS_COUNT     .word
70                         .endstruct
71                         .struct CLOSE
72                                 PARAM_COUNT     .byte
73                                 REF_NUM         .byte
74                         .endstruct
75                         .struct MARK
76                                 PARAM_COUNT     .byte
77                                 REF_NUM         .byte
78                                 POSITION        .byte 3
79                         .endstruct
80                         .struct EOF
81                                 PARAM_COUNT     .byte
82                                 REF_NUM         .byte
83                                 EOF             .byte 3
84                         .endstruct
85                 .endunion
86         .endstruct
87
88         .global         mliparam
89         .global         callmli
90
91 ENTRY   :=      $BF00           ; MLI call entry point
92 DEVNUM  :=      $BF30           ; Most recent accessed device
93 PFIXPTR :=      $BF9A           ; If = 0, no prefix active
94 KVERSION:=      $BFFF           ; Kernel version number