]> git.sur5r.net Git - cc65/commitdiff
Use structs
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 16 Dec 2003 21:08:24 +0000 (21:08 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Tue, 16 Dec 2003 21:08:24 +0000 (21:08 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@2774 b7a2c559-68d2-44c3-8de9-860c34a00d81

asminc/em-kernel.inc

index c5c21421baee98f00ce140e9ed5f6e1f00d29afe..a4fa7733c887b291f06c9f148ede7b53da9adb2c 100644 (file)
 
 
 ;------------------------------------------------------------------------------
-; Driver header stuff
+; The driver header
+                  
+.struct        EMD_HDR
+       ID      .byte   3       ; Contains 0x65, 0x6d, 0x64 ("emd")
+       VERSION .byte   1       ; Interface version
+       JUMPTAB .struct
+           INSTALL     .word   ; INSTALL routine
+           UNINSTALL   .word   ; UNINSTALL routine
+           PAGECOUNT   .word   ; PAGECOUNT routine
+           MAP .word   ; MAP routine
+           USE .word   ; USE routine
+           MAPCLEAN    .word   ; MAPCLEAN routine
+           COPYFROM    .word   ; COPYFROM routine
+           COPYTO      .word   ; COPYTO routine
+       .endstruct
+.endstruct
 
-EMD_HDR_ID              = 0                     ; 0x65, 0x6d, 0x64 ("emd")
-EMD_HDR_VERSION         = 3                     ; Interface version
-
-EMD_HDR_JUMPTAB         = 4
-EMD_HDR_INSTALL         = EMD_HDR_JUMPTAB+0     ; INSTALL routine
-EMD_HDR_UNINSTALL       = EMD_HDR_JUMPTAB+2     ; UNINSTALL routine
-EMD_HDR_PAGECOUNT       = EMD_HDR_JUMPTAB+4     ; PAGECOUNT routine
-EMD_HDR_MAP             = EMD_HDR_JUMPTAB+6     ; MAP routine
-EMD_HDR_USE             = EMD_HDR_JUMPTAB+8     ; USE routine
-EMD_HDR_MAPCLEAN        = EMD_HDR_JUMPTAB+10    ; MAPCLEAN routine
-EMD_HDR_COPYFROM        = EMD_HDR_JUMPTAB+12    ; COPYFROM routine
-EMD_HDR_COPYTO          = EMD_HDR_JUMPTAB+14    ; COPYTO routine
+;------------------------------------------------------------------------------
+; The AMD API version, stored in EMD_HDR::VERSION
 
-EMD_HDR_JUMPCOUNT       = 8                     ; Number of jump vectors
+EMD_API_VERSION         = $00
 
 ;------------------------------------------------------------------------------
-; Offsets into the em_copy structure
+; The asm equivalent to the C em_copy structure
 
-EM_COPY_BUF             = 0
-EM_COPY_OFFS            = 2
-EM_COPY_PAGE            = 3
-EM_COPY_COUNT           = 5
+.struct        EM_COPY
+       BUF     .word           ; Memory buffer to copy from or to
+       OFFS    .byte           ; Offset into page
+       PAGE    .word           ; Starting page to copy from or to
+       COUNT   .word           ; Number of bytes to copy
+       UNUSED  .byte           ; Make the size 8 bytes 
+.endstruct
 
 ;------------------------------------------------------------------------------
 ; Variables
@@ -84,7 +92,7 @@ EM_COPY_COUNT           = 5
        .global _em_uninstall
        .global _em_pagecount
        .global _em_map
-        .global _em_use          
+        .global _em_use
        .global _em_commit
        .global _em_copyfrom
        .global _em_copyto