diff --git a/asminc/atmos.inc b/asminc/atmos.inc index 20bb806f1..6534a2ef0 100644 --- a/asminc/atmos.inc +++ b/asminc/atmos.inc @@ -18,21 +18,26 @@ FNAME_LEN = 16 ; maximum length of file-name ; --------------------------------------------------------------------------- ; Zero page +SCRPTR := $12 BASIC_BUF := $35 +CHARGOT := $E8 +TXTPTR := $E9 ; --------------------------------------------------------------------------- ; Low memory MODEKEY := $0209 -CAPSLOCK := $020C +CAPSLOCK := $020C ; $7F = not locked, $FF = locked PATTERN := $0213 -IRQVec := $0245 +IRQVec := $0245 ; "fast" interrupt vector JOINFLAG := $025A ; 0 = don't joiu, $4A = join BASIC programs VERIFYFLAG := $025B ; 0 = load, 1 = verify CURS_Y := $0268 CURS_X := $0269 STATUS := $026A +BACKGRND := $026B +FOREGRND := $026C TIMER3 := $0276 CFILE_NAME := $027F CFOUND_NAME := $0293 @@ -40,10 +45,13 @@ FILESTART := $02A9 FILEEND := $02AB AUTORUN := $02AD ; $00 = only load, $C7 = autorun LANGFLAG := $02AE ; $00 = BASIC, $80 = machine code +LOADERR := $02B1 KEYBUF := $02DF +PARMERR := $02E0 PARAM1 := $02E1 ; & $02E2 PARAM2 := $02E3 ; & $02E4 PARAM3 := $02E5 ; & $02E6 +BANGVEC := $02F5 ; --------------------------------------------------------------------------- @@ -92,3 +100,11 @@ POINT := $F1C8 PAPER := $F204 INK := $F210 PRINT := $F77C + +; Sound Effects +PING := $FA9F +SHOOT := $FAB5 +EXPLODE := $FACB +ZAP := $FAE1 +TICK := $FB14 +TOCK := $FB2A diff --git a/include/atmos.h b/include/atmos.h index eed6d7564..72388c974 100644 --- a/include/atmos.h +++ b/include/atmos.h @@ -126,12 +126,36 @@ extern void atmos_240_200_2_tgi[]; /* Referred to by tgi_static_stddrv[] */ +/*****************************************************************************/ +/* Functions */ +/*****************************************************************************/ + + + void __fastcall__ atmos_load(const char* name); /* Load Atmos tape. */ void __fastcall__ atmos_save(const char* name, const void* start, const void* end); /* Save Atmos tape. */ +void atmos_explode (void); +/* Bomb sound effect */ + +void atmos_ping (void); +/* Bell or ricochet sound effect */ + +void atmos_shoot (void); +/* Pistol sound effect */ + +void atmos_tick (void); +/* High-pitch click */ + +void atmos_tock (void); +/* Low-pitch click */ + +void atmos_zap (void); +/* Raygun sound effect */ + /* End of atmos.h */ diff --git a/libsrc/atmos/atmos.s b/libsrc/atmos/atmos.s new file mode 100644 index 000000000..6b5a4a49c --- /dev/null +++ b/libsrc/atmos/atmos.s @@ -0,0 +1,15 @@ +; +; Expose include-file symbol names to C code. +; + + .export _atmos_ping, _atmos_shoot, _atmos_explode + .export _atmos_zap, _atmos_tick, _atmos_tock + + .include "atmos.inc" + +_atmos_ping := PING +_atmos_shoot := SHOOT +_atmos_explode := EXPLODE +_atmos_zap := ZAP +_atmos_tick := TICK +_atmos_tock := TOCK