]> git.sur5r.net Git - cc65/blobdiff - asminc/em-kernel.inc
Use "override" when appending to CFLAGS, so this works even when CFLAGS is
[cc65] / asminc / em-kernel.inc
index ab17cc2ccd09c21e619d2804110e3b38f02be6df..4f581b7c70585bb582b41f92aad62221f96a6b8c 100644 (file)
@@ -6,10 +6,10 @@
 ;/*                                                                           */
 ;/*                                                                           */
 ;/*                                                                           */
-;/* (C) 2002      Ullrich von Bassewitz                                       */
-;/*               Wacholderweg 14                                             */
-;/*               D-70597 Stuttgart                                           */
-;/* EMail:        uz@musoftware.de                                            */
+;/* (C) 2002-2003 Ullrich von Bassewitz                                       */
+;/*               Römerstrasse 52                                             */
+;/*               D-70794 Filderstadt                                         */
+;/* EMail:        uz@cc65.org                                                 */
 ;/*                                                                           */
 ;/*                                                                           */
 ;/* This software is provided 'as-is', without any expressed or implied       */
 
 
 ;------------------------------------------------------------------------------
-; 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_DEINSTALL       = EMD_HDR_JUMPTAB+2     ; DEINSTALL routine
-EMD_HDR_PAGECOUNT       = EMD_HDR_JUMPTAB+4     ; PAGECOUNT routine
-EMD_HDR_MAP             = EMD_HDR_JUMPTAB+6     ; MAP routine
-EMD_HDR_MAPCLEAN        = EMD_HDR_JUMPTAB+8     ; MAPCLEAN routine
-EMD_HDR_COPYFROM        = EMD_HDR_JUMPTAB+10    ; COPYFROM routine
-EMD_HDR_COPYTO          = EMD_HDR_JUMPTAB+12    ; COPYTO routine
+;------------------------------------------------------------------------------
+; The EMD API version, stored in EMD_HDR::VERSION
 
-EMD_HDR_JUMPCOUNT       = 7                     ; 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
@@ -67,9 +76,10 @@ EM_COPY_COUNT           = 5
 ; Driver entry points
 
         .global emd_install
-        .global emd_deinstall
+        .global emd_uninstall
         .global emd_pagecount
         .global emd_map
+        .global emd_use
         .global emd_commit
        .global emd_copyfrom
         .global emd_copyto
@@ -77,10 +87,12 @@ EM_COPY_COUNT           = 5
 ;------------------------------------------------------------------------------
 ; ASM functions
 
+       .global _em_unload
        .global _em_install
-       .global _em_deinstall
+       .global _em_uninstall
        .global _em_pagecount
        .global _em_map
+        .global _em_use
        .global _em_commit
        .global _em_copyfrom
        .global _em_copyto