]> git.sur5r.net Git - cc65/blobdiff - libsrc/apple2/mli.inc
Convert dynamically loadable drivers into statically linkable drivers and add them...
[cc65] / libsrc / apple2 / mli.inc
index ef77cd2e652169c74007cf726f4c6ab3cb4e218f..86950fbc4a3e6b094d9a49918005a0446eb73687 100644 (file)
@@ -8,12 +8,28 @@ 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
 
@@ -35,60 +51,91 @@ EOF_COUNT       = 2
         .struct MLI
                 .union
                         .struct RW_BLOCK
-                                PARAM_COUNT    .byte
-                                UNIT_NUM       .byte
-                                DATA_BUFFER    .addr
-                                BLOCK_NUM      .word
+                                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
+                                PARAM_COUNT     .byte
+                                PATHNAME        .addr
+                                ACCESS          .byte
+                                FILE_TYPE       .byte
+                                AUX_TYPE        .word
+                                STORAGE_TYPE    .byte
+                                CREATE_DATE     .word
+                                CREATE_TIME     .word
                         .endstruct
-                        .struct        ON_LINE
-                                PARAM_COUNT    .byte
-                                UNIT_NUM       .byte
-                                DATA_BUFFER    .addr
+                        .struct DESTROY
+                                PARAM_COUNT     .byte
+                                PATHNAME        .addr
                         .endstruct
-                        .struct OPEN
+                        .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
-                                IO_BUFFER      .addr
-                                REF_NUM                .byte
+                        .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
+                                PARAM_COUNT     .byte
+                                REF_NUM         .byte
+                                DATA_BUFFER     .addr
+                                REQUEST_COUNT   .word
+                                TRANS_COUNT     .word
                         .endstruct
                         .struct CLOSE
-                                PARAM_COUNT    .byte
-                                REF_NUM                .byte
+                                PARAM_COUNT     .byte
+                                REF_NUM         .byte
                         .endstruct
                         .struct MARK
-                                PARAM_COUNT    .byte
-                                REF_NUM                .byte
-                                POSITION       .byte 3
+                                PARAM_COUNT     .byte
+                                REF_NUM         .byte
+                                POSITION        .byte 3
                         .endstruct
                         .struct EOF
-                                PARAM_COUNT    .byte
-                                REF_NUM                .byte
-                                EOF            .byte 3
+                                PARAM_COUNT     .byte
+                                REF_NUM         .byte
+                                EOF             .byte 3
                         .endstruct
                 .endunion
         .endstruct
 
-        .global                mliparam
-        .global                callmli
+        .global         mliparam
+        .global         callmli
 
-ENTRY   :=     $BF00           ; MLI call entry point
-DEVNUM  :=     $BF30           ; Most recent accessed device
-PFIXPTR :=     $BF9A           ; If = 0, no prefix active
-KVERSION:=      $BFFF          ; Kernel version number
+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