Programming Index > Autorun Templates.
Autorun Templates.

Update October 2020 -

for ZASM v.4.2.x or above

AUTORUN_template.asm - for TAP file with autostart

BIN_template.asm - for TAP file with binary code with pre-defined starting address

DICT_template.asm - for TAP file with new vocabulary definitions

see here Many thanks to Claudius

These templates allow you to create "auto run" programs for the Jupiter Ace, programs that automatically execute when loading has completed. There are two templates one to create autorun applications (autorun.asm) and other (arun.asm) to give existing applications the autorun capability.
Click here to download the autorun templates.
The two template files should be saved to the TASM folder, which should also have the latest include files (ace.inc and aceforth.inc) located in the same folder. The latest up to date include files can be found here You will also find the TAP file templates are needed which are also included in the zip file below.
In the zip file are two examples you can try:
Load 'aexample.tap' into EightOne and type '0 0 bload autorun'.
It should load the a program and autorun it playing a short tone.
Load 'autoworms.tap' into EightOne and type '0 0 bload aworms'.
It is the well know 'worms' game from the 'Ace Demonstration Tape' with an added autorun capability.
Example template.
; aworms.asm
; Z80 ASM example file on how to use the template to give autorun capability
; to existing Jupiter Ace files.

; 2009, January - The Jupiter Ace Archive Team -> www.jupiter-ace.co.uk

; Instructions:
; A) Compile using TASM assembler:
;   TASM -80 -b -l aworms.asm aworms.tap

; B) Use a Hex editor to concatenate the compiled file 'aworms.tap' with
; the 'worms.tap' and 'graphics.tap' files from Utilities Tape.

; C) load the resulting file 'a.tap' in the EightyOne emulator Tape Manager

; D) autorun the game using:
;   0 0 BLOAD aworms

;==================== SET HERE THE AUTORUN FILENAME ====================
#define ARFILENAME  .TEXT  "aworms    " ; Autorun filename
;                          |----------| Keep it exactly 10 chars long!
;=======================================================================

          .WORD     26                        ; TAP 1st chunck size
ARHEADERBLK:                                  ; Header Block Start
          .BYTE     $20                       ; File Type = byte
          ARFILENAME                          ; Filename (10 bytes)
          .WORD     ARDATABLKEND - ARDATABLK  ; File Lenght
          .WORD     $22E0                     ; Start Address: 24th screen line
          .WORD     $2020                     ; current word link
          .WORD     $2020                     ; CURRENT
          .WORD     $2020                     ; CONTEXT
          .WORD     $2020                     ; VOCLNK
          .WORD     $2020                     ; STKBOT
          .CHK      ARHEADERBLK               ; Header Block CheckSum
          .WORD     ARDATABLKEND-ARDATABLK+1  ; TAP 2nd chunck size (32)
ARDATABLK:                                    ; Data Block
          .BYTE     0                         ; Input buffer start marker
          .TEXT     "LOAD "                   ; Load

;================== SET FILE TO LOAD AND THE WORD TO RUN ===================
          .TEXT     "worms GET graphics GO"     ; file to load and word to run
;                   |-------------------------| < Max size: 25 charS
;===========================================================================

          .FILL     31-($-ARDATABLK),$20      ; Fill remaining with space
ARDATABLKEND:                                 ; Mark Data Block End
          .CHK      ARDATABLK                 ; Data Block Checksum

          .END