zxGammon

zxgammon.asm

The file to assemble: places the program, the loading screen and the cube's table in memory, and writes the snapshot and the tape (with its BASIC loader). Download · All the source

; zxGammon: backgammon for the 48K ZX Spectrum.; Copyright (C) 2026 Paul Hankin. Free software under the GNU General; Public License, version 3 or later; see COPYING.;; Assemble with sjasmplus (https://github.com/z00m128/sjasmplus):;;     sjasmplus zxgammon.asm;; which writes zxgammon.sna (a snapshot) and zxgammon.tap (a tape, with a; BASIC loader). Every other file here is included from game.asm, or; below: the loading screen (loading.scr), and the cube's table for; matches (mettab.bin) with Gnubby's pictures (mascot) after it; and, from; data.asm, the neural nets' weights.        device zxspectrum48        include "game.asm"PROGLEN equ ENGINEEND-$5e00        org $4000        incbin "loading.scr"        org METTABMTAB:   incbin "mettab.bin"        incbin "mascot"         ; Gnubby, after the table: MASCMTLEN   equ $-MTAB        savesna "zxgammon.sna",$5e00; The tape: a BASIC loader (BORDER 0: PAPER 0: INK 0: CLEAR 24063:; LOAD "" SCREEN$: POKE 23739,111: LOAD "" CODE: LOAD "" CODE:; RANDOMIZE USR 24064), the loading screen, the program and the table.; The loader is put in memory only now, after the snapshot is saved.        org $fd00LOADER:        db $00,$0a,$5c,$00,$e7,$30,$0e,$00,$00,$00,$00,$00,$3a,$da,$30,$0e        db $00,$00,$00,$00,$00,$3a,$d9,$30,$0e,$00,$00,$00,$00,$00,$3a,$fd        db $32,$34,$30,$36,$33,$0e,$00,$00,$ff,$5d,$00,$3a,$ef,$22,$22,$aa        db $3a,$f4,$32,$33,$37,$33,$39,$0e,$00,$00,$bb,$5c,$00,$2c,$31,$31        db $31,$0e,$00,$00,$6f,$00,$00,$3a,$ef,$22,$22,$af,$3a,$ef,$22,$22        db $af,$3a,$f9,$c0,$32,$34,$30,$36,$34,$0e,$00,$00,$00,$5e,$00,$0dLOADLEN equ $-LOADER        emptytap "zxgammon.tap"        savetap "zxgammon.tap",basic,"zxGammon",LOADER,LOADLEN,10        savetap "zxgammon.tap",code,"zxGammon",$4000,6912        savetap "zxgammon.tap",code,"zxGammon",$5e00,PROGLEN        savetap "zxgammon.tap",code,"zxGammon",METTAB,MTLEN