Advertisement
mcleod_ideafix

TAP-ASM template for Jupiter ACE

Nov 17th, 2018
421
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; acedict.asm
  2. ; Z80 ASM template file to generate a TAP file - "Dict" type file
  3.  
  4. ; 2009, January - The Jupiter Ace Archive Team -> www.jupiter-ace.co.uk
  5.  
  6. ; Compile using TASM assembler:
  7. ;   TASM -80 -b -l filename.asm filename.tap
  8.  
  9. #define FILENAME  .TEXT  "filename  "        ; <-- SET FILENAME HERE
  10. ;                        |----------| Keep it exactly 10 chars long!
  11.  
  12. #include "ace.inc"
  13.  
  14. STARTADR:  .EQU     $3C51                    ; Start address for dict files
  15.            .ORG     STARTADR - 30            ; Make room for the file header
  16.            .WORD    26                       ; TAP 1st chunck size
  17. HEADERBLK: .BYTE    00                       ; File Type = dict
  18.            FILENAME                          ; Filename (10 bytes)
  19.            .WORD    DATABLKEND - DATABLK     ; File Lenght
  20.            .WORD    STARTADR                 ; Start Address
  21.            .WORD    WORDLNK                  ; current word link <--- SET LINK HERE
  22.            .WORD    $3C4C                    ; CURRENT
  23.            .WORD    $3C4C                    ; CONTEXT
  24.            .WORD    $3C4F                    ; VOCLNK
  25.            .WORD    DATABLKEND               ; STKBOT
  26.            .CHK     HEADERBLK                ; Header Block CheckSum
  27.            .WORD    DATABLKEND - DATABLK + 1 ; TAP 2nd chunck size
  28. DATABLK:                                     ; Data Block Start
  29.  
  30. ;**************************************************************************
  31. ; FORTH dictionary word header
  32.  
  33. WORDNAME: .BYTE  "WOR",'D' | INVERSE  ; Word Name (last letter inverse)
  34.           .WORD  WORDEND - $          ; Word Lenght Field
  35.           .WORD  $3C49                ; Link Field
  36. WORDLNK:  .BYTE  $ - WORDNAME - 4     ; Name Lenght Field
  37.           .WORD  $ + 2                ; Code Field Address
  38.  
  39. ;         >>>>>>>>>>>>>>>>>> Insert your ASM code here <<<<<<<<<<<<<<<<<<<<
  40.  
  41.     AsmEnd   ; word definition end
  42. WORDEND:
  43. ;**************************************************************************
  44.  
  45. DATABLKEND:  .CHK    DATABLK               ; Data Block Checksum
  46.  
  47. ; Show code statistics when compiling
  48.     .ECHO "Start Address: "
  49.     .ECHO STARTADR
  50.     .ECHO " , Lenght: "
  51.     .ECHO (DATABLKEND - DATABLK)
  52.     .ECHO " bytes\n"
  53.  
  54.     .END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement