diff --git a/artwork/HIMARS14.g2f b/artwork/HIMARS14.g2f new file mode 100644 index 0000000..027136d Binary files /dev/null and b/artwork/HIMARS14.g2f differ diff --git a/artwork/HIMARS14.png b/artwork/HIMARS14.png new file mode 100644 index 0000000..a7c03b2 Binary files /dev/null and b/artwork/HIMARS14.png differ diff --git a/lib/atari.hea b/lib/atari.hea new file mode 100644 index 0000000..9258fe5 --- /dev/null +++ b/lib/atari.hea @@ -0,0 +1,483 @@ +/* +scr48 = %00111111 ;screen 48b +scr40 = %00111110 ;screen 40b +scr32 = %00111101 ;screen 32b +*/ + +* --------------------------------------------------------------------------------------------- +* --- GTIA +* --------------------------------------------------------------------------------------------- +HPOSP0 = $D000 ; pozioma pozycja gracza 0 (Z) +HPOSP1 = $D001 ; pozioma pozycja gracza 1 (Z) +HPOSP2 = $D002 ; pozioma pozycja gracza 2 (Z) +HPOSP3 = $D003 ; pozioma pozycja gracza 3 (Z) +HPOSM0 = $D004 ; pozioma pozycja pocisku 0 (Z) +HPOSM1 = $D005 ; pozioma pozycja pocisku 1 (Z) +HPOSM2 = $D006 ; pozioma pozycja pocisku 2 (Z) +HPOSM3 = $D007 ; pozioma pozycja pocisku 3 (Z) +SIZEP0 = $D008 ; poziomy rozmiar gracza 0 (Z) +SIZEP1 = $D009 ; poziomy rozmiar gracza 1 (Z) +SIZEP2 = $D00A ; poziomy rozmiar gracza 2 (Z) +SIZEP3 = $D00B ; poziomy rozmiar gracza 3 (Z) +SIZEM = $D00C ; poziomy rozmiar pocisków (Z) +GRAFP0 = $D00D ; rejestr grafiki gracza 0 (Z) +GRAFP1 = $D00E ; rejestr grafiki gracza 1 (Z) +GRAFP2 = $D00F ; rejestr grafiki gracza 2 (Z) +GRAFP3 = $D010 ; rejestr grafiki gracza 3 (Z) +GRAFM = $D011 ; rejestr grafiki pocisków (Z) +COLPM0 = $D012 ; rejestr koloru gracza i pocisku 0 (Z) +COLPM1 = $D013 ; rejestr koloru gracza i pocisku 1 (Z) +COLPM2 = $D014 ; rejestr koloru gracza i pocisku 2 (Z) +COLPM3 = $D015 ; rejestr koloru gracza i pocisku 3 (Z) +COLPF0 = $D016 ; rejestr koloru pola gry 0 (Z) +COLPF1 = $D017 ; rejestr koloru pola gry 1 (Z) +COLPF2 = $D018 ; rejestr koloru pola gry 2 (Z) +COLPF3 = $D019 ; rejestr koloru pola gry 3 (Z) +COLBAK = $D01A ; rejestr koloru tła (Z) + +COLOR0 = colpf0 +COLOR1 = colpf1 +COLOR2 = colpf2 +COLOR3 = colpf3 + +KOLM0PF = $D000 ; kolizja pocisku 0 z polem gry (O) +KOLM1PF = $D001 ; kolizja pocisku 1 z polem gry (O) +KOLM2PF = $D002 ; kolizja pocisku 2 z polem gry (O) +KOLM3PF = $D003 ; kolizja pocisku 3 z polem gry (O) +KOLP0PF = $D004 ; kolizja gracza 0 z polem gry (O) +KOLP1PF = $D005 ; kolizja gracza 1 z polem gry (O) +KOLP2PF = $D006 ; kolizja gracza 2 z polem gry (O) +KOLP3PF = $D007 ; kolizja gracza 3 z polem gry (O) +KOLM0P = $D008 ; kolizja pocisku 0 z graczem (O) +KOLM1P = $D009 ; kolizja pocisku 1 z graczem (O) +KOLM2P = $D00A ; kolizja pocisku 2 z graczem (O) +KOLM3P = $D00B ; kolizja pocisku 3 z graczem (O) +KOLP0P = $D00C ; kolizja gracza 0 z innym graczem (O) +KOLP1P = $D00D ; kolizja gracza 1 z innym graczem (O) +KOLP2P = $D00E ; kolizja gracza 2 z innym graczem (O) +KOLP3P = $D00F ; kolizja gracza 3 z innym graczem (O) +TRIG0 = $D010 ; stan przycisku joysticka 0 (O) +TRIG1 = $D011 ; stan przycisku joysticka 1 (O) +TRIG3 = $D013 ; znacznik dołączenia cartridge-a (O) +PAL = $D014 ; znacznik systemu TV (O) + +GTICTL = $D01B ; rejestr kontroli układu GTIA +GTIACTL = gtictl + +VDELAY = $D01C ; licznik opóźnienia pionowego P/MG +PMCNTL = $D01D ; rejestr kontroli graczy i pocisków +HITCLR = $D01E ; rejestr kasowania rejestrów kolizji +CONSOL = $D01F ; rejestr stanu klawiszy konsoli Start (bit 0), Select (bit 1), Option (bit 2) + +* --------------------------------------------------------------------------------------------- +* --- POKEY +* --------------------------------------------------------------------------------------------- + +IRQENS = $0010 ; rejestr-cień IRQEN +IRQSTAT = $0011 ; rejestr-cień IRQST + +AUDF3 = $D204 ; częstotliwość pracy generatora 3 (Z) +AUDCTL = $D208 ; rejestr kontroli generatorów dźwięku (Z) +STIMER = $D209 ; rejestr zerowania liczników (Z) +KBCODE = $D209 ; kod ostatnio naciśniętego klawisza (O) +SKSTRES = $D20A ; rejestr statusu złącza szeregowego (Z) +RANDOM = $D20A ; rejestr liczby losowej (O) +SEROUT = $D20D ; szeregowy rejestr wyjściowy (Z) +SERIN = $D20D ; szeregowy rejestr wejściowy (O) +IRQEN = $D20E ; zezwolenie przerwań IRQ (Z) +IRQST = $D20E ; status przerwań IRQ (O) +SKCTL = $D20F ; rejestr kontroli złącza szeregowego (Z) +SKSTAT = $D20F ; rejestr statusu złącza szeregowego (O) + +* --------------------------------------------------------------------------------------------- +* --- PIA +* --------------------------------------------------------------------------------------------- +PORTA = $D300 ; port A układu PIA +PORTB = $D301 ; port B układu PIA +PACTL = $D302 ; rejestr kontroli portu A +PBCTL = $D303 ; rejestr kontroli portu B + +* --------------------------------------------------------------------------------------------- +* --- ANTIC +* --------------------------------------------------------------------------------------------- +DMACTL = $D400 ; rejestr kontroli dostępu do pamięci +CHRCTL = $D401 ; rejestr kontroli wyświetlania znaków +DLPTR = $D402 ; adres programu ANTIC-a +HSCROL = $D404 ; znacznik poziomego przesuwu obrazu +VSCROL = $D405 ; znacznik pionowego przesuwu obrazu +PMBASE = $D407 ; adres pamięci graczy i pocisków +CHBASE = $D409 ; adres zestawu znaków +WSYNC = $D40A ; znacznik oczekiwania na synchronizację poziomą +VCOUNT = $D40B ; licznik linii obrazu +LPENH = $D40C ; poziome położenie pióra świetlengo +LPENV = $D40D ; pionowe położenie pióra świetlnego +NMIEN = $D40E ; rejestr zezwoleń na przerwania NMI +NMIST = $D40F ; rejestr statusu przerwań NMI + +;------------------------------------- +;additional system variables +;------------------------------------- +COLPM0S = $02C0 ;- - rejestr-cień COLPM0 +COLPM1S = $02C1 ;- - rejestr-cień COLPM1 +COLPM2S = $02C2 ;- - rejestr-cień COLPM2 +COLPM3S = $02C3 ;- - rejestr-cień COLPM3 +COLPF0S = $02C4 ;- - rejestr-cień COLPF0 +COLPF1S = $02C5 ;- - rejestr-cień COLPF1 +COLPF2S = $02C6 ;- - rejestr-cień COLPF2 +COLPF3S = $02C7 ;- - rejestr-cień COLPF3 + +COLBAKS = $02C8 +GTICTLS = $026F ;- - rejestr-cień GTIACTL + +DMACTLS = $022F ;- - rejestr kontroli dostępu do pamięci - cień +DLPTRS = $0230 ;- - adres programu ANTIC-a - cień +CHBAS = $02F4 ;- - rejestr-cień CHBASE +KBCODES = $02FC ;- - rejestr-cień KBCODE + +SETVBV = $E45C +XITVBV = $E462 +SYSVBV = $E45F +RTCLOK = $0012 + +MEMTOP = $02E5 ;- - adres górnej granicy wolnej pamięci RAM +MEMLO = $02E7 ;- - adres dolnej granicy wolnej pamięci RAM + +JSTICK0 = $0278 ;- - położenie joysticka 0 +JSTICK1 = $0279 ;- JSTICK1 - położenie joysticka 1 +JSTICK2 = $027A ;- JSTICK2 - położenie joysticka 0 +JSTICK3 = $027B ;- JSTICK3 - położenie joysticka 1 +PTRIG0 = $027C ;- PTRIG0 - przycisk potencjometru 0 +PTRIG1 = $027D ;- PTRIG1 - przycisk potencjometru 1 +TRIG0S = $0284 ;- TRIG0S - przycisk joysticka 0, rejestr-cień TRIG0 +TRIG1S = $0285 ;- TRIG1S - przycisk joysticka 1, rejestr-cień TRIG1 +TRIG2S = $0286 ;- TRIG2S - rejestr-cień TRIG0 +TRIG3S = $0287 ;- TRIG3S - rejestr-cień TRIG1 + + +/* +Rejestry OS w pamięci RAM + + $08 - WARMST - znacznik gorącego startu + $0E - APPMHI - najwyższy adres RAM zajęty przez program + $10 - IRQENS - rejestr-cień IRQEN + $11 - IRQSTAT - rejestr-cień IRQST + $12 - RTCLOK - zegar czasu rzeczywistego + $15 - BUFADR - adres bufora dla operacji dyskowych + $17 - ICCOMT - rejestr przejściowy kodu operacji I/O + $20 - ZIOCB - zerostronicowy blok kontroli I/O + $20 - ICHIDZ - indeks wpisu urządzenia w HATABS + $21 - ICDNOZ - numer urządzenia + $22 - ICCOMZ - kod operacji wejścia/wyjścia + $23 - ICSTZ - status operacji wejścia/wyjścia + $24 - ICBAZ - adres bufora danych dla operacji I/O + $26 - ICPTZ - adres procedury obsługi dla operacji + $28 - ICBLZ - długość bufora danych dla operacji I/O + $2A - ICAX1Z - rejestr pomocniczy ZIOCB + $2B - ICAX2Z - rejestr pomocniczy ZIOCB + $2C - ICAX3Z - rejestr pomocniczy ZIOCB + $2D - ICAX4Z - rejestr pomocniczy ZIOCB + $2E - ICAX5Z - rejestr pomocniczy ZIOCB + $2F - ICAX6Z - rejestr pomocniczy ZIOCB + $30 - STATUS - status aktualnej operacji SIO + $31 - CHKSUM - suma kontrolna dla operacji SIO + $32 - BUFR - adres bufora danych dla SIO + $34 - BUFEN - adres końca bufora danych dla SIO + $36 - LTEMP - pomocniczy wektor odczytu listy liniowej + $38 - BUFRFL - znacznik zapełnienia bufora SIO + $39 - RECVND - znacznik końca odczytu + $3A - XMTDON - znacznik końca transmisji + $3B - CHKSNT - znacznik nadania sumy kontrolnej + $3C - NOCKSM - znacznik braku sumy kontrolnej + $3D - BPTR - licznik bufora magnetofonu + $3E - GAPTYP - znacznik długości przerwy między blokami + $3F - FEOF - znacznik końca zbioru + $40 - FREQ - licznik dźwięku przy otwarciu magnetofonu + $41 - IOSNDEN - znacznik dźwięku przy transmisji + $42 - CRITIC - znacznik krytycznych czasowo operacji I/O + $4A - ZCHAIN - rejestr następstwa listy liniowej + $4C - DSTAT - status klawiatury i ekranu + $50 - TEMP - pomocniczy rejestr przejściowy + $51 - HOLD1 - pomocniczy rejestr przejściowy + $52 - LMARGIN - lewy margines obrazu + $53 - RMARGIN - prawy margines obrazu + $54 - ROWCRS - pionowa pozycja kursora + $55 - COLCRS - pozioma pozycja kursora + $57 - DINDEX - numer trybu graficznego OS + $58 - SAVMSC - adres pamięci obrazu + $5A - OLDROW - poprzednia pionowa pozycja kursora + $5B - OLDCOL - poprzednia pozioma pozycja kursora + $5D - OLDCHR - poprzedni znak na ekranie + $5E - OLDADR - poprzedni adres znaku na ekranie + $60 - FKDEFP - wektor tabeli definicji klawiszy F1-F4 + $62 - PALNTS - wskaźnik systemu TV + $63 - LOGCOL - adres kursora w wierszu logicznym + $64 - ADRESS - rejestr adresowy dla procedur edytora + $66 - MLTTMP - pomocniczy rejestr przejściowy + $68 - SAVADR - pomocniczy rejestr adresowy + $6A - RAMTOP - liczba stron pamięci RAM + $6B - BUFCNT - licznik bufora edytora + $6C - BUFSTR - adres bufora dla edytora + $6E - BITMSK - maska bitowa do wyświetlenia znaku + $6F - SHFAMT - liczba przesunięć punktu + $70 - ROWAC - aktualny wiersz przy rysowaniu + $72 - COLAC - aktualna kolumna przy rysowaniu + $74 - ENDPT - znacznik końca rysowanej linii + $76 - DELTAR - przyrost pionowej pozycji kursora + $77 - DELTAC - przyrost poziomej pozycji kursora + $79 - KEYDEFP - wektor tabeli definicji klawiszy + $7B - SWPFLG - znacznik kursora w trybach z oknem + $7C - HOLDCH - przechowywanie wartości znaku + $7D - INSDAT - rejestr pomocniczy edytora + $7E - COUNTR - licznik pamięci obrazu dla DOSCR i DRAW +$0100 - STACK - stos mikroprocesora 6502 +$0200 - DLIV - wektor przerwania programu ANTIC-a +$0210 - VTIMR1 - wektor przerwania licznika 1 POKEY-a +$0212 - VTIMR2 - wektor przerwania licznika 2 POKEY-a +$0214 - VTIMR4 - wektor przerwania licznika 4 POKEY-a +$0218 - TIMCNT1 - pierwszy licznik systemu +$0226 - TIMVEC1 - wektor przerwania licznika TIMCNT1 +$022A - TIMFLG3 - znacznik wyzerowania licznika TIMCNT3 +$022F - DMACTLS - rejestr-cień DMACTL +$0230 - DLPTRS - rejestr-cień DLPTR +$0232 - SKCTLS - rejestr-cień SKCTL +$0233 - LCOUNT - licznik odczytu dla nowego urządzenia +$0234 - LPENHS - rejestr-cień LPENH +$0235 - LPENVS - rejestr-cień LPENV +$023A - CDEVIC - kod urządzenia dla SIO +$023B - CCMND - kod operacji dla SIO +$023C - CAUX1 - pierwszy bajt pomocniczy dla SIO +$023D - CAUX2 - drugi bajt pomocniczy dla SIO +$023E - TEMP - tymczasowy rejestr odpowiedzi urządzenia +$023F - ERRFLG - znacznik błędu operacji SIO +$0244 - COLDST - znacznik zimnego startu systemu +$0245 - RECLEN - długość rekordu z nowego urządzenia +$0246 - DSKTIM - wartość Timeout dla stacji dysków +$0247 - PDVMSK - maska obecności nowych urządzeń +$0248 - PDVRS - rejestr-cień PDVREG +$024A - RELADR - adres procedury przemieszczalnej +$024C - PPTMPA - rejestr przechowania zawartości akumulatora +$024D - PPTMPX - rejestr przechowania zawartości rejestru X +$026B - CHSPTR - wektor nieużywanego zestawu znaków +$026C - VSFLAG - znacznik przesuwu pionowego obrazu +$026E - FINE - znacznik delikatnego przesuwu obrazu +$026F - GTICTLS - rejestr-cień GTIACTL +$0270 - PADDL0 - rejestr-cień POT0 +$0278 - JSTICK0 - położenie joysticka 0 +$0279 - JSTICK1 - położenie joysticka 1 +$027A - JSTICK2 - położenie joysticka 0 +$027B - JSTICK3 - położenie joysticka 1 +$027C - PTRIG0 - przycisk potencjometru 0 +$027D - PTRIG1 - przycisk potencjometru 1 +$0284 - TRIG0S - przycisk joysticka 0, rejestr-cień TRIG0 +$0285 - TRIG1S - przycisk joysticka 1, rejestr-cień TRIG1 +$0286 - TRIG2S - rejestr-cień TRIG0 +$0287 - TRIG3S - rejestr-cień TRIG1 +$0288 - HIBYTE - indeks operacji nowego urządzenia +$0289 - WMODE - znacznik sposobu dostępu do magnetofonu +$028A - BLIM - długość bufora magnetofonu +$028E - NEWADR - adres procedury nowego urządzenia +$0290 - TXTROW - wiersz kursora w oknie tekstowym +$0291 - TXTCOL - kolumna kursora w oknie tekstowym +$0293 - TINDEX - tryb graficzny OS w oknie tekstowym +$0294 - TXTMSC - adres pamięci okna tekstowego +$029C - CRETRY - liczba powtórzeń rozkazu operacji +$029D - HOLD3 - pomocniczy rejestr przejściowy +$029E - SUBTMP - pomocniczy rejestr przejściowy +$02A0 - DMASK - maska punktów obrazu +$02A2 - ESCFLG - znacznik klawisza ESC +$02A3 - TABMAP - mapa pozycji tabulacji +$02B2 - LOGMAP - mapa linii logicznych +$02B6 - INVFLG - znacznik klawisza inverse video +$02B7 - FILFLG - znacznik wypełniania obrazu +$02B8 - TMPROW - tymczasowy rejestr pozycji kursora +$02B9 - TMPCOL - tymczasowy rejestr pozycji kursora +$02BB - SCRFLG - znacznik przesuwu obrazu +$02BC - HOLD4 - pomocniczy rejestr przejściowy +$02BD - DRETRY - liczba powtórzeń wywołań urządzenia +$02BE - SHFLOK - znacznik klawiszy SHIFT i CONTROL +$02BF - BOTSCR - liczba wierszy tekstu +$02C0 - COLPM0S - rejestr-cień COLPM0 +$02C1 - COLPM1S - rejestr-cień COLPM1 +$02C2 - COLPM2S - rejestr-cień COLPM2 +$02C3 - COLPM3S - rejestr-cień COLPM3 +$02C4 - COLPF0S - rejestr-cień COLPF0 +$02C5 - COLPF1S - rejestr-cień COLPF1 ;gr.8 letters +$02C6 - COLPF2S - rejestr-cień COLPF2 ;gr.8 background +$02C7 - COLPF3S - rejestr-cień COLPF3 +$02C8 - COLBAKS - rejestr-cień COLBAK +$02C9 - RUNADR - adres procedury nowego urządzenia +$02CB - HIUSED - adres końcowy procedury nowego urządzenia +$02CF - GBYTEA - adres procedury nowego urządzenia +$02D1 - LOADAD - adres wczytywania z nowego urządzenia +$02D3 - ZLOADA - pomocniczy rejestr adresu wczytywania +$02D5 - DSCTLN - długość sektora dyskowego +$02DB - NOCLIK - znacznik dźwięku klawiatury +$02DE - PBPNT - licznik bufora drukarki +$02DF - PBUFSZ - długość bufora drukarki +$02E5 - MEMTOP - adres górnej granicy wolnej pamięci RAM +$02E7 - MEMLO - adres dolnej granicy wolnej pamięci RAM +$02E9 - HNDLOD - znacznik relokowalnej procedury obsługi I/O +$02EA - DVSTAT - dodatkowy rejestr statusu urządzenia +$02EC - DVTMOT - dodatkowy rejestr Timeout urządzenia +$02ED - REVNUM - numer wersji nowego urządzenia +$02EE - CBAUD - prędkość transmisji z magnetofonu +$02F0 - CRSINH - znacznik widoczności kursora +$02F3 - CHACT - rejestr-cień CHRCTL +$02F4 - CHBAS - rejestr-cień CHBASE +$02F5 - NEWROW - nowa pozycja pionowa kursora +$02F6 - NEWCOL - nowa pozycja pozioma kursora +$02F8 - ROWINC - zmiana pionowej pozycji kursora +$02F9 - COLINC - zmiana poziomej pozycji kursora +$02FA - CHAR - kod wewnętrzny znaku +$02FB - ATACHR - kod ATASCII znaku +$02FC - KBCODES - rejestr-cień KBCODE +$02FD - FILDAT - numer koloru dla wypełniania +$02FE - DSPFLG - znacznik wyświetlania znaków kontrolnych +$02FF - SSFLAG - znacznik start/stop dla przesuwu obrazu +$0300 - DDEVIC - kod identyfikacyjny urządzenia +$0301 - DUNIT - numer identyfikacyjny urządzenia +$0302 - DCMND - bajt rozkazu dla urządzenia +$0303 - DSTATS - status urządzenia +$0304 - DBUFA - adres bufora danych +$0306 - DTIMLO - wartość Timeout dla urządzenia +$0308 - DBYT - długość bufora danych +$030A - DAUX1 - rejestr pomocniczy dla operacji I/O +$030B - DAUX2 - rejestr pomocniczy dla operacji I/O +$030C - INTIM1 - rejestr czasu przy odczycie z magnetofonu +$030F - CASFLG - znacznik operacji z magnetofonem +$0310 - INTIM2 - rejestr czasu przy odczycie z magnetofonu +$0312 - TEMP1 - pomocniczy rejestr przejściowy +$0313 - TEMP2 - pomocniczy rejestr przejściowy +$0314 - PTIMOT - wartość Timeout dla drukarki +$0315 - TEMP3 - pomocniczy rejestr przejściowy +$0316 - SAVIO - rejestr przejściowy dla operacji SIO +$0317 - TIMFLG - znacznik upłynięcia czasu Timeout +$0318 - STACKP - rejestr wskaźnika stosu dla SIO +$0319 - TSTAT - przejściowy rejestr statusu SIO +$031A - HATABS - tabela wektorów procedur obsługi +$0340 - IOCB0 - blok kontroli I/O numer 0 +$0350 - IOCB1 - blok kontroli I/O numer 1 +$0360 - IOCB2 - blok kontroli I/O numer 2 +$0370 - IOCB3 - blok kontroli I/O numer 3 +$0380 - IOCB4 - blok kontroli I/O numer 4 +$0390 - IOCB5 - blok kontroli I/O numer 5 +$03A0 - IOCB6 - blok kontroli I/O numer 6 +$03B0 - IOCB7 - blok kontroli I/O numer 7 +$0340 - ICCHID - indeks wpisu urządzenia w HATABS +$0341 - ICDNO - numer urządzenia +$0342 - ICCMD - kod rozkazu operacji I/O +$0343 - ICSTAT - status operacji I/O +$0344 - ICBUFA - adres bufora danych dla operacji I/O +$0346 - ICPUTB - adres procedury przesyłania danych +$0348 - ICBUFL - długość bufora danych dla operacji I/O +$034A - ICAX1 - rejestr pomocniczy dla operacji I/O +$034B - ICAX2 - rejestr pomocniczy dla operacji I/O +$034C - ICAX3 - rejestr pomocniczy dla operacji I/O +$034D - ICAX4 - rejestr pomocniczy dla operacji I/O +$034E - ICAX5 - rejestr pomocniczy dla operacji I/O +$034F - ICAX6 - rejestr pomocniczy dla operacji I/O +$03C0 - PRNBUF - bufor drukarki +$03E8 - SUPERF - znacznik stosowany przy odczycie klawiatury +$03E9 - CKEY - znacznik klawisza START przy zimnym starcie +$03EC - DERRF - znacznik błędu przy otwieraniu edytora +$03FB - CHLINK - rejestr elementów listy liniowej +$03FD - CSCB - bajty kontroli szybkości magnetofonu +$03FF - CRCB - bajt długości rekordu magnetofonowego +$0400 - CASBUF - bufor magnetofonu +$047F - CASBEN - koniec bufora magnetofonu +$D000 - HPOSP0 - pozioma pozycja gracza 0 (Z) +$D000 - KOLM0PF - kolizja pocisku 0 z polem gry (O) +$D001 - HPOSP1 - pozioma pozycja gracza 1 (Z) +$D001 - KOLM1PF - kolizja pocisku 1 z polem gry (O) +$D002 - HPOSP2 - pozioma pozycja gracza 2 (Z) +$D002 - KOLM2PF - kolizja pocisku 2 z polem gry (O) +$D003 - HPOSP3 - pozioma pozycja gracza 3 (Z) +$D003 - KOLM3PF - kolizja pocisku 3 z polem gry (O) +$D004 - HPOSM0 - pozioma pozycja pocisku 0 (Z) +$D004 - KOLP0PF - kolizja gracza 0 z polem gry (O) +$D005 - HPOSM1 - pozioma pozycja pocisku 1 (Z) +$D005 - KOLP1PF - kolizja gracza 1 z polem gry (O) +$D006 - HPOSM2 - pozioma pozycja pocisku 2 (Z) +$D006 - KOLP2PF - kolizja gracza 2 z polem gry (O) +$D007 - HPOSM3 - pozioma pozycja pocisku 3 (Z) +$D007 - KOLP3PF - kolizja gracza 3 z polem gry (O) +$D008 - SIZEP0 - poziomy rozmiar gracza 0 (Z) +$D008 - KOLM0P - kolizja pocisku 0 z graczem (O) +$D009 - SIZEP1 - poziomy rozmiar gracza 1 (Z) +$D009 - KOLM1P - kolizja pocisku 1 z graczem (O) +$D00A - SIZEP2 - poziomy rozmiar gracza 2 (Z) +$D00A - KOLM2P - kolizja pocisku 2 z graczem (O) +$D00B - SIZEP3 - poziomy rozmiar gracza 3 (Z) +$D00B - KOLM3P - kolizja pocisku 3 z graczem (O) +$D00C - SIZEM - poziomy rozmiar pocisków (Z) +$D00C - KOLP0P - kolizja gracza 0 z innym graczem (O) +$D00D - GRAFP0 - rejestr grafiki gracza 0 (Z) +$D00D - KOLP1P - kolizja gracza 1 z innym graczem (O) +$D00E - GRAFP1 - rejestr grafiki gracza 1 (Z) +$D00E - KOLP2P - kolizja gracza 2 z innym graczem (O) +$D00F - GRAFP2 - rejestr grafiki gracza 2 (Z) +$D00F - KOLP3P - kolizja gracza 3 z innym graczem (O) +$D010 - GRAFP3 - rejestr grafiki gracza 3 (Z) +$D010 - TRIG0 - stan przycisku joysticka 0 (O) +$D011 - GRAFM - rejestr grafiki pocisków (Z) +$D011 - TRIG1 - stan przycisku joysticka 1 (O) +$D012 - COLPM0 - rejestr koloru gracza i pocisku 0 (Z) +$D013 - COLPM1 - rejestr koloru gracza i pocisku 1 (Z) +$D013 - TRIG3 - znacznik dołączenia cartridge'a (O) +$D014 - COLPM2 - rejestr koloru gracza i pocisku 2 (Z) +$D014 - PAL - znacznik systemu TV (O) +$D015 - COLPM3 - rejestr koloru gracza i pocisku 3 (Z) +$D016 - COLPF0 - rejestr koloru pola gry 0 (Z) +$D017 - COLPF1 - rejestr koloru pola gry 1 (Z) +$D018 - COLPF2 - rejestr koloru pola gry 2 (Z) +$D019 - COLPF3 - rejestr koloru pola gry 3 (Z) +$D01A - COLBAK - rejestr koloru tła (Z) +$D01B - GTIACTL - rejestr kontroli układu GTIA +$D01C - VDELAY - licznik opóźnienia pionowego P/MG +$D01D - PMCNTL - rejestr kontroli graczy i pocisków +$D01E - HITCLR - rejestr kasowania rejestrów kolizji +$D01F - CONSOL - rejestr stanu klawiszy konsoli +$D1FF - PDVREG - rejestr wyboru nowego urządzenia +$D200 - AUDF1 - częstotliwość pracy generatora 1 (Z) +$D200 - POT0 - rejestr położenia potencjometru 0 (O) +$D201 - AUDC1 - rejestr kontroli dźwięku generatora 1 (Z) +$D201 - POT1 - rejestr położenia potencjometru 1 (O) +$D202 - AUDF2 - częstotliwość pracy generatora 2 (Z) +$D202 - POT2 - rejestr położenia potencjometru 2 (O) +$D203 - AUDC2 - rejestr kontroli dźwięku generatora 2 (Z) +$D203 - POT3 - rejestr położenia potencjometru 3 (O) +$D204 - AUDF3 - częstotliwość pracy generatora 3 (Z) +$D205 - AUDC3 - rejestr kontroli dźwięku generatora 3 (Z) +$D206 - AUDF4 - częstotliwość pracy generatora 4 (Z) +$D207 - AUDC4 - rejestr kontroli dźwięku generatora 4 (Z) +$D208 - AUDCTL - rejestr kontroli generatorów dźwięku (Z) +$D208 - POTST - status odczytu potencjometrów (O) +$D209 - STIMER - rejestr zerowania liczników (Z) +$D209 - KBCODE - kod ostatnio naciśniętego klawisza (O) +$D20A - SKSTRES - reset statusu złącza szeregowego (Z) +$D20A - RANDOM - rejestr liczby losowej (O) +$D20B - POTG0 - znacznik przetwornika analogowo-cyfrowego (Z) +$D20D - SEROUT - szeregowy rejestr wyjściowy (Z) +$D20D - SERIN - szeregowy rejestr wejściowy (O) +$D20E - IRQEN - zezwolenia przerwań IRQ (Z) +$D20E - IRQST - status przerwań IRQ (O) +$D20F - SKCTL - rejestr kontroli złącza szeregowego (Z) +$D20F - SKSTAT - rejestr statusu złącza szeregowego (O) +$D300 - PORTA - port A układu PIA +$D301 - PORTB - port B układu PIA +$D302 - PACTL - rejestr kontroli portu A +$D303 - PBCTL - rejestr kontroli portu B +$D400 - DMACTL - rejestr kontroli dostępu do pamięci +$D401 - CHRCTL - rejestr kontroli wyświetlania znaków +$D402 - DLPTR - adres programu ANTIC-a +$D404 - HSCROL - znacznik poziomego przesuwu obrazu +$D405 - VSCROL - znacznik pionowego przesuwu obrazu +$D407 - PMBASE - adres pamięci graczy i pocisków +$D409 - CHBASE - adres zestawu znaków +$D40A - WSYNC - znacznik oczekiwania na synchronizację poziomą +$D40B - VCOUNT - licznik linii obrazu +$D40C - LPENH - poziome położenie pióra świetlengo +$D40D - LPENV - pionowe położenie pióra świetlnego +$D40E - NMIEN - rejestr zezwoleń na przerwania NMI +$D40F - NMIST - rejestr statusu przerwań NMI +*/ diff --git a/lib/macro.hea b/lib/macro.hea new file mode 100644 index 0000000..aed4482 --- /dev/null +++ b/lib/macro.hea @@ -0,0 +1,140 @@ +;------------------------------------- + .MACRO ROLW + ROL :1 + ROL :1+1 + .ENDM +;------------------------------------- + .MACRO ASLW + ASL :1 + ROL :1+1 + .ENDM +;------------------------------------- + .MACRO RORW + ROR :1+1 + ROR :1 + .ENDM +;------------------------------------- + .MACRO LSRW + LSR :1+1 + ROR :1 + .ENDM + +;------------------------------------- + .MACRO VMAIN +; VMAIN #WORD,interrupt.vector +; interrupt.vector: +; 0 - VIMIRQ +; 1 - TIMCNT1 +; 2 - TIMCNT2 +; 3 - TIMCNT3 +; 4 - TIMCNT4 +; 5 - TIMCNT5 +; 6 - VVBLKI +; 7 - VVBLKD +; 8 - TIMVEC1 +; 9 - TIMVEC2 +; Initialises Vertical Blank Interrupts +; (works only with system interrupts ON) + LDY # <:1 + LDX # >:1 + LDA #:2 + JSR SETVBV + .ENDM +;------------------------------------- + .MACRO VDLI +; VDLI #WORD +; Initialises Display List Interrupts + LDY # <:1 + LDX # >:1 + LDA #$C0 + STY $0200 + STX $0201 + STA NMIEN + .ENDM +;------------------------------------- + .MACRO halt +?stop + /* + lda RANDOM + and #$05 + sta COLBAK + */ + jmp ?stop + .ENDM +;------------------------------------- + .MACRO KEY +; KEY +; waits for releasing and pressing "any key" + PHA +?CK1 LDA SKSTAT + AND #$04 + BEQ ?CK1 +?CK LDA SKSTAT + AND #$04 + BNE ?CK + PLA + .ENDM +;------------------------------------- + .MACRO WAIT +; WAIT +; waits one frame (1/50 s(PAL) or 1/60s(NTSC)) + LDA VCOUNT + STA WSYNC + STA WSYNC + STA WSYNC +?WA CMP VCOUNT + BNE ?WA + .ENDM +;------------------------------------- + .macro negw + ; negate the given word (0-a) +;------------------------------------- + sec + lda #$00 + sbc :1 + sta :1 + lda #$00 + sbc :1+1 + sta :1+1 + .endm +;------------------------------------- + .macro randomize + ;usage: randomize floor ceiling + ;returns (in A) a random .byte between "floor" and "ceiling" +?rand + lda random + cmp #:1 ;floor + bcc ?rand + cmp #:2+1 ;ceiling + bcs ?rand + .endm +;------------------------------------- + .macro phx + txa + pha + .endm +;------------------------------------- + .macro phy + tya + pha + .endm +;------------------------------------- + .macro plx + pla + tax + .endm +;------------------------------------- + .macro ply + pla + tay + .endm +;------------------------------------- + .macro pause + ;waits :1 number (byte) of frames + ldx #:1 +?PAUSELOOP + wait + dex + bne ?PAUSELOOP + .ENDM + diff --git a/program.asm b/program.asm index f62010f..b455def 100644 --- a/program.asm +++ b/program.asm @@ -15,7 +15,7 @@ ;textproc.asm - text routines like list of weapons and shop ;variables.asm - all non-zero page variables and constans ;display.asm - display lists and text screen definitions -;ai.asm - artificial stupidity of the computer players +;ai.asm - artificial stupidity of computer opponents ;we were trying to use as much macros and pseudoops as possible ;they are defined in atari.hea and macro.hea files together with many @@ -29,7 +29,7 @@ ; ;originally most variables were in Polish, comments were sparse ;but we wanted to release this piece of code to public -;and due to being always short of time (to finish the game) +;and due to being always short of time/energy (to finish the game) ;we decided it must go in 'English' to let other people work on it .zpvar xdraw .word = $80 ;variable X for plot @@ -1143,4 +1143,4 @@ TheEnd .endif - run START \ No newline at end of file + run START diff --git a/program.lab b/program.lab deleted file mode 100644 index b588bf1..0000000 --- a/program.lab +++ /dev/null @@ -1,1144 +0,0 @@ -mads 2.1.3 -Label table: -00 0096 FLYDELAY -00 00C8 SCREENHEIGHT -00 0028 SCREENBYTES -00 0140 SCREENWIDTH -00 0030 MARGIN -00 1010 DISPLAY -00 0006 MAXPLAYERS -FFFD 0000 @DMACTL -00 0000 @DMACTL.BLANK -00 0001 @DMACTL.NARROW -00 0002 @DMACTL.STANDARD -00 0003 @DMACTL.WIDE -00 0004 @DMACTL.MISSILES -00 0008 @DMACTL.PLAYERS -00 0010 @DMACTL.LINEX1 -00 0000 @DMACTL.LINEX2 -00 0020 @DMACTL.DMA -00 003F SCR48 -00 003E SCR40 -00 003D SCR32 -FFFD 0000 @PMCNTL -00 0001 @PMCNTL.MISSILES -00 0002 @PMCNTL.PLAYERS -00 0004 @PMCNTL.TRIGS -FFFD 0000 @GTICTL -00 0000 @GTICTL.PRIOR0 -00 0001 @GTICTL.PRIOR1 -00 0002 @GTICTL.PRIOR2 -00 0004 @GTICTL.PRIOR4 -00 0008 @GTICTL.PRIOR8 -00 0010 @GTICTL.PLY5 -00 0020 @GTICTL.MLC -00 0040 @GTICTL.MODE9 -00 0080 @GTICTL.MODE10 -00 00C0 @GTICTL.MODE11 -00 D000 HPOSP0 -00 D001 HPOSP1 -00 D002 HPOSP2 -00 D003 HPOSP3 -00 D004 HPOSM0 -00 D005 HPOSM1 -00 D006 HPOSM2 -00 D007 HPOSM3 -00 D008 SIZEP0 -00 D009 SIZEP1 -00 D00A SIZEP2 -00 D00B SIZEP3 -00 D00C SIZEM -00 D00D GRAFP0 -00 D00E GRAFP1 -00 D00F GRAFP2 -00 D010 GRAFP3 -00 D011 GRAFM -00 D012 COLPM0 -00 D013 COLPM1 -00 D014 COLPM2 -00 D015 COLPM3 -00 D016 COLPF0 -00 D017 COLPF1 -00 D018 COLPF2 -00 D019 COLPF3 -00 D01A COLBAK -00 D016 COLOR0 -00 D017 COLOR1 -00 D018 COLOR2 -00 D019 COLOR3 -00 D000 KOLM0PF -00 D001 KOLM1PF -00 D002 KOLM2PF -00 D003 KOLM3PF -00 D004 KOLP0PF -00 D005 KOLP1PF -00 D006 KOLP2PF -00 D007 KOLP3PF -00 D008 KOLM0P -00 D009 KOLM1P -00 D00A KOLM2P -00 D00B KOLM3P -00 D00C KOLP0P -00 D00D KOLP1P -00 D00E KOLP2P -00 D00F KOLP3P -00 D010 TRIG0 -00 D011 TRIG1 -00 D013 TRIG3 -00 D014 PAL -00 D01B GTICTL -00 D01B GTIACTL -00 D01C VDELAY -00 D01D PMCNTL -00 D01E HITCLR -00 D01F CONSOL -00 0010 IRQENS -00 0011 IRQSTAT -00 D204 AUDF3 -00 D208 AUDCTL -00 D209 STIMER -00 D209 KBCODE -00 D20A SKSTRES -00 D20A RANDOM -00 D20D SEROUT -00 D20D SERIN -00 D20E IRQEN -00 D20E IRQST -00 D20F SKCTL -00 D20F SKSTAT -00 D300 PORTA -00 D301 PORTB -00 D302 PACTL -00 D303 PBCTL -00 D400 DMACTL -00 D401 CHRCTL -00 D402 DLPTR -00 D404 HSCROL -00 D405 VSCROL -00 D407 PMBASE -00 D409 CHBASE -00 D40A WSYNC -00 D40B VCOUNT -00 D40C LPENH -00 D40D LPENV -00 D40E NMIEN -00 D40F NMIST -00 02C0 COLPM0S -00 02C1 COLPM1S -00 02C2 COLPM2S -00 02C3 COLPM3S -00 02C4 COLPF0S -00 02C5 COLPF1S -00 02C6 COLPF2S -00 02C7 COLPF3S -00 02C8 COLBAKS -00 026F GTICTLS -00 022F DMACTLS -00 0230 DLPTRS -00 02F4 CHBAS -00 02FC KBCODES -00 E45C SETVBV -00 E462 XITVBV -00 E45F SYSVBV -00 0012 RTCLOK -00 02E5 MEMTOP -00 02E7 MEMLO -00 0278 JSTICK0 -00 0279 JSTICK1 -00 027A JSTICK2 -00 027B JSTICK3 -00 027C PTRIG0 -00 027D PTRIG1 -00 0284 TRIG0S -00 0285 TRIG1S -00 0286 TRIG2S -00 0287 TRIG3S -00 0080 XDRAW -00 0082 YDRAW -00 0084 XBYTE -00 0086 YBYTE -00 0088 CHARCODE -00 0089 FONTIND -00 008B TANKNR -00 008C TANKSEQUENCEPOINTER -00 008D OLDPLOT -00 008F XC -00 0091 TEMP -00 0093 TEMP2 -00 0095 TEMPXROLLER -00 0097 XTEMPDRAW -00 0099 YTEMPDRAW -00 009B XI -00 009D FX -00 009E YI -00 00A0 FY -00 00A1 XK -00 00A3 FS -00 00A4 YC -00 00A5 DX -00 00A7 TEMPOR2 -00 00A8 DY -00 00AA TEMPOR3 -00 00AC DD -00 00AE DI -00 00B0 DP -00 00B2 MODIFY -00 00B4 WEAPONPOINTER -00 00F0 FCNT -00 00F2 FADR -00 00F4 FHLP -00 00F6 CLOC -00 00F7 REGA -00 00F8 REGX -00 00F9 REGY -00 0028 WIDTH -00 001E HEIGHT -00 2000 ANT -00 2023 SCR -00 2800 FNT -00 3800 MAIN -00 3823 _LP -00 383B STOP -00 3853 DLI -00 3853 DLI.DLI_START -00 3853 DLI.DLI10 -00 3855 DLI.C4 -00 3868 DLI.DLI2 -00 387A DLI.DLI3 -00 388C DLI.DLI4 -00 389E DLI.DLI5 -00 38B0 DLI.DLI6 -00 38C2 DLI.DLI7 -00 38D4 DLI.DLI11 -00 0001 CHANGES -00 0000 FADECHR -00 007F SCHR -00 38E1 NMI -00 38E7 NMI.DLIV -00 38E9 NMI.VBL -00 3908 NMI.C0 -00 3917 NMI.C1 -00 391C NMI.C2 -00 3921 NMI.C3 -00 3926 NMI.X0 -00 3968 NMI.QUIT -00 0000 USESPRITES -00 3010 PURCHASEDL -00 3019 MOREUPDL -00 301D WEAPONSLISTDL -00 303F MOREDOWNDL -00 3049 OPTIONSDL -00 305E NAMEDL -00 3074 DL -00 3153 WHITELINE -00 2F50 PLOTLINE -00 317B OPTIONSSCREEN -00 31F3 OPTIONSHERE -00 3293 OPTIONSSCREENEND -00 3293 NAMESCREEN -00 32C7 NAMEADR -00 32F4 NAMESOFLEVELS -00 3393 MOREUP -00 33BB MOREDOWN -00 33E3 LISTOFWEAPONS -00 3983 LISTOFWEAPONS1END -00 3983 LISTOFDEFENSIVEWEAPONS -00 3C03 LISTOFDEFENSIVEWEAPONSEND -00 3C03 WEAPONSDESCRIPTION -00 3C51 EMPTYLINE -00 3C79 TEXTBUFFER -00 3CC9 TEXTBUFFER2 -00 3D19 NUMBEROFPLAYERS -00 3D1A TANKSEQUENCE -00 3D20 SKILLTABLE -00 3D26 MONEYH -00 3D2C MONEYL -00 3D32 GAINH -00 3D38 GAINL -00 3D3E LOOSEH -00 3D44 LOOSEL -00 3D4A ENERGY -00 3D50 ENERGYDECREASE -00 3D51 EXISTENZ -00 3D57 LASTEXISTENZ -00 3D5D RESULTSTABLE -00 3D63 TEMPRESULTS -00 3D69 CURRENTRESULT -00 3D6A ENERGYTABLEL -00 3D70 ENERGYTABLEH -00 3D76 MAXENERGYTABLEL -00 3D7C MAXENERGYTABLEH -00 3D82 ANGLETABLE -00 3D88 NEWANGLE -00 3D89 ACTIVEWEAPON -00 3D8F L1 -00 3D90 GRAVITY -00 3D91 WIND -00 3D93 MAXWIND -00 3D94 WINDORIENTATION -00 3D95 COUNTER -00 3D96 HITFLAG -00 3D97 XTANKSTABLEL -00 3D9D XTANKSTABLEH -00 3DA3 YTANKSTABLE -00 3DA9 LOWRESDISTANCES -00 3DAF KEYCODES -00 3DD5 SCRCODES -00 3DFB ERASE -00 3DFC RANGELEFT -00 3DFE RANGERIGHT -00 3E00 WEAPONRANGELEFT -00 3E02 WEAPONRANGERIGHT -00 3E04 HOWMUCHTOFALL -00 3E05 HEIGHTROL -00 3E06 DIGSTARTX -00 3E08 DIGSTARTY -00 3E0A DIGGERY -00 3E0B DIGLONG -00 3E0C DIGTABXL -00 3E14 DIGTABXH -00 3E1C DIGTABYL -00 3E24 DIGTABYH -00 3E2C SANDHOGFLAG -00 3E2D MAGIC -00 3E2F DRAWJUMPADDR -00 3E31 HOWTODRAW -00 3E32 XHIT -00 3E34 YHIT -00 3E36 LINELENGTH -00 3E38 RADIUS -00 3E39 XCIRCLE -00 3E3B YCIRCLE -00 3E3C TEMPCIR -00 3E3E IFFALLDOWN -00 3E3F PREVIOUSFALL -00 3E40 ENDOFTHEFALLFLAG -00 3E41 PARACHUTE -00 3E42 XTRAJ00 -00 3E47 XTRAJ01 -00 3E4C XTRAJ02 -00 3E51 VX00 -00 3E56 VX01 -00 3E5B VX02 -00 3E60 VX03 -00 3E65 MIRVDOWN -00 3E6A MIRVMISSILECOUNTER -00 3E6B SMOKETRACERFLAG -00 3E6C VX -00 3E70 VY -00 3E74 XTRAJ -00 3E77 YTRAJ -00 3E7A XTRAJOLD -00 3E7D YTRAJOLD -00 3E80 ANGLE -00 3E81 FORCE -00 3E84 MULTIPLIER -00 3E87 MULTIPLEE -00 3E89 RESULT -00 3E8C GOLEFT -00 3E8D ISENDOFTHEFALLFLAG -00 3E8E WHICHUNPLOT -00 3E8F OLDPLOTH -00 3E94 OLDPLOTL -00 3E99 OLDORA -00 3E9E OLDPLY -00 3EA3 OLDORATEMP -00 3EA4 FUNKYBOMBCOUNTER -00 3EA5 XTRAJFB -00 3EA7 YTRAJFB -00 3EA9 TRACERFLAG -00 3EAA MASK1 -00 3EB2 MASK2 -00 3EBA CHAR1 -00 3EC2 CHAR2 -00 3ECA COLOR -00 3ECB YBIT -00 3ECC TEMPBYTE01 -00 3ECD DELTA -00 3ECF YFLOAT -00 3ED1 DELTAX -00 3ED2 UPNDOWN -00 3ED3 TEMPTANKX -00 3ED5 TEMPTANKNR -00 3ED6 NUBERSOFWEAPONSL1 -00 3EFE NUBERSOFWEAPONSL2 -00 3F0E HOWMANYONTHELIST1 -00 3F0F HOWMANYONTHELIST2 -00 3F10 POSITIONONTHELIST -00 3F11 LASTWEAPON -00 3F12 WHICHLIST -00 3F13 OFFSETDL1 -00 3F14 OPTIONSTABLE -00 3F18 OPTIONSY -00 0004 MAXOPTIONS -00 3F19 CASHOPTIONH -00 3F1E CASHOPTIONL -00 3F23 GRAVITYTABLE -00 3F28 MAXWINDTABLE -00 3F2D POSITIONINNAME -00 3F2E DIFFICULTYLEVEL -00 3F2F LEVELNAMEBEGINL -00 3F38 LEVELNAMEBEGINH -00 3F41 DECIMAL -00 3F43 DISPLAYPOSITION -00 3F45 DECIMALRESULT -00 3F49 EXPLOSIONRADIUS -00 3F4B CURRENTROUNDNR -00 3F4C FALLDOWN1 -00 3F4D FALLDOWN2 -00 3F4E LEAPFROGANGLE -00 3F4F LASERCOORDINATE -00 3F57 TANKSNAMES -00 3F87 TANKSWEAPONS -00 3F87 TANKSWEAPON1 -00 3FC7 TANKSWEAPON2 -00 4007 TANKSWEAPON3 -00 4047 TANKSWEAPON4 -00 4087 TANKSWEAPON5 -00 40C7 TANKSWEAPON6 -00 4107 TANKSWEAPONSTABLEL -00 410D TANKSWEAPONSTABLEH -00 4113 MOUNTAINTABLE -00 4254 MOUNTAINTABLE2 -00 4395 MOUNTAINTABLE3 -00 44D6 MOUNTAINTABLEEND -00 44D6 TEXTPOSITIONX -00 44D8 TEXTPOSITIONY -00 44D9 TEXTADDRESS -00 44DB TEXTCOUNTER -00 44DC TEXTNUMBEROFF -00 44DD TANKTEMPY -00 44DE LINEADDRESS4X4 -00 44E0 LINECHARNR -00 44E1 LINEXDRAW -00 44E3 LINEYDRAW -00 44E4 LINETOP -00 44F2 LINEBOTTOM -00 4500 LINEEMPTY -00 450E LINEHEADER1 -00 4517 ROUNDNRDISPLAY -00 451C LINEHEADER2 -00 452A RESULTLINEBUFFER -00 453D RESULTX -00 453F RESULTY -00 4540 RESULTOFTANKNR -00 4541 PMTABLEL -00 4546 PMTABLEH -00 454B BARRELTABLEL -00 45A6 BARRELTABLER -00 4601 SINTABLE -00 465C COSTABLE -00 46B7 LINETABLEL -00 4780 LINETABLEH -00 4849 OLDPLOTPOINTERX -00 484B LOOPCOUNTER4X4 -00 484C Y4X4 -00 484D STOREA4X4 -00 484E XCOUNTER4X4 -00 484F NIBBLER4X4 -00 4850 CHARCODE4X4 -00 4851 PLOT4X4COLOR -00 4852 BITTABLE -00 485A BITTABLE2 -00 4862 DISKTANCE -00 4869 WHERETOSLIDETABLE -00 4969 ENDOFTHEBARRELX -00 4A69 ENDOFTHEBARRELY -00 4B69 TANKSNAMESDEFAULT -00 4B99 WEAPONPRICEH -00 4BD9 WEAPONPRICEL -00 4C19 WEAPONUNITS -00 4C59 WEAPONSYMBOLS -00 4C99 NAMESOFWEAPONS -00 5099 JOYTOKEYTABLE -00 50A9 PREVIOUSANGLE -00 50AF PREVIOUSENERGYL -00 50B5 PREVIOUSLEFTRANGE -00 50BB PREVIOUSENERGYH -00 50C1 PREVIOUSRIGHTANGLE -00 50C7 RANDBOUNDARYLOW -00 50C9 RANDBOUNDARYHIGH -00 50CB ANGLETABLEPOINTER -00 50CC CLEAREND -00 50CC OFFENSIVETEXTS -00 50CC TALK -00 50CC TALK.L0 -00 50F7 TALK.L1 -00 50FB TALK.L2 -00 5109 TALK.L3 -00 5116 TALK.L4 -00 511D TALK.L5 -00 5140 TALK.L6 -00 5165 TALK.L7 -00 5171 TALK.L8 -00 5182 TALK.L9 -00 518E TALK.L10 -00 5195 TALK.L11 -00 519C TALK.L12 -00 51AE TALK.L13 -00 51BF TALK.L14 -00 51D5 TALK.L15 -00 51DE TALK.L16 -00 51FF TALK.L17 -00 520C TALK.L18 -00 521B TALK.L19 -00 5245 TALK.L20 -00 524D TALK.L21 -00 525F TALK.L22 -00 527D TALK.L23 -00 528C TALK.L24 -00 5299 TALK.L25 -00 52A9 TALK.L26 -00 52C8 TALK.L27 -00 52D8 TALK.L28 -00 52E2 TALK.L29 -00 52F6 TALK.L30 -00 5319 TALK.L31 -00 532F TALK.L32 -00 5340 TALK.L33 -00 5354 TALK.L34 -00 5371 TALK.L35 -00 5390 TALK.L36 -00 53AB TALK.L37 -00 53C3 TALK.L38 -00 53E7 TALK.L39 -00 5402 TALK.L40 -00 541F TALK.L41 -00 5435 TALK.L42 -00 544A TALK.L43 -00 5467 TALK.L44 -00 5471 TALK.L45 -00 54A1 TALK.L46 -00 54B2 TALK.L47 -00 54C4 TALK.L48 -00 54EA TALK.L49 -00 54F9 TALK.L50 -00 5513 TALK.L51 -00 552B TALK.L52 -00 5541 TALK.L53 -00 5565 TALK.L54 -00 5569 TALK.L55 -00 556F TALK.L56 -00 5578 TALK.L57 -00 5584 TALK.L58 -00 5589 TALK.L59 -00 558C TALK.L60 -00 5591 TALK.L61 -00 5597 TALK.L62 -00 55B3 TALK.L63 -00 55DA TALK.L64 -00 55E0 TALK.L65 -00 55E7 TALK.L66 -00 55EC TALK.L67 -00 55FD TALK.L68 -00 5618 TALK.L69 -00 5620 TALK.L70 -00 5628 TALK.L71 -00 563E TALK.L72 -00 5651 TALK.L73 -00 5658 TALK.L74 -00 565F TALK.L75 -00 5679 TALK.L76 -00 5699 TALK.L77 -00 56A7 TALK.L78 -00 56B9 TALK.L79 -00 56DA TALK.L80 -00 56E9 TALK.L81 -00 570B TALK.L82 -00 5713 TALK.L83 -00 5717 TALK.L84 -00 571B TALK.L85 -00 571F TALK.L86 -00 5724 TALK.L87 -00 5748 TALK.L88 -00 575A TALK.L89 -00 576E TALK.L90 -00 5792 TALK.L91 -00 57AF TALK.L92 -00 57C6 TALK.L93 -00 57D9 TALK.L94 -00 57EA TALK.L95 -00 57F6 TALK.L96 -00 5813 TALK.L97 -00 581A TALK.L98 -00 583E TALK.L99 -00 5865 TALK.L100 -00 588E TALK.L101 -00 58AC TALK.L102 -00 58C3 TALK.L103 -00 58F3 TALK.L104 -00 5915 TALK.L105 -00 593F TALK.L106 -00 5958 TALK.L107 -00 5966 TALK.L108 -00 5985 TALK.L109 -00 5989 TALK.L110 -00 59A3 TALK.L111 -00 59B2 TALK.L112 -00 59C9 TALK.L113 -00 59E5 TALK.OFFENSIVETEXTTABLEL -00 5A57 TALK.OFFENSIVETEXTTABLEH -00 5AC9 TALK.OFFENSIVETEXTLENGTHS -00 0036 TALK.NUMBEROFOFFENSIVETEXTS -00 003C TALK.NUMBEROFDEFFENSIVETEXTS -00 5B3B START -00 5B6D LOOP01 -00 5B90 MAINGAMELOOP -00 5BCA CHECKFORHUMAN -00 5BEC PEOPLEAREHERE -00 5BFA CHECKFIRE -00 5BFF NOKEY -00 5C03 CALCULATEGAINS -00 5C2E SUBSTRACTLOOSE -00 5C44 ZEROMONEY -00 5C4C SKIPZEROING -00 5C55 ROUND -00 5C58 ROUND.LOOP -00 5C62 SETTINGENERGIES -00 5CB3 MAINROUNDLOOP -00 5CB9 CHECKINGIFROUNDISFINISHED -00 5CBF NOENERGY -00 5CCA WHICHTANKWONLOOP -00 5CD3 THISONEWON -00 5CDE DONOTFINISHTHEROUND -00 5D0D MANUALSHOOTING -00 5D13 AFTERMANUALSHOOTING -00 5D38 AFTEREXPLODE -00 5D55 NOFALLDOWN2 -00 5D5D TANKSFALLDOWN -00 5D6D MISSED -00 5D7A NEXTPLAYERSHOOTS -00 5D84 SETEXISTENZ -00 5D92 LP0 -00 5D9B B0 -00 5DC3 PLAYERSAGAIN -00 5DC7 PLAYERSAGAIN.CHECKINGPLAYERSDEATH -00 5DD1 PLAYERSAGAIN.NOPLAYERNODEATH -00 5DD7 PLAYERXDEATH -00 5E63 EXPLOSION -00 5E7B EXPLOSION2 -00 5E85 EXPLOSION2.EXPLOSIONROUTINES -00 5EC7 EXPLOSION2.VOID -00 5EC8 BABYMISSILE -00 5ED6 MISSILE -00 5EE4 BABYNUKE -00 5EF2 NUKE -00 5F00 LEAPFROG -00 5F7E ENDOFLEAPPING -00 5F7F MIRV -00 5F83 FUNKYBOMB -00 5FD6 FUNKYBOMBLOOP -00 5FEB DONOTEOR -00 601C NOEXPLOSIONINFUNKYBOMB -00 6027 DEATHSHEAD -00 607C NOUPPERCIRCLE -00 6096 NOLOWERCIRCLE -00 6097 TRACER -00 6098 BABYROLLER -00 60A3 ROLLER -00 60AE HEAVYROLLER -00 60B9 RIOTBOMB -00 60C7 HEAVYRIOTBOMB -00 60D5 BABYDIGGER -00 60EA DIGGER -00 60FF HEAVYDIGGER -00 6114 XDIGGER -00 612B WRITETOBRANCHES -00 615E BRANCHNOTFINISHED -00 6161 CALCULATEBRANCHES -00 6166 DIGLEWY -00 617A DIGRIGHT -00 618B DIGRANDOMIZE -00 6192 DIGWDOL -00 61A6 DIGUP -00 61BB DIGCALCULATENEXT -00 61C1 DIGDRAWING -00 61EB DIGGERCHARACTER -00 6207 DONOTPUTDIG -00 6208 BABYSANDHOG -00 621D SANDHOG -00 6232 HEAVYSANDHOG -00 6247 DIRTCLOD -00 6255 DIRTBALL -00 6263 TONOFDIRT -00 6271 DIRTCHARGE -00 627F LASER -00 6395 LASERMISSES -00 6396 XMISSILE -00 639E EXPLOSIONLOOP -00 63BB EXPLOSIONLOOP2 -00 63DF DISTANCECHECKLOOP -00 6426 TANKISNOTWITHINTHERANGE -00 6426 ENDOFDISTANCECHECKLOOP -00 642A XDIRT -00 6432 DIRTLOOP -00 6448 XRIOTBOMB -00 6450 RBOMBLOOP -00 6464 XROLLER -00 648C POSITIVEVELOCITY -00 64AB SEEKLEFT -00 64C9 HOWMUCHTOFALLLEFT -00 64D0 GORIGHTNOW -00 64E5 SEEKRIGHT -00 6503 HOWMUCHTOFALLRIGHT -00 6511 ITISLEFTALREADY -00 6516 HOWMUCHTOFALLKNOWN -00 6524 ROLLIN -00 6538 ROLLINCONTINUES -00 6576 UPNOTYET -00 65BF HOWMUCHTOFALLRIGHT2 -00 65DB EXPLODENOW -00 660D OFDIRT -00 6624 NEXTROW -00 6638 NEXTLINE -00 6648 DONOTPLOT -00 6682 ENDOFTHEDIRT -00 6692 BEFOREFIRE -00 66A2 BEFOREFIRE.CONTINUETOCHECKMAXFORCE2 -00 66B0 BEFOREFIRE.SKIP15 -00 66CA BEFOREFIRE.NOTPRESSED -00 66F1 BEFOREFIRE.JUMPFROMSTICK -00 6718 BEFOREFIRE.CHECKJOY -00 6728 BEFOREFIRE.NOTPRESSEDJOY -00 6732 BEFOREFIRE.JNOTFIRE -00 6735 BEFOREFIRE.PRESSEDUP -00 673F BEFOREFIRE.CHECKINGMAXFORCE -00 674D BEFOREFIRE.FURTHERCHECKMAXFORCE -00 6761 BEFOREFIRE.CTRLPRESSEDUP -00 6774 BEFOREFIRE.PRESSEDDOWN -00 6785 BEFOREFIRE.FORCEGOESZERO -00 678D BEFOREFIRE.SKIP04 -00 6790 BEFOREFIRE.CTRLPRESSEDDOWN -00 67A8 BEFOREFIRE.PRESSEDLEFT -00 67BB BEFOREFIRE.NOTTHROUGH90DEGREESLEFT -00 67CA BEFOREFIRE.PRESSEDRIGHT -00 67DB BEFOREFIRE.NOTTHROUGH90DEGREESRIGHT -00 67EA BEFOREFIRE.PRESSEDTAB -00 67FB BEFOREFIRE.SKIP14 -00 6809 BEFOREFIRE.CTRLPRESSEDTAB -00 6815 BEFOREFIRE.SKIP14CT -00 6823 BEFOREFIRE.PRESSEDSPACE -00 6824 SHOOT -00 6824 SHOOT.RANDOMIZEOFFENSIVETEXT -00 6850 SHOOT.NOTSTRONGSHOOT -00 685C SHOOT.AFTERSTRONGSHOOT -00 68B8 TANKFALLS -00 68CD TANKFALLS.TANKFALLSX -00 68E6 TANKFALLS.BYTEBELOWTANK -00 68EE TANKFALLS.EMPTYPOINT2 -00 68EF TANKFALLS.ROLPOINT2 -00 6922 TANKFALLS.ITSTILLFALLS -00 6943 TANKFALLS.FALLDIAGONALLY -00 6943 TANKFALLS.NOFALLINGDOWN -00 6943 TANKFALLS.PARACHUTEPRESENT -00 6955 TANKFALLS.FALLSTRAIGHTDOWN -00 696D TANKFALLS.RAPIDFALLING -00 6983 TANKFALLS.NOTLEFTEDGE -00 69A8 TANKFALLS.NOTRIGHTEDGE -00 69D2 TANKFALLS.DONOTCLEARPARACHUTE -00 69E7 TANKFALLS.DOESNOTFALLDOWN -00 69FD TANKFALLS.DOESNOTFALLLEFT -00 6A13 TANKFALLS.DOESNOTFALLRIGHT -00 6A38 TANKFALLS.DONOTDRAWPARACHUTE -00 6A40 TANKFALLS.ENDOFFALL -00 6A74 TANKFALLS.THEREWASNOPARACHUTE -00 6A75 FLIGHT -00 6A81 FLIGHT.NOSMOKETRACER -00 6A84 FLIGHT.REPEATIFSMOKETRACER -00 6ADF FLIGHT.FLIGHTRIGHT -00 6AE4 FLIGHT.DONTZEROGOLEFT -00 6AFD FLIGHT.MULTIPLYLOOP -00 6B1E FLIGHT.DONOTADD -00 6B68 FLIGHT.MULTIPLYLOOPY -00 6B89 FLIGHT.DONOTADDY -00 6BAC FLIGHT.LOOPI -00 6BF0 FLIGHT.STILLUP -00 6C14 FLIGHT.FLIGHTLEFT -00 6C30 FLIGHT.SKIP07 -00 6C3C FLIGHT.FLIGHTSLEFT -00 6C41 FLIGHT.LWINDTOLEFT -00 6C67 FLIGHT.WINDTOLEFT -00 6C67 FLIGHT.LWINDTORIGHT -00 6C8A FLIGHT.SKIP08 -00 6CD9 FLIGHT.DELAYLOOP -00 6CDF FLIGHT.NOWAIT -00 6CF7 FLIGHT.YTRAYLOWERTHANSCREENHEIGHT -00 6CF7 FLIGHT.SKIPCOLLISIONCHECK -00 6D13 FLIGHT.NOUNPLOT -00 6D19 FLIGHT.HIT -00 6D30 FLIGHT.ENDOFFLIGHT -00 6D67 FLIGHT.ENDOFFLIGHT2 -00 6D6D SECONDFLIGHT -00 6DD9 MIRVDOWNLOOP -00 6DDB MIRVDOWNLOOP.MIRVCOPYPARAMETERS -00 6E88 MIRVDOWNLOOP.MRLOOPI -00 6E97 MIRVDOWNLOOP.MRLOOPIX -00 6EF4 MIRVDOWNLOOP.MIRVDONOTCHANGEY -00 6F20 MIRVDOWNLOOP.MRFLIGHTLEFT -00 6F3C MIRVDOWNLOOP.MRSKIP07 -00 6F48 MIRVDOWNLOOP.MRFLIGHTSLEFT -00 6F4D MIRVDOWNLOOP.MRLWINDTOLEFT -00 6F73 MIRVDOWNLOOP.MRWINDTOLEFT -00 6F73 MIRVDOWNLOOP.MRLWINDTORIGHT -00 6F96 MIRVDOWNLOOP.MRSKIP08 -00 6FA5 MIRVDOWNLOOP.MIRVCHECKX -00 6FBE MIRVDOWNLOOP.MIRVCHECKLOWERX -00 6FD5 MIRVDOWNLOOP.MIRVCHECKCOLLISION -00 700E MIRVDOWNLOOP.MRSKIPCOLLISIONCHECK -00 7033 MIRVDOWNLOOP.MRHIT -00 7061 MIRVDOWNLOOP.MRENDOFFLIGHT -00 7079 MIRVDOWNLOOP.MIRVNEXTBULLET -00 707B MIRVDOWNLOOP.MIRVCHECKIFEND -00 7085 MIRVDOWNLOOP.MIRVSTILLNOTALL -00 7088 MIRVDOWNLOOP.MIRVALREADYALL -00 70D4 CHECKCOLLISIONWITHTANK -00 70D6 CHECKCOLLISIONWITHTANK.CHECKCOLLISIONWITHTANKLOOP -00 70E4 CHECKCOLLISIONWITHTANK.CONDITION01 -00 70F7 CHECKCOLLISIONWITHTANK.CONDITION02 -00 7126 CHECKCOLLISIONWITHTANK.RIGHTFROMTHETANK -00 7126 CHECKCOLLISIONWITHTANK.LEFTFROMTHETANK -00 7126 CHECKCOLLISIONWITHTANK.OVERTHETANK -00 7126 CHECKCOLLISIONWITHTANK.BELOWTHETANK -00 712D CALCULATEEXPLOSIONRANGE0 -00 7144 CALCULATEEXPLOSIONRANGE -00 716D CALCULATEEXPLOSIONRANGE.NOTOUTOFTHESCREENRIGHT -00 718B CALCULATEEXPLOSIONRANGE.NOTOUTOFTHESCREENLEFT -00 71A7 CALCULATEEXPLOSIONRANGE.CHECKRANGERIGHT -00 71C3 CALCULATEEXPLOSIONRANGE.RANGESCHECKED -00 71C4 DECREASEWEAPONAFTERSHOOT -00 71D5 DECREASEWEAPONAFTERSHOOT.AMMUNITIONDECREASED -00 71DC DECREASEWEAPON -00 71E5 HOWMANYBULLETS -00 71F5 DECREASEENERGYX -00 7217 DECREASEENERGYX.LDAHASHZERO -00 7219 DECREASEENERGYX.NOTNEGATIVEENERGY -00 7235 GETRANDOMWIND -00 7266 PMOUTOFSCREEN -00 7281 WEAPONCLEANUP -00 7285 WEAPONCLEANUP.LOOP05 -00 729E WEAPONCLEANUP.SKIP13 -00 72A1 INITIALIZE -00 72C0 INITIALIZE.SETUNPLOTS -00 7322 INITIALIZE.MAKETANKSVISIBLE -00 732B INITIALIZE.CLEARRESULTS -00 7339 SETDLI -00 7349 DLIINTERRUPT -00 7354 RANDOMIZESEQUENCE -00 7356 RANDOMIZESEQUENCE.GETRANDOMAGAIN0 -00 7363 RANDOMIZESEQUENCE.GETRANDOMAGAINX -00 7371 RANDOMIZESEQUENCE.USAGELOOP -00 7389 RANDOMIZEANGLE -00 7397 RANDOMIZEFORCE -00 73A1 RANDOMIZEFORCE.GETRANDOMAGAIN -00 73DD RANDOMIZEFORCE.ENERGYINRANGE -00 73E8 MOVEBARRELTONEWPOSITION -00 7401 MOVEBARRELTONEWPOSITION.ROTATERIGHT -00 7410 MOVEBARRELTONEWPOSITION.ROTATELEFT -00 741F MOVEBARRELTONEWPOSITION.BARRELPOSITIONISFINE -00 7420 SORTSEQUENCE -00 7422 SORTSEQUENCE.SEQUENCESTART -00 742D SORTSEQUENCE.MOVETOTEMP -00 743F SORTSEQUENCE.BUBBLE -00 7443 SORTSEQUENCE.BUBBLEBOBBLE -00 746C SORTSEQUENCE.NEXTISHIGHER -00 7476 GETKEY -00 74A5 GETKEY.LOPX01 -00 74B6 GETKEY.CHECKJOYGETKEY -00 74C4 GETKEY.NOTPRESSEDJOYGETKEY -00 74CC GETKEYNOWAIT -00 74DD OPTIONS -00 74E2 OPTIONS.OPTIONSMAINLOOP -00 74FE OPTIONS.OPTIONSNODOWN -00 750F OPTIONS.OPTIONSNOUP -00 7524 OPTIONS.OPTIONSNOLEFT -00 753B OPTIONS.OPTIONSNORIGHT -00 7542 OPTIONS.OPTIONSNORETURN -00 7545 OPTIONS.OPTIONSFINISHED -00 7552 OPTIONS.SKIP10 -00 7577 OPTIONS.OPTIONSINVERSION -00 7581 OPTIONS.OPTIONSINVERSIONLOOP1 -00 75B5 OPTIONS.OPTIONSSETMAINLOOP -00 75C2 OPTIONS.OPTIONSETLOOP -00 7622 OPTIONS.OPTIONSYLOOP -00 762C CALLPURCHASEFOREVERYTANK -00 7649 LOOP03 -00 7656 MANUALPURCHASE -00 7659 AFTERMANUALPURCHASE -00 7663 PURCHASE -00 7681 NEXTCHAR03 -00 768D AFTERPURCHASE -00 76BB CREATELIST -00 76D3 CHECKWEAPON01 -00 775C ROTATE02 -00 777D MODYF1 -00 7799 OMINX06 -00 779F NOTTHESAMEASLASTTIME -00 77AF SECONDLIST -00 77B8 NEXTLINEOFTHELIST -00 77C3 TOOLITTLECASH -00 77C3 NOWEAPON -00 77D0 NODEFENSE -00 77E2 WEHAVEOFFSET -00 77ED ROTATE04 -00 77F4 DONOTADDX01 -00 780B CLEARLIST1 -00 7812 DONOTINCHIGHER1 -00 7827 ROTATE05 -00 782E DONOTADDX02 -00 7845 CLEARLIST2 -00 784C DONOTINCHIGHER2 -00 7856 CHOOSINGITEMFORPURCHASE -00 7876 ENDOFPURCHASE -00 7877 PURCHASEKEYUP -00 7889 GOUP1 -00 7893 MAKEOFFSETUP -00 789E ENDUPX -00 78A1 PURCHASEKEYDOWN -00 78BB GODOWN1 -00 78CD MAKEOFFSETDOWN -00 78E1 ENDGODOWNX -00 78E4 LISTCHANGE -00 78FB SECONDSELECTED -00 7905 DALEJX01 -00 7910 PURCHASEWEAPONNOW -00 791E PURCHASEDEFFENSIVE -00 7924 PURCHASEALL -00 7942 ROTATE03 -00 7964 LESSTHAN100 -00 796A PUTLITTECHAR -00 7976 ERASELOOP -00 7985 OMINX02 -00 799A ADDLOOP2 -00 79A5 OMINX03 -00 79A8 SELECTLIST2 -00 79BD CHARTOLIST1 -00 79CA ADDLOOP1 -00 79D5 OMINX04 -00 79D8 SELECTLIST1 -00 79E9 LOOPWINDOW1 -00 79F4 OMINX05 -00 79F7 SETWINDOWLIST1 -00 7A0E NOARROWUP -00 7A29 NOARROWDOWN -00 7A30 ENTERPLAYERNAME -00 7A50 LOOPNAME01 -00 7A5B CHECKKEYS -00 7A60 ISLETTER -00 7A6A YESLETTER -00 7A74 NOTFIRSTLETTER -00 7A87 CHECKFURTHERX01 -00 7AA5 FIRSTCHAR -00 7AB8 CHANGEOFLEVELUP -00 7AC7 DONOTLOOPLEVELUP -00 7ACD CHANGEOFLEVELDOWN -00 7ADA DONOTLOOPLEVELDOWN -00 7AE0 CHANGEOFLEVEL3UP -00 7AFB DONOTLOOPLEVEL3UP -00 7B01 ENDOFNICK -00 7B17 NEXTCHAR04 -00 7B26 MAKEDEFAULTNAME -00 7B26 NEXTCHAR05 -00 7B33 SELECTLEVEL -00 7B35 CHECKNEXTLEVEL01 -00 7B46 INVERSEFURTHER -00 7B51 NOTTHISLEVEL -00 7B5A CHECKNEXTLEVEL -00 7B5E DISPLAYDEC -00 7B60 NEXTDIGIT -00 7B64 ROTATE000 -00 7B74 TOOLITTLE000 -00 7B81 RIGHTNUMBER -00 7BAB DECIMALEND -00 7BB7 DISPLAYLOOP -00 7BC0 DISPLAYBYTE -00 7BC2 NEXTDIGIT2 -00 7BC6 ROTATE001 -00 7BD3 TOOLITTLE001 -00 7BEE DECIMALEND1 -00 7BFA DISPLAYLOOP1 -00 7C03 DIGITS -00 7C0D ZERO -00 7C0E NINEPLUS -00 7C0F SPACE -00 7C10 DISPLAYOFFENSIVETEXTNR -00 7C40 DOTNNOTLESSTHANZERO -00 7C70 DOTNNOOVERFLOW -00 7C91 DOTLOWESTMOUNTAINVALUELOOP -00 7C99 DOTOLDLOWESTVALUE -00 7CB7 DOTNCHARLOOP -00 7CF5 TYPELINE4X4 -00 7CFA TYPELINE4X4LOOP -00 7D36 ENDOFTYPELINE4X4 -00 7D37 DISPLAYRESULTS -00 7E62 RESULTOFTHENEXTPLAYER -00 7E85 TANKNAMECOPYLOOP -00 7F26 FINISHRESULTDISPLAY -00 7F4B DISPLAYINGSYMBOLS -00 7F8C ROTATEDISP02 -00 7FA4 LOOP06 -00 7FEA ANGLETOLEFT -00 8000 ANGLEDISPLAY -00 801E DISPLAYLEFTWIND -00 8028 DISPLAYWINDVALUE -00 8055 PUTTANKNAMEONSCREEN -00 805D NEXTCHAR02 -00 806A DRAW -00 80A2 DRAW.DRAWOUTOFTHESCREEN -00 80A3 DRAW.DRAWONTHESCREEN -00 80CE DRAW.LINEDOWN -00 80E0 DRAW.CHECKDIRECTIONX -00 8104 DRAW.LINERIGHT -00 8111 DRAW.CHECKDIRECTIONFACTOR -00 8128 DRAW.SWAPXY -00 8148 DRAW.LINEPARAMETERSREADY -00 818B DRAW.DRAWLOOP -00 81AA DRAW.DINEGATIVE -00 81B7 DRAW.DRPLOT -00 81D1 DRAW.SWAPPEDXY -00 81E1 DRAW.CHECKPLOTY -00 81F8 DRAW.LINEGOESUP -00 8205 DRAW.CHECKPLOTX -00 821C DRAW.LINEGOESLEFT -00 8229 DRAW.PUTPIXELINDRAW -00 8246 DRAW.ENDOFDRAW -00 8253 DRAWJUMPPAD -00 8256 DRAWPLOT -00 8259 DRAWLEN -00 8268 DRAWCHECK -00 826E DRAWCHECK.YESTRACE -00 8273 DRAWCHECK.NOTRACE -00 8278 DRAWCHECK.CHECKCOLLISIONDRAW -00 82BA DRAWCHECK.STOPHITCHECKING -00 82BB CIRCLE -00 82EF CIRCLE.CIRCLELOOP -00 8311 CIRCLE.ELSE01 -00 8326 CIRCLE.ENDIF01 -00 8329 CIRCLE.ENDCIRCLELOOP -00 833C SPLOT8 -00 83BF WAITFORKEYRELEASE -00 83CA WAITFORKEYRELEASE.KEYISRELEASED -00 83CB CLEARSCREEN -00 83CE CLEARSCREEN.LOOPI1 -00 8432 PLACETANKS -00 8436 PLACETANKS.SKIP09 -00 844F PLACETANKS.STILLRANDOMIZE -00 8479 PLACETANKS.NOTHIGHERBYTE03 -00 848C PLACETANKS.STILLRANDOMIZE02 -00 849D PLACETANKS.NOTHIGHERBYTE02 -00 84AB PLACETANKS.NOTHIGHERBYTE01 -00 84BA PLACETANKS.CHECKTANK -00 84BE PLACETANKS.CHECKNEXTTANK -00 84DE PLACETANKS.UNEQUALTANKS -00 84E2 DRAWTANKS -00 84E9 DRAWNEXTTANK -00 84F9 DRAWTANKNR -00 8508 SKIPREMOVIGPM -00 851A ANGLETOLEFT01 -00 8521 CHARACTERALREADYKNOWN -00 8523 DRAWTANKNRX -00 8555 NOMISSILE -00 856C CLEARPM -00 857D ZEROESTOGO -00 8582 NOPLAYERMISSILE -00 8582 DONOTDRAWTANKNR -00 8583 DRAWMOUNTAINS -00 8591 DRAWMOUNTAINS.DRAWMOUNTAINSLOOP -00 85BD DRAWMOUNTAINS.DRAWMOUNTAINSPIXEL -00 85CB DRAWMOUNTAINS.DRAWMOUNTAINSPIXELLOOP -00 85F7 SOILDOWN2 -00 8622 SOILDOWN2.NEXTCOLUMN1 -00 8626 SOILDOWN2.NEXTPOINT1 -00 8636 SOILDOWN2.STILLNOTHING -00 863E SOILDOWN2.FOUNDPEEK1 -00 866F SOILDOWN2.MAINFALLOUT2 -00 86B0 SOILDOWN2.FALLOUTOFLINE -00 86E2 SOILDOWN2.THEREISPIXELHERE -00 86E2 SOILDOWN2.COLUMNISREADY -00 8750 SOILDOWN2.COPYHEIGHTS -00 878B CALCULATEMOUNTAINS -00 8791 CALCULATEMOUNTAINS.GETRANDOMY -00 87A6 CALCULATEMOUNTAINS.NEXTPART -00 87BC CALCULATEMOUNTAINS.CHANGINGDIRECTION -00 87C8 CALCULATEMOUNTAINS.ONEPART -00 87E3 CALCULATEMOUNTAINS.TOTOP -00 8805 CALCULATEMOUNTAINS.TOBOTTOM -00 8824 CALCULATEMOUNTAINS.SKIP01 -00 8845 CALCULATEMOUNTAINS.ENDDRAWING -00 8846 UNPLOT -00 8848 UNPLOT.UNPLOTAFTERX -00 886D UNPLOT.CHECKX -00 887C UNPLOT.MAKEUNPLOT -00 88C5 UNPLOT.CLEARUNPLOT -00 88CD UNPLOT.CONTINUEUNPLOT -00 88E5 UNPLOT.LETSCHECKOVERLAPPING -00 8908 UNPLOT.NOTTHESAMEPLOT -00 8908 UNPLOT.SKIPTHISPLOT -00 890B UNPLOT.ENDOFUNPLOT -00 890C PLOT -00 8918 PLOT.CHECKX02 -00 8924 PLOT.MAKEPLOT -00 8956 PLOT.ENDOFPLOT -00 8957 PLOT.CLEARPLOT -00 895F POINT -00 898B PLOTPOINTER -00 89D4 DRAWLINE -00 89E6 DRAWLINE.LOOPDRAW -00 89ED DRAWLINE.INTODRAW -00 89FE TYPECHAR -00 8A21 TYPECHAR.COPYCHAR -00 8A3B TYPECHAR.COPYMASK -00 8A7D TYPECHAR.MAKEMASK00 -00 8AE8 TYPECHAR.MASKOK00 -00 8AF1 TYPECHAR.EMPTYCHAR -00 8AFC TYPECHAR.CHARLOOPI -00 8B23 PUTCHAR4X4 -00 8B40 PUTCHAR4X4.NEXTLINE4X4 -00 8B54 PUTCHAR4X4.UPPERNIBBLE -00 8B5D PUTCHAR4X4.EMPTYPIXEL -00 8B5D PUTCHAR4X4.LOOP4X4CONTINUED -00 8BA0 PUTCHAR4X4FULL -00 8BBD PUTCHAR4X4FULL.NEXTLINE4X4FULL -00 8BD1 PUTCHAR4X4FULL.UPPERNIBBLEFULL -00 8BE3 PUTCHAR4X4FULL.EMPTYPIXELFULL -00 8BEF PUTCHAR4X4FULL.LOOP4X4CONTINUEDFULL -00 8C32 MAKELOWRESDISTANCES -00 8C34 MAKELOWRESDISTANCES.LOOP -00 8C4F ARTIFICIALINTELLIGENCE -00 8C5C AIROUTINES -00 8C6C MORON -00 8C8C SHOOTER -00 8CA9 SHOOTER.LEFTQUADRANT -00 8CA9 SHOOTER.CONTINUE -00 8CBB SHOOTER.FIRSTSHOOT -00 8CDF SHOOTER.TANKISONTHERIGHT -00 8CEA SHOOTER.FORCENOW -00 8D01 SHOOTER.ENDO -00 8D21 SHOOTER.LOOP -00 8D2B POOLSHARK -00 8D2B POOLSHARK.FIRSTSHOOT -00 8D38 POOLSHARK.LOOP01 -00 8D66 POOLSHARK.ENEMYONTHELEFT -00 8D7F POOLSHARK.LOWESTISLOWER -00 8D7F POOLSHARK.SKIPTHISPLAYER -00 8D97 POOLSHARK.FORCENOW -00 8DAE POOLSHARK.ENDO -00 8DBC POOLSHARK.LOOP -00 8DC6 POOLSHARK.ANGLETABLE -00 8DD6 PURCHASEAI -00 8DE3 PURCHASEAIROUTINES -00 8DF3 MORONPURCHASE -00 8DF4 TRYTOPURCHASEONEPIECE -00 8E3F TRYTOPURCHASEONEPIECE.NOTEXCEEDED -00 8E41 TRYTOPURCHASEONEPIECE.SORRYNOPURCHASE -00 8E42 SHOOTERPURCHASE -00 8E48 SHOOTERPURCHASE.LOOP -00 8E5B POOLSHARKPURCHASE -00 8E61 POOLSHARKPURCHASE.LOOP -00 8E74 PURCHASEMETABLE -00 8EA4 TANKCOLOURSTABLE -00 8EAA FONT4X4 -00 8F2A TANKFONT -00 932A TANKFONTEND -00 9800 PMGRAPH -00 A400 WEAPONFONT -00 A800 THEEND diff --git a/program.lst b/program.lst deleted file mode 100644 index b9d8548..0000000 --- a/program.lst +++ /dev/null @@ -1,1099 +0,0 @@ -mads 2.1.3 -Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/program.asm - 1 ; @com.wudsn.ide.asm.mainsourcefile=program.asm - 2 ;Atari 8-bit Scorched Earth source code - 3 ;--------------------------------------------------- - 4 ;by Tomasz 'pecus' Pecko and Pawel 'pirx' Kalinowski - 5 ;Warsaw 2000,2001,2002,2003,2009,2012,2013 - 6 ;you can contact us at pecus@poczta.fm or pirx@91.pl - 7 ;home page of this project is http://pecus.pigwa.net/pliki/Atari/scorch/ - 8 - 9 ;this source code was compiled under OMC65 crossassembler - 10 ;and on 2012-06-21 translated to mads - 11 ; - 12 ;game source code is split into 5+1 parts: - 13 ;program.asm is the main game code (with many assorted routines) - 14 ;grafproc.asm - graphics routines like line or circle - 15 ;textproc.asm - text routines like list of weapons and shop - 16 ;variables.asm - all non-zero page variables and constans - 17 ;display.asm - display lists and text screen definitions - 18 ;ai.asm - artificial stupidity of the computer players - 19 - 20 ;we were trying to use as much macros and pseudoops as possible - 21 ;they are defined in atari.hea and macro.hea files together with many - 22 ;atari constans. This way it shoud be relatively easy to - 23 ;port this code to e.g. C64 - 24 ; - 25 ;After those N years of working on this piece of code - 26 ;we are sure it would be much wiser to write it in C or - 27 ;Action!, but on the other hand it is so much fun to type 150 chars - 28 ;where you want to have y=ax+b :) - 29 ; - 30 ;originally most variables were in Polish, comments were sparse - 31 ;but we wanted to release this piece of code to public - 32 ;and due to being always short of time (to finish the game) - 33 ;we decided it must go in 'English' to let other people work on it - 34 - 35 .zpvar xdraw .word = $80 ;variable X for plot - 36 .zpvar ydraw .word;variable Y for plot (like in Atari Basic - Y=0 in upper right corner of the screen) - 37 .zpvar xbyte .word - 38 - 39 .zpvar ybyte .word - 40 .zpvar CharCode .byte - 41 .zpvar fontind .word - 42 .zpvar tanknr .byte - 43 .zpvar TankSequencePointer .byte - 44 .zpvar oldplot .word - 45 .zpvar xc .word - 46 .zpvar temp .word ;temporary word for the most embeded loops only - 47 .zpvar temp2 .word;same as above - 48 .zpvar tempXROLLER .word;same as above for XROLLER routine - 49 ;(used also in result display routine) - 50 .zpvar xtempDRAW .word ;same as above for XDRAW routine - 51 .zpvar ytempDRAW .word ;same as above for XDRAW routine - 52 ;--------------temps used in circle routine - 53 .zpvar xi .word ;X (word) in draw routine - 54 .zpvar fx .byte ;circle drawing variables - 55 .zpvar yi .word ;Y (word) in draw routine - 56 .zpvar fy .byte - 57 .zpvar xk .word - 58 .zpvar fs .byte - 59 .zpvar yc .byte ;ycircle - temporary for circle - 60 .zpvar dx .word - 61 .zpvar tempor2 .byte - 62 .zpvar dy .word - 63 .zpvar tempor3 .word - 64 .zpvar dd .word - 65 .zpvar di .word - 66 .zpvar dp .word - 67 .zpvar modify .word - 68 .zpvar weaponPointer .word - 69 - 70 ;------------------------------- - 71 ;constants - 72 = 0096 FlyDelay = 150 - 73 = 00C8 screenheight = 200 - 74 = 0028 screenBytes = 40 - 75 = 0140 screenwidth = screenBytes*8 - 76 = 0030 margin = 48 ;mountain drawing Y variable margin - 77 = 1010 display = $1010 ;kill dos with the casette recorder! - 78 = 0006 MaxPlayers = 6 - 79 - 80 icl 'lib/atari.hea' -Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/lib/atari.hea - 1 .enum @dmactl - 2 = 0000 blank = %00 - 3 = 0001 narrow = %01 - 4 = 0002 standard= %10 - 5 = 0003 wide = %11 - 6 = 0004 missiles= %100 - 7 = 0008 players = %1000 - 8 = 0010 lineX1 = %10000 - 9 = 0000 lineX2 = %00000 - 10 = 0020 dma = %100000 - 11 .ende - 12 - 13 = 003F scr48 = @dmactl(wide|dma|players|missiles|lineX1) ;screen 48b - 14 = 003E scr40 = @dmactl(standard|dma|players|missiles|lineX1) ;screen 40b - 15 = 003D scr32 = @dmactl(narrow|dma|players|missiles|lineX1) ;screen 32b - 16 - 17 .enum @pmcntl - 18 = 0001 missiles= %1 - 19 = 0002 players = %10 - 20 = 0004 trigs = %100 - 21 .ende - 22 - 23 .enum @gtictl - 24 = 0000 prior0 = %0 - 25 = 0001 prior1 = %1 - 26 = 0002 prior2 = %10 - 27 = 0004 prior4 = %100 - 28 = 0008 prior8 = %1000 - 29 = 0010 ply5 = %10000 ; Fifth Player Enable - 30 = 0020 mlc = %100000 ; Multiple Color Player Enable - 31 = 0040 mode9 = %01000000 - 32 = 0080 mode10 = %10000000 - 33 = 00C0 mode11 = %11000000 - 34 .ende - 35 - 36 - 37 * --------------------------------------------------------------------------------------------- - 38 * --- GTIA - 39 * --------------------------------------------------------------------------------------------- - 40 = D000 HPOSP0 = $D000 ; pozioma pozycja gracza 0 (Z) - 41 = D001 HPOSP1 = $D001 ; pozioma pozycja gracza 1 (Z) - 42 = D002 HPOSP2 = $D002 ; pozioma pozycja gracza 2 (Z) - 43 = D003 HPOSP3 = $D003 ; pozioma pozycja gracza 3 (Z) - 44 = D004 HPOSM0 = $D004 ; pozioma pozycja pocisku 0 (Z) - 45 = D005 HPOSM1 = $D005 ; pozioma pozycja pocisku 1 (Z) - 46 = D006 HPOSM2 = $D006 ; pozioma pozycja pocisku 2 (Z) - 47 = D007 HPOSM3 = $D007 ; pozioma pozycja pocisku 3 (Z) - 48 = D008 SIZEP0 = $D008 ; poziomy rozmiar gracza 0 (Z) - 49 = D009 SIZEP1 = $D009 ; poziomy rozmiar gracza 1 (Z) - 50 = D00A SIZEP2 = $D00A ; poziomy rozmiar gracza 2 (Z) - 51 = D00B SIZEP3 = $D00B ; poziomy rozmiar gracza 3 (Z) - 52 = D00C SIZEM = $D00C ; poziomy rozmiar pociskďż˝w (Z) - 53 = D00D GRAFP0 = $D00D ; rejestr grafiki gracza 0 (Z) - 54 = D00E GRAFP1 = $D00E ; rejestr grafiki gracza 1 (Z) - 55 = D00F GRAFP2 = $D00F ; rejestr grafiki gracza 2 (Z) - 56 = D010 GRAFP3 = $D010 ; rejestr grafiki gracza 3 (Z) - 57 = D011 GRAFM = $D011 ; rejestr grafiki pociskďż˝w (Z) - 58 = D012 COLPM0 = $D012 ; rejestr koloru gracza i pocisku 0 (Z) - 59 = D013 COLPM1 = $D013 ; rejestr koloru gracza i pocisku 1 (Z) - 60 = D014 COLPM2 = $D014 ; rejestr koloru gracza i pocisku 2 (Z) - 61 = D015 COLPM3 = $D015 ; rejestr koloru gracza i pocisku 3 (Z) - 62 = D016 COLPF0 = $D016 ; rejestr koloru pola gry 0 (Z) - 63 = D017 COLPF1 = $D017 ; rejestr koloru pola gry 1 (Z) - 64 = D018 COLPF2 = $D018 ; rejestr koloru pola gry 2 (Z) - 65 = D019 COLPF3 = $D019 ; rejestr koloru pola gry 3 (Z) - 66 = D01A COLBAK = $D01A ; rejestr koloru tďż˝a (Z) - 67 - 68 = D016 COLOR0 = colpf0 - 69 = D017 COLOR1 = colpf1 - 70 = D018 COLOR2 = colpf2 - 71 = D019 COLOR3 = colpf3 - 72 - 73 = D000 KOLM0PF = $D000 ; kolizja pocisku 0 z polem gry (O) - 74 = D001 KOLM1PF = $D001 ; kolizja pocisku 1 z polem gry (O) - 75 = D002 KOLM2PF = $D002 ; kolizja pocisku 2 z polem gry (O) - 76 = D003 KOLM3PF = $D003 ; kolizja pocisku 3 z polem gry (O) - 77 = D004 KOLP0PF = $D004 ; kolizja gracza 0 z polem gry (O) - 78 = D005 KOLP1PF = $D005 ; kolizja gracza 1 z polem gry (O) - 79 = D006 KOLP2PF = $D006 ; kolizja gracza 2 z polem gry (O) - 80 = D007 KOLP3PF = $D007 ; kolizja gracza 3 z polem gry (O) - 81 = D008 KOLM0P = $D008 ; kolizja pocisku 0 z graczem (O) - 82 = D009 KOLM1P = $D009 ; kolizja pocisku 1 z graczem (O) - 83 = D00A KOLM2P = $D00A ; kolizja pocisku 2 z graczem (O) - 84 = D00B KOLM3P = $D00B ; kolizja pocisku 3 z graczem (O) - 85 = D00C KOLP0P = $D00C ; kolizja gracza 0 z innym graczem (O) - 86 = D00D KOLP1P = $D00D ; kolizja gracza 1 z innym graczem (O) - 87 = D00E KOLP2P = $D00E ; kolizja gracza 2 z innym graczem (O) - 88 = D00F KOLP3P = $D00F ; kolizja gracza 3 z innym graczem (O) - 89 = D010 TRIG0 = $D010 ; stan przycisku joysticka 0 (O) - 90 = D011 TRIG1 = $D011 ; stan przycisku joysticka 1 (O) - 91 = D013 TRIG3 = $D013 ; znacznik do��czenia cartridge-a (O) - 92 = D014 PAL = $D014 ; znacznik systemu TV (O) - 93 - 94 = D01B GTICTL = $D01B ; rejestr kontroli ukďż˝adu GTIA - 95 = D01B GTIACTL = gtictl - 96 - 97 = D01C VDELAY = $D01C ; licznik opďż˝nienia pionowego P/MG - 98 = D01D PMCNTL = $D01D ; rejestr kontroli graczy i pociskďż˝w - 99 = D01E HITCLR = $D01E ; rejestr kasowania rejestrďż˝w kolizji - 100 = D01F CONSOL = $D01F ; rejestr stanu klawiszy konsoli Start (bit 0), Select (bit 1), Option (bit 2) - 101 - 102 * --------------------------------------------------------------------------------------------- - 103 * --- POKEY - 104 * --------------------------------------------------------------------------------------------- - 105 - 106 = 0010 IRQENS = $0010 ; rejestr-cieďż˝ IRQEN - 107 = 0011 IRQSTAT = $0011 ; rejestr-cieďż˝ IRQST - 108 - 109 = D204 AUDF3 = $D204 ; czďż˝stotliwo�� pracy generatora 3 (Z) - 110 = D208 AUDCTL = $D208 ; rejestr kontroli generatorďż˝w dďż˝wiďż˝ku (Z) - 111 = D209 STIMER = $D209 ; rejestr zerowania licznikďż˝w (Z) - 112 = D209 KBCODE = $D209 ; kod ostatnio naciďż˝niďż˝tego klawisza (O) - 113 = D20A SKSTRES = $D20A ; rejestr statusu z��cza szeregowego (Z) - 114 = D20A RANDOM = $D20A ; rejestr liczby losowej (O) - 115 = D20D SEROUT = $D20D ; szeregowy rejestr wyjďż˝ciowy (Z) - 116 = D20D SERIN = $D20D ; szeregowy rejestr wejďż˝ciowy (O) - 117 = D20E IRQEN = $D20E ; zezwolenie przerwaďż˝ IRQ (Z) - 118 = D20E IRQST = $D20E ; status przerwaďż˝ IRQ (O) - 119 = D20F SKCTL = $D20F ; rejestr kontroli z��cza szeregowego (Z) - 120 = D20F SKSTAT = $D20F ; rejestr statusu z��cza szeregowego (O) - 121 - 122 * --------------------------------------------------------------------------------------------- - 123 * --- PIA - 124 * --------------------------------------------------------------------------------------------- - 125 = D300 PORTA = $D300 ; port A ukďż˝adu PIA - 126 = D301 PORTB = $D301 ; port B ukďż˝adu PIA - 127 = D302 PACTL = $D302 ; rejestr kontroli portu A - 128 = D303 PBCTL = $D303 ; rejestr kontroli portu B - 129 - 130 * --------------------------------------------------------------------------------------------- - 131 * --- ANTIC - 132 * --------------------------------------------------------------------------------------------- - 133 = D400 DMACTL = $D400 ; rejestr kontroli dostďż˝pu do pamiďż˝ci - 134 = D401 CHRCTL = $D401 ; rejestr kontroli wyďż˝wietlania znakďż˝w - 135 = D402 DLPTR = $D402 ; adres programu ANTIC-a - 136 = D404 HSCROL = $D404 ; znacznik poziomego przesuwu obrazu - 137 = D405 VSCROL = $D405 ; znacznik pionowego przesuwu obrazu - 138 = D407 PMBASE = $D407 ; adres pamiďż˝ci graczy i pociskďż˝w - 139 = D409 CHBASE = $D409 ; adres zestawu znakďż˝w - 140 = D40A WSYNC = $D40A ; znacznik oczekiwania na synchronizacjďż˝ poziomďż˝ - 141 = D40B VCOUNT = $D40B ; licznik linii obrazu - 142 = D40C LPENH = $D40C ; poziome poďż˝oďż˝enie piďż˝ra ďż˝wietlengo - 143 = D40D LPENV = $D40D ; pionowe poďż˝oďż˝enie piďż˝ra ďż˝wietlnego - 144 = D40E NMIEN = $D40E ; rejestr zezwoleďż˝ na przerwania NMI - 145 = D40F NMIST = $D40F ; rejestr statusu przerwaďż˝ NMI - 146 - 147 ;------------------------------------- - 148 ;additional system variables - 149 ;------------------------------------- - 150 = 02C0 COLPM0S = $02C0 ;- - rejestr-cieďż˝ COLPM0 - 151 = 02C1 COLPM1S = $02C1 ;- - rejestr-cieďż˝ COLPM1 - 152 = 02C2 COLPM2S = $02C2 ;- - rejestr-cieďż˝ COLPM2 - 153 = 02C3 COLPM3S = $02C3 ;- - rejestr-cieďż˝ COLPM3 - 154 = 02C4 COLPF0S = $02C4 ;- - rejestr-cieďż˝ COLPF0 - 155 = 02C5 COLPF1S = $02C5 ;- - rejestr-cieďż˝ COLPF1 - 156 = 02C6 COLPF2S = $02C6 ;- - rejestr-cieďż˝ COLPF2 - 157 = 02C7 COLPF3S = $02C7 ;- - rejestr-cieďż˝ COLPF3 - 158 - 159 = 02C8 COLBAKS = $02C8 - 160 = 026F GTICTLS = $026F ;- - rejestr-cieďż˝ GTIACTL - 161 - 162 = 022F DMACTLS = $022F ;- - rejestr kontroli dostďż˝pu do pamiďż˝ci - cieďż˝ - 163 = 0230 DLPTRS = $0230 ;- - adres programu ANTIC-a - cieďż˝ - 164 = 02F4 CHBAS = $02F4 ;- - rejestr-cieďż˝ CHBASE - 165 = 02FC KBCODES = $02FC ;- - rejestr-cieďż˝ KBCODE - 166 - 167 = E45C SETVBV = $E45C - 168 = E462 XITVBV = $E462 - 169 = E45F SYSVBV = $E45F - 170 = 0012 RTCLOK = $0012 - 171 - 172 = 02E5 MEMTOP = $02E5 ;- - adres gďż˝rnej granicy wolnej pamiďż˝ci RAM - 173 = 02E7 MEMLO = $02E7 ;- - adres dolnej granicy wolnej pamiďż˝ci RAM - 174 - 175 = 0278 JSTICK0 = $0278 ;- - poďż˝oďż˝enie joysticka 0 - 176 = 0279 JSTICK1 = $0279 ;- JSTICK1 - poďż˝oďż˝enie joysticka 1 - 177 = 027A JSTICK2 = $027A ;- JSTICK2 - poďż˝oďż˝enie joysticka 0 - 178 = 027B JSTICK3 = $027B ;- JSTICK3 - poďż˝oďż˝enie joysticka 1 - 179 = 027C PTRIG0 = $027C ;- PTRIG0 - przycisk potencjometru 0 - 180 = 027D PTRIG1 = $027D ;- PTRIG1 - przycisk potencjometru 1 - 181 = 0284 TRIG0S = $0284 ;- TRIG0S - przycisk joysticka 0, rejestr-cieďż˝ TRIG0 - 182 = 0285 TRIG1S = $0285 ;- TRIG1S - przycisk joysticka 1, rejestr-cieďż˝ TRIG1 - 183 = 0286 TRIG2S = $0286 ;- TRIG2S - rejestr-cieďż˝ TRIG0 - 184 = 0287 TRIG3S = $0287 ;- TRIG3S - rejestr-cieďż˝ TRIG1 - 185 - 186 - 187 /* - 188 Rejestry OS w pamiďż˝ci RAM - 189 - 190 $08 - WARMST - znacznik gorďż˝cego startu - 191 $0E - APPMHI - najwyďż˝szy adres RAM zajďż˝ty przez program - 192 $10 - IRQENS - rejestr-cieďż˝ IRQEN - 193 $11 - IRQSTAT - rejestr-cieďż˝ IRQST - 194 $12 - RTCLOK - zegar czasu rzeczywistego - 195 $15 - BUFADR - adres bufora dla operacji dyskowych - 196 $17 - ICCOMT - rejestr przejďż˝ciowy kodu operacji I/O - 197 $20 - ZIOCB - zerostronicowy blok kontroli I/O - 198 $20 - ICHIDZ - indeks wpisu urzďż˝dzenia w HATABS - 199 $21 - ICDNOZ - numer urzďż˝dzenia - 200 $22 - ICCOMZ - kod operacji wejďż˝cia/wyjďż˝cia - 201 $23 - ICSTZ - status operacji wejďż˝cia/wyjďż˝cia - 202 $24 - ICBAZ - adres bufora danych dla operacji I/O - 203 $26 - ICPTZ - adres procedury obsďż˝ugi dla operacji - 204 $28 - ICBLZ - dďż˝ugo�� bufora danych dla operacji I/O - 205 $2A - ICAX1Z - rejestr pomocniczy ZIOCB - 206 $2B - ICAX2Z - rejestr pomocniczy ZIOCB - 207 $2C - ICAX3Z - rejestr pomocniczy ZIOCB - 208 $2D - ICAX4Z - rejestr pomocniczy ZIOCB - 209 $2E - ICAX5Z - rejestr pomocniczy ZIOCB - 210 $2F - ICAX6Z - rejestr pomocniczy ZIOCB - 211 $30 - STATUS - status aktualnej operacji SIO - 212 $31 - CHKSUM - suma kontrolna dla operacji SIO - 213 $32 - BUFR - adres bufora danych dla SIO - 214 $34 - BUFEN - adres koďż˝ca bufora danych dla SIO - 215 $36 - LTEMP - pomocniczy wektor odczytu listy liniowej - 216 $38 - BUFRFL - znacznik zapeďż˝nienia bufora SIO - 217 $39 - RECVND - znacznik koďż˝ca odczytu - 218 $3A - XMTDON - znacznik koďż˝ca transmisji - 219 $3B - CHKSNT - znacznik nadania sumy kontrolnej - 220 $3C - NOCKSM - znacznik braku sumy kontrolnej - 221 $3D - BPTR - licznik bufora magnetofonu - 222 $3E - GAPTYP - znacznik dďż˝ugoďż˝ci przerwy miďż˝dzy blokami - 223 $3F - FEOF - znacznik koďż˝ca zbioru - 224 $40 - FREQ - licznik dďż˝wiďż˝ku przy otwarciu magnetofonu - 225 $41 - IOSNDEN - znacznik dďż˝wiďż˝ku przy transmisji - 226 $42 - CRITIC - znacznik krytycznych czasowo operacji I/O - 227 $4A - ZCHAIN - rejestr nastďż˝pstwa listy liniowej - 228 $4C - DSTAT - status klawiatury i ekranu - 229 $50 - TEMP - pomocniczy rejestr przejďż˝ciowy - 230 $51 - HOLD1 - pomocniczy rejestr przejďż˝ciowy - 231 $52 - LMARGIN - lewy margines obrazu - 232 $53 - RMARGIN - prawy margines obrazu - 233 $54 - ROWCRS - pionowa pozycja kursora - 234 $55 - COLCRS - pozioma pozycja kursora - 235 $57 - DINDEX - numer trybu graficznego OS - 236 $58 - SAVMSC - adres pamiďż˝ci obrazu - 237 $5A - OLDROW - poprzednia pionowa pozycja kursora - 238 $5B - OLDCOL - poprzednia pozioma pozycja kursora - 239 $5D - OLDCHR - poprzedni znak na ekranie - 240 $5E - OLDADR - poprzedni adres znaku na ekranie - 241 $60 - FKDEFP - wektor tabeli definicji klawiszy F1-F4 - 242 $62 - PALNTS - wskaďż˝nik systemu TV - 243 $63 - LOGCOL - adres kursora w wierszu logicznym - 244 $64 - ADRESS - rejestr adresowy dla procedur edytora - 245 $66 - MLTTMP - pomocniczy rejestr przejďż˝ciowy - 246 $68 - SAVADR - pomocniczy rejestr adresowy - 247 $6A - RAMTOP - liczba stron pamiďż˝ci RAM - 248 $6B - BUFCNT - licznik bufora edytora - 249 $6C - BUFSTR - adres bufora dla edytora - 250 $6E - BITMSK - maska bitowa do wyďż˝wietlenia znaku - 251 $6F - SHFAMT - liczba przesuni�� punktu - 252 $70 - ROWAC - aktualny wiersz przy rysowaniu - 253 $72 - COLAC - aktualna kolumna przy rysowaniu - 254 $74 - ENDPT - znacznik koďż˝ca rysowanej linii - 255 $76 - DELTAR - przyrost pionowej pozycji kursora - 256 $77 - DELTAC - przyrost poziomej pozycji kursora - 257 $79 - KEYDEFP - wektor tabeli definicji klawiszy - 258 $7B - SWPFLG - znacznik kursora w trybach z oknem - 259 $7C - HOLDCH - przechowywanie wartoďż˝ci znaku - 260 $7D - INSDAT - rejestr pomocniczy edytora - 261 $7E - COUNTR - licznik pamiďż˝ci obrazu dla DOSCR i DRAW - 262 $0100 - STACK - stos mikroprocesora 6502 - 263 $0200 - DLIV - wektor przerwania programu ANTIC-a - 264 $0210 - VTIMR1 - wektor przerwania licznika 1 POKEY-a - 265 $0212 - VTIMR2 - wektor przerwania licznika 2 POKEY-a - 266 $0214 - VTIMR4 - wektor przerwania licznika 4 POKEY-a - 267 $0218 - TIMCNT1 - pierwszy licznik systemu - 268 $0226 - TIMVEC1 - wektor przerwania licznika TIMCNT1 - 269 $022A - TIMFLG3 - znacznik wyzerowania licznika TIMCNT3 - 270 $022F - DMACTLS - rejestr-cieďż˝ DMACTL - 271 $0230 - DLPTRS - rejestr-cieďż˝ DLPTR - 272 $0232 - SKCTLS - rejestr-cieďż˝ SKCTL - 273 $0233 - LCOUNT - licznik odczytu dla nowego urzďż˝dzenia - 274 $0234 - LPENHS - rejestr-cieďż˝ LPENH - 275 $0235 - LPENVS - rejestr-cieďż˝ LPENV - 276 $023A - CDEVIC - kod urzďż˝dzenia dla SIO - 277 $023B - CCMND - kod operacji dla SIO - 278 $023C - CAUX1 - pierwszy bajt pomocniczy dla SIO - 279 $023D - CAUX2 - drugi bajt pomocniczy dla SIO - 280 $023E - TEMP - tymczasowy rejestr odpowiedzi urzďż˝dzenia - 281 $023F - ERRFLG - znacznik b��du operacji SIO - 282 $0244 - COLDST - znacznik zimnego startu systemu - 283 $0245 - RECLEN - dďż˝ugo�� rekordu z nowego urzďż˝dzenia - 284 $0246 - DSKTIM - warto�� Timeout dla stacji dyskďż˝w - 285 $0247 - PDVMSK - maska obecnoďż˝ci nowych urzďż˝dzeďż˝ - 286 $0248 - PDVRS - rejestr-cieďż˝ PDVREG - 287 $024A - RELADR - adres procedury przemieszczalnej - 288 $024C - PPTMPA - rejestr przechowania zawartoďż˝ci akumulatora - 289 $024D - PPTMPX - rejestr przechowania zawartoďż˝ci rejestru X - 290 $026B - CHSPTR - wektor nieuďż˝ywanego zestawu znakďż˝w - 291 $026C - VSFLAG - znacznik przesuwu pionowego obrazu - 292 $026E - FINE - znacznik delikatnego przesuwu obrazu - 293 $026F - GTICTLS - rejestr-cieďż˝ GTIACTL - 294 $0270 - PADDL0 - rejestr-cieďż˝ POT0 - 295 $0278 - JSTICK0 - poďż˝oďż˝enie joysticka 0 - 296 $0279 - JSTICK1 - poďż˝oďż˝enie joysticka 1 - 297 $027A - JSTICK2 - poďż˝oďż˝enie joysticka 0 - 298 $027B - JSTICK3 - poďż˝oďż˝enie joysticka 1 - 299 $027C - PTRIG0 - przycisk potencjometru 0 - 300 $027D - PTRIG1 - przycisk potencjometru 1 - 301 $0284 - TRIG0S - przycisk joysticka 0, rejestr-cieďż˝ TRIG0 - 302 $0285 - TRIG1S - przycisk joysticka 1, rejestr-cieďż˝ TRIG1 - 303 $0286 - TRIG2S - rejestr-cieďż˝ TRIG0 - 304 $0287 - TRIG3S - rejestr-cieďż˝ TRIG1 - 305 $0288 - HIBYTE - indeks operacji nowego urzďż˝dzenia - 306 $0289 - WMODE - znacznik sposobu dostďż˝pu do magnetofonu - 307 $028A - BLIM - dďż˝ugo�� bufora magnetofonu - 308 $028E - NEWADR - adres procedury nowego urzďż˝dzenia - 309 $0290 - TXTROW - wiersz kursora w oknie tekstowym - 310 $0291 - TXTCOL - kolumna kursora w oknie tekstowym - 311 $0293 - TINDEX - tryb graficzny OS w oknie tekstowym - 312 $0294 - TXTMSC - adres pamiďż˝ci okna tekstowego - 313 $029C - CRETRY - liczba powtďż˝rzeďż˝ rozkazu operacji - 314 $029D - HOLD3 - pomocniczy rejestr przejďż˝ciowy - 315 $029E - SUBTMP - pomocniczy rejestr przejďż˝ciowy - 316 $02A0 - DMASK - maska punktďż˝w obrazu - 317 $02A2 - ESCFLG - znacznik klawisza ESC - 318 $02A3 - TABMAP - mapa pozycji tabulacji - 319 $02B2 - LOGMAP - mapa linii logicznych - 320 $02B6 - INVFLG - znacznik klawisza inverse video - 321 $02B7 - FILFLG - znacznik wypeďż˝niania obrazu - 322 $02B8 - TMPROW - tymczasowy rejestr pozycji kursora - 323 $02B9 - TMPCOL - tymczasowy rejestr pozycji kursora - 324 $02BB - SCRFLG - znacznik przesuwu obrazu - 325 $02BC - HOLD4 - pomocniczy rejestr przejďż˝ciowy - 326 $02BD - DRETRY - liczba powtďż˝rzeďż˝ wywoďż˝aďż˝ urzďż˝dzenia - 327 $02BE - SHFLOK - znacznik klawiszy SHIFT i CONTROL - 328 $02BF - BOTSCR - liczba wierszy tekstu - 329 $02C0 - COLPM0S - rejestr-cieďż˝ COLPM0 - 330 $02C1 - COLPM1S - rejestr-cieďż˝ COLPM1 - 331 $02C2 - COLPM2S - rejestr-cieďż˝ COLPM2 - 332 $02C3 - COLPM3S - rejestr-cieďż˝ COLPM3 - 333 $02C4 - COLPF0S - rejestr-cieďż˝ COLPF0 - 334 $02C5 - COLPF1S - rejestr-cieďż˝ COLPF1 ;gr.8 letters - 335 $02C6 - COLPF2S - rejestr-cieďż˝ COLPF2 ;gr.8 background - 336 $02C7 - COLPF3S - rejestr-cieďż˝ COLPF3 - 337 $02C8 - COLBAKS - rejestr-cieďż˝ COLBAK - 338 $02C9 - RUNADR - adres procedury nowego urzďż˝dzenia - 339 $02CB - HIUSED - adres koďż˝cowy procedury nowego urzďż˝dzenia - 340 $02CF - GBYTEA - adres procedury nowego urzďż˝dzenia - 341 $02D1 - LOADAD - adres wczytywania z nowego urzďż˝dzenia - 342 $02D3 - ZLOADA - pomocniczy rejestr adresu wczytywania - 343 $02D5 - DSCTLN - dďż˝ugo�� sektora dyskowego - 344 $02DB - NOCLIK - znacznik dďż˝wiďż˝ku klawiatury - 345 $02DE - PBPNT - licznik bufora drukarki - 346 $02DF - PBUFSZ - dďż˝ugo�� bufora drukarki - 347 $02E5 - MEMTOP - adres gďż˝rnej granicy wolnej pamiďż˝ci RAM - 348 $02E7 - MEMLO - adres dolnej granicy wolnej pamiďż˝ci RAM - 349 $02E9 - HNDLOD - znacznik relokowalnej procedury obsďż˝ugi I/O - 350 $02EA - DVSTAT - dodatkowy rejestr statusu urzďż˝dzenia - 351 $02EC - DVTMOT - dodatkowy rejestr Timeout urzďż˝dzenia - 352 $02ED - REVNUM - numer wersji nowego urzďż˝dzenia - 353 $02EE - CBAUD - prďż˝dko�� transmisji z magnetofonu - 354 $02F0 - CRSINH - znacznik widocznoďż˝ci kursora - 355 $02F3 - CHACT - rejestr-cieďż˝ CHRCTL - 356 $02F4 - CHBAS - rejestr-cieďż˝ CHBASE - 357 $02F5 - NEWROW - nowa pozycja pionowa kursora - 358 $02F6 - NEWCOL - nowa pozycja pozioma kursora - 359 $02F8 - ROWINC - zmiana pionowej pozycji kursora - 360 $02F9 - COLINC - zmiana poziomej pozycji kursora - 361 $02FA - CHAR - kod wewnďż˝trzny znaku - 362 $02FB - ATACHR - kod ATASCII znaku - 363 $02FC - KBCODES - rejestr-cieďż˝ KBCODE - 364 $02FD - FILDAT - numer koloru dla wypeďż˝niania - 365 $02FE - DSPFLG - znacznik wyďż˝wietlania znakďż˝w kontrolnych - 366 $02FF - SSFLAG - znacznik start/stop dla przesuwu obrazu - 367 $0300 - DDEVIC - kod identyfikacyjny urzďż˝dzenia - 368 $0301 - DUNIT - numer identyfikacyjny urzďż˝dzenia - 369 $0302 - DCMND - bajt rozkazu dla urzďż˝dzenia - 370 $0303 - DSTATS - status urzďż˝dzenia - 371 $0304 - DBUFA - adres bufora danych - 372 $0306 - DTIMLO - warto�� Timeout dla urzďż˝dzenia - 373 $0308 - DBYT - dďż˝ugo�� bufora danych - 374 $030A - DAUX1 - rejestr pomocniczy dla operacji I/O - 375 $030B - DAUX2 - rejestr pomocniczy dla operacji I/O - 376 $030C - INTIM1 - rejestr czasu przy odczycie z magnetofonu - 377 $030F - CASFLG - znacznik operacji z magnetofonem - 378 $0310 - INTIM2 - rejestr czasu przy odczycie z magnetofonu - 379 $0312 - TEMP1 - pomocniczy rejestr przejďż˝ciowy - 380 $0313 - TEMP2 - pomocniczy rejestr przejďż˝ciowy - 381 $0314 - PTIMOT - warto�� Timeout dla drukarki - 382 $0315 - TEMP3 - pomocniczy rejestr przejďż˝ciowy - 383 $0316 - SAVIO - rejestr przejďż˝ciowy dla operacji SIO - 384 $0317 - TIMFLG - znacznik upďż˝yniďż˝cia czasu Timeout - 385 $0318 - STACKP - rejestr wskaďż˝nika stosu dla SIO - 386 $0319 - TSTAT - przejďż˝ciowy rejestr statusu SIO - 387 $031A - HATABS - tabela wektorďż˝w procedur obsďż˝ugi - 388 $0340 - IOCB0 - blok kontroli I/O numer 0 - 389 $0350 - IOCB1 - blok kontroli I/O numer 1 - 390 $0360 - IOCB2 - blok kontroli I/O numer 2 - 391 $0370 - IOCB3 - blok kontroli I/O numer 3 - 392 $0380 - IOCB4 - blok kontroli I/O numer 4 - 393 $0390 - IOCB5 - blok kontroli I/O numer 5 - 394 $03A0 - IOCB6 - blok kontroli I/O numer 6 - 395 $03B0 - IOCB7 - blok kontroli I/O numer 7 - 396 $0340 - ICCHID - indeks wpisu urzďż˝dzenia w HATABS - 397 $0341 - ICDNO - numer urzďż˝dzenia - 398 $0342 - ICCMD - kod rozkazu operacji I/O - 399 $0343 - ICSTAT - status operacji I/O - 400 $0344 - ICBUFA - adres bufora danych dla operacji I/O - 401 $0346 - ICPUTB - adres procedury przesyďż˝ania danych - 402 $0348 - ICBUFL - dďż˝ugo�� bufora danych dla operacji I/O - 403 $034A - ICAX1 - rejestr pomocniczy dla operacji I/O - 404 $034B - ICAX2 - rejestr pomocniczy dla operacji I/O - 405 $034C - ICAX3 - rejestr pomocniczy dla operacji I/O - 406 $034D - ICAX4 - rejestr pomocniczy dla operacji I/O - 407 $034E - ICAX5 - rejestr pomocniczy dla operacji I/O - 408 $034F - ICAX6 - rejestr pomocniczy dla operacji I/O - 409 $03C0 - PRNBUF - bufor drukarki - 410 $03E8 - SUPERF - znacznik stosowany przy odczycie klawiatury - 411 $03E9 - CKEY - znacznik klawisza START przy zimnym starcie - 412 $03EC - DERRF - znacznik b��du przy otwieraniu edytora - 413 $03FB - CHLINK - rejestr elementďż˝w listy liniowej - 414 $03FD - CSCB - bajty kontroli szybkoďż˝ci magnetofonu - 415 $03FF - CRCB - bajt dďż˝ugoďż˝ci rekordu magnetofonowego - 416 $0400 - CASBUF - bufor magnetofonu - 417 $047F - CASBEN - koniec bufora magnetofonu - 418 $D000 - HPOSP0 - pozioma pozycja gracza 0 (Z) - 419 $D000 - KOLM0PF - kolizja pocisku 0 z polem gry (O) - 420 $D001 - HPOSP1 - pozioma pozycja gracza 1 (Z) - 421 $D001 - KOLM1PF - kolizja pocisku 1 z polem gry (O) - 422 $D002 - HPOSP2 - pozioma pozycja gracza 2 (Z) - 423 $D002 - KOLM2PF - kolizja pocisku 2 z polem gry (O) - 424 $D003 - HPOSP3 - pozioma pozycja gracza 3 (Z) - 425 $D003 - KOLM3PF - kolizja pocisku 3 z polem gry (O) - 426 $D004 - HPOSM0 - pozioma pozycja pocisku 0 (Z) - 427 $D004 - KOLP0PF - kolizja gracza 0 z polem gry (O) - 428 $D005 - HPOSM1 - pozioma pozycja pocisku 1 (Z) - 429 $D005 - KOLP1PF - kolizja gracza 1 z polem gry (O) - 430 $D006 - HPOSM2 - pozioma pozycja pocisku 2 (Z) - 431 $D006 - KOLP2PF - kolizja gracza 2 z polem gry (O) - 432 $D007 - HPOSM3 - pozioma pozycja pocisku 3 (Z) - 433 $D007 - KOLP3PF - kolizja gracza 3 z polem gry (O) - 434 $D008 - SIZEP0 - poziomy rozmiar gracza 0 (Z) - 435 $D008 - KOLM0P - kolizja pocisku 0 z graczem (O) - 436 $D009 - SIZEP1 - poziomy rozmiar gracza 1 (Z) - 437 $D009 - KOLM1P - kolizja pocisku 1 z graczem (O) - 438 $D00A - SIZEP2 - poziomy rozmiar gracza 2 (Z) - 439 $D00A - KOLM2P - kolizja pocisku 2 z graczem (O) - 440 $D00B - SIZEP3 - poziomy rozmiar gracza 3 (Z) - 441 $D00B - KOLM3P - kolizja pocisku 3 z graczem (O) - 442 $D00C - SIZEM - poziomy rozmiar pociskďż˝w (Z) - 443 $D00C - KOLP0P - kolizja gracza 0 z innym graczem (O) - 444 $D00D - GRAFP0 - rejestr grafiki gracza 0 (Z) - 445 $D00D - KOLP1P - kolizja gracza 1 z innym graczem (O) - 446 $D00E - GRAFP1 - rejestr grafiki gracza 1 (Z) - 447 $D00E - KOLP2P - kolizja gracza 2 z innym graczem (O) - 448 $D00F - GRAFP2 - rejestr grafiki gracza 2 (Z) - 449 $D00F - KOLP3P - kolizja gracza 3 z innym graczem (O) - 450 $D010 - GRAFP3 - rejestr grafiki gracza 3 (Z) - 451 $D010 - TRIG0 - stan przycisku joysticka 0 (O) - 452 $D011 - GRAFM - rejestr grafiki pociskďż˝w (Z) - 453 $D011 - TRIG1 - stan przycisku joysticka 1 (O) - 454 $D012 - COLPM0 - rejestr koloru gracza i pocisku 0 (Z) - 455 $D013 - COLPM1 - rejestr koloru gracza i pocisku 1 (Z) - 456 $D013 - TRIG3 - znacznik do��czenia cartridge'a (O) - 457 $D014 - COLPM2 - rejestr koloru gracza i pocisku 2 (Z) - 458 $D014 - PAL - znacznik systemu TV (O) - 459 $D015 - COLPM3 - rejestr koloru gracza i pocisku 3 (Z) - 460 $D016 - COLPF0 - rejestr koloru pola gry 0 (Z) - 461 $D017 - COLPF1 - rejestr koloru pola gry 1 (Z) - 462 $D018 - COLPF2 - rejestr koloru pola gry 2 (Z) - 463 $D019 - COLPF3 - rejestr koloru pola gry 3 (Z) - 464 $D01A - COLBAK - rejestr koloru tďż˝a (Z) - 465 $D01B - GTIACTL - rejestr kontroli ukďż˝adu GTIA - 466 $D01C - VDELAY - licznik opďż˝nienia pionowego P/MG - 467 $D01D - PMCNTL - rejestr kontroli graczy i pociskďż˝w - 468 $D01E - HITCLR - rejestr kasowania rejestrďż˝w kolizji - 469 $D01F - CONSOL - rejestr stanu klawiszy konsoli - 470 $D1FF - PDVREG - rejestr wyboru nowego urzďż˝dzenia - 471 $D200 - AUDF1 - czďż˝stotliwo�� pracy generatora 1 (Z) - 472 $D200 - POT0 - rejestr poďż˝oďż˝enia potencjometru 0 (O) - 473 $D201 - AUDC1 - rejestr kontroli dďż˝wiďż˝ku generatora 1 (Z) - 474 $D201 - POT1 - rejestr poďż˝oďż˝enia potencjometru 1 (O) - 475 $D202 - AUDF2 - czďż˝stotliwo�� pracy generatora 2 (Z) - 476 $D202 - POT2 - rejestr poďż˝oďż˝enia potencjometru 2 (O) - 477 $D203 - AUDC2 - rejestr kontroli dďż˝wiďż˝ku generatora 2 (Z) - 478 $D203 - POT3 - rejestr poďż˝oďż˝enia potencjometru 3 (O) - 479 $D204 - AUDF3 - czďż˝stotliwo�� pracy generatora 3 (Z) - 480 $D205 - AUDC3 - rejestr kontroli dďż˝wiďż˝ku generatora 3 (Z) - 481 $D206 - AUDF4 - czďż˝stotliwo�� pracy generatora 4 (Z) - 482 $D207 - AUDC4 - rejestr kontroli dďż˝wiďż˝ku generatora 4 (Z) - 483 $D208 - AUDCTL - rejestr kontroli generatorďż˝w dďż˝wiďż˝ku (Z) - 484 $D208 - POTST - status odczytu potencjometrďż˝w (O) - 485 $D209 - STIMER - rejestr zerowania licznikďż˝w (Z) - 486 $D209 - KBCODE - kod ostatnio naciďż˝niďż˝tego klawisza (O) - 487 $D20A - SKSTRES - reset statusu z��cza szeregowego (Z) - 488 $D20A - RANDOM - rejestr liczby losowej (O) - 489 $D20B - POTG0 - znacznik przetwornika analogowo-cyfrowego (Z) - 490 $D20D - SEROUT - szeregowy rejestr wyjďż˝ciowy (Z) - 491 $D20D - SERIN - szeregowy rejestr wejďż˝ciowy (O) - 492 $D20E - IRQEN - zezwolenia przerwaďż˝ IRQ (Z) - 493 $D20E - IRQST - status przerwaďż˝ IRQ (O) - 494 $D20F - SKCTL - rejestr kontroli z��cza szeregowego (Z) - 495 $D20F - SKSTAT - rejestr statusu z��cza szeregowego (O) - 496 $D300 - PORTA - port A ukďż˝adu PIA - 497 $D301 - PORTB - port B ukďż˝adu PIA - 498 $D302 - PACTL - rejestr kontroli portu A - 499 $D303 - PBCTL - rejestr kontroli portu B - 500 $D400 - DMACTL - rejestr kontroli dostďż˝pu do pamiďż˝ci - 501 $D401 - CHRCTL - rejestr kontroli wyďż˝wietlania znakďż˝w - 502 $D402 - DLPTR - adres programu ANTIC-a - 503 $D404 - HSCROL - znacznik poziomego przesuwu obrazu - 504 $D405 - VSCROL - znacznik pionowego przesuwu obrazu - 505 $D407 - PMBASE - adres pamiďż˝ci graczy i pociskďż˝w - 506 $D409 - CHBASE - adres zestawu znakďż˝w - 507 $D40A - WSYNC - znacznik oczekiwania na synchronizacjďż˝ poziomďż˝ - 508 $D40B - VCOUNT - licznik linii obrazu - 509 $D40C - LPENH - poziome poďż˝oďż˝enie piďż˝ra ďż˝wietlengo - 510 $D40D - LPENV - pionowe poďż˝oďż˝enie piďż˝ra ďż˝wietlnego - 511 $D40E - NMIEN - rejestr zezwoleďż˝ na przerwania NMI - 512 $D40F - NMIST - rejestr statusu przerwaďż˝ NMI - 513 */ - 513 - 513 = 0080 XDRAW - 513 = 0082 YDRAW - 513 = 0084 XBYTE - 513 = 0086 YBYTE - 513 = 0088 CHARCODE - 513 = 0089 FONTIND - 513 = 008B TANKNR - 513 = 008C TANKSEQUENCEPOINTER - 513 = 008D OLDPLOT - 513 = 008F XC - 513 = 0091 TEMP - 513 = 0093 TEMP2 - 513 = 0095 TEMPXROLLER - 513 = 0097 XTEMPDRAW - 513 = 0099 YTEMPDRAW - 513 = 009B XI - 513 = 009D FX - 513 = 009E YI - 513 = 00A0 FY - 513 = 00A1 XK - 513 = 00A3 FS - 513 = 00A4 YC - 513 = 00A5 DX - 513 = 00A7 TEMPOR2 - 513 = 00A8 DY - 513 = 00AA TEMPOR3 - 513 = 00AC DD - 513 = 00AE DI - 513 = 00B0 DP - 513 = 00B2 MODIFY - 513 = 00B4 WEAPONPOINTER - 81 icl 'lib/macro.hea' -Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/lib/macro.hea - 1 ;------------------------------------- - 2 .MACRO ROLW - 3 ROL :1 - 4 ROL :1+1 - 5 .ENDM - 6 ;------------------------------------- - 7 .MACRO ASLW - 8 ASL :1 - 9 ROL :1+1 - 10 .ENDM - 11 ;------------------------------------- - 12 .MACRO RORW - 13 ROR :1+1 - 14 ROR :1 - 15 .ENDM - 16 ;------------------------------------- - 17 .MACRO LSRW - 18 LSR :1+1 - 19 ROR :1 - 20 .ENDM - 21 - 22 ;------------------------------------- - 23 .MACRO VMAIN - 24 ; VMAIN #WORD,interrupt.vector - 25 ; interrupt.vector: - 26 ; 0 - VIMIRQ - 27 ; 1 - TIMCNT1 - 28 ; 2 - TIMCNT2 - 29 ; 3 - TIMCNT3 - 30 ; 4 - TIMCNT4 - 31 ; 5 - TIMCNT5 - 32 ; 6 - VVBLKI - 33 ; 7 - VVBLKD - 34 ; 8 - TIMVEC1 - 35 ; 9 - TIMVEC2 - 36 ; Initialises Vertical Blank Interrupts - 37 ; (works only with system interrupts ON) - 38 LDY # <:1 - 39 LDX # >:1 - 40 LDA #:2 - 41 JSR SETVBV - 42 .ENDM - 43 ;------------------------------------- - 44 .MACRO VDLI - 45 ; VDLI #WORD - 46 ; Initialises Display List Interrupts - 47 LDY # <:1 - 48 LDX # >:1 - 49 LDA #$C0 - 50 STY $0200 - 51 STX $0201 - 52 STA NMIEN - 53 .ENDM - 54 ;------------------------------------- - 55 .MACRO halt - 56 ?stop - 57 /* - 58 lda RANDOM - 59 and #$05 - 60 sta COLBAK - 61 */ - 62 jmp ?stop - 63 .ENDM - 64 ;------------------------------------- - 65 .MACRO KEY - 66 ; KEY - 67 ; waits for releasing and pressing "any key" - 68 PHA - 69 ?CK1 LDA SKSTAT - 70 AND #$04 - 71 BEQ ?CK1 - 72 ?CK LDA SKSTAT - 73 AND #$04 - 74 BNE ?CK - 75 PLA - 76 .ENDM - 77 ;------------------------------------- - 78 .MACRO WAIT - 79 ; WAIT - 80 ; waits one frame (1/50 s(PAL) or 1/60s(NTSC)) - 81 LDA VCOUNT - 82 STA WSYNC - 83 STA WSYNC - 84 STA WSYNC - 85 ?WA CMP VCOUNT - 86 BNE ?WA - 87 .ENDM - 88 ;------------------------------------- - 89 .macro negw - 90 ; negate the given word (0-a) - 91 ;------------------------------------- - 92 sec - 93 lda #$00 - 94 sbc :1 - 95 sta :1 - 96 lda #$00 - 97 sbc :1+1 - 98 sta :1+1 - 99 .endm - 100 ;------------------------------------- - 101 .macro randomize - 102 ;usage: randomize floor ceiling - 103 ;returns (in A) a random .byte between "floor" and "ceiling" - 104 ?rand - 105 lda random - 106 cmp #:1 ;floor - 107 bcc ?rand - 108 cmp #:2+1 ;ceiling - 109 bcs ?rand - 110 .endm - 111 ;------------------------------------- - 112 .macro phx - 113 txa - 114 pha - 115 .endm - 116 ;------------------------------------- - 117 .macro phy - 118 tya - 119 pha - 120 .endm - 121 ;------------------------------------- - 122 .macro plx - 123 pla - 124 tax - 125 .endm - 126 ;------------------------------------- - 127 .macro ply - 128 pla - 129 tay - 130 .endm - 131 ;------------------------------------- - 132 .macro pause - 133 ;waits :1 number (byte) of frames - 134 ldx #:1 - 135 ?PAUSELOOP - 136 wait - 137 dex - 138 bne ?PAUSELOOP - 139 .ENDM - 140 - 82 - 83 icl 'artwork/HIMARS14.asm' -Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/artwork/HIMARS14.asm - 1 /***************************************/ - 2 /* Use MADS http://mads.atari8.info/ */ - 3 /* Mode: DLI (char mode) */ - 4 /***************************************/ - 5 - 6 ;icl "HIMARS14.h" - 7 ;ICL '../lib/atari.hea' - 8 - 9 org $f0 - 10 - 11 = 00F0 fcnt .ds 2 - 12 = 00F2 fadr .ds 2 - 13 = 00F4 fhlp .ds 2 - 14 = 00F6 cloc .ds 1 - 15 = 00F7 regA .ds 1 - 16 = 00F8 regX .ds 1 - 17 = 00F9 regY .ds 1 - 18 - 19 = 0028 WIDTH = 40 - 20 = 001E HEIGHT = 30 - 21 - 22 ; --- BASIC switch OFF - 23 org $2000\ mva #$ff portb\ rts\ ini $2000 - 23 ORG $2000 - 23 FFFF> 2000-2005> A9 FF + MVA #$FF PORTB - 23 2005 60 RTS - 23 02E2-02E3> 00 20 INI $2000 - 24 - 25 ; --- MAIN PROGRAM - 26 org $2000 - 27 2000-2482> F0 ant dta $F0 - 28 2001 42 23 20 02 02 02 + dta $42,a(scr),$02,$02,$02,$02,$02,$02,$02,$02,$02,$82,$02,$02,$02,$02,$82 - 29 2013 02 02 02 82 82 82 + dta $02,$02,$02,$82,$82,$82,$02,$82,$02,$02,$02,$82,$70 - 30 2020 41 00 20 dta $41,a(ant) - 31 - 32 2023 00 00 00 00 00 00 + scr ins "HIMARS14.scr" - 33 - 34 = 2483 .ds 2*40 - 35 - 36 24D3 .ALIGN $0400 - 37 2800-396E> 00 00 00 00 + fnt ins "HIMARS14.fnt" - 38 - 39 ift USESPRITES - 40 .ALIGN $0800 - 41 pmg .ds $0300 - 42 ift FADECHR = 0 - 43 SPRITES - 44 els - 45 .ds $500 - 46 eif - 47 eif - 48 - 49 3800 main - 50 ; --- init PMG - 51 - 52 ift USESPRITES - 53 mva >pmg pmbase ;missiles and players data address - 54 mva #$03 pmcntl ;enable players and missiles - 55 eif - 56 - 57 3800 A5 14 C5 14 F0 FC lda:cmp:req $14 ;wait 1 frame - 58 - 59 3806 78 sei ;stop IRQ interrupts - 60 3807 A9 00 8D 0E D4 mva #$00 nmien ;stop NMI interrupts - 61 380C 8D 00 D4 sta dmactl - 62 380F A9 FE 8D 01 D3 mva #$fe portb ;switch off ROM to get 16k more ram - 63 - 64 3814 A9 E1 8D FA FF A9 + mwa #NMI $fffa ;new NMI handler - 65 - 66 381E A9 C0 8D 0E D4 mva #$c0 nmien ;switch on NMI+DLI again - 67 - 68 ift CHANGES ;if label CHANGES defined - 69 - 70 3823 AD 10 D0 _lp lda trig0 ; FIRE #0 - 71 3826 F0 13 beq stop - 72 - 73 3828 AD 11 D0 lda trig1 ; FIRE #1 - 74 382B F0 0E beq stop - 75 - 76 382D AD 1F D0 lda consol ; START - 77 3830 29 01 and #1 - 78 3832 F0 07 beq stop - 79 - 80 3834 AD 0F D2 lda skctl - 81 3837 29 04 and #$04 - 82 3839 D0 E8 bne _lp ;wait to press any key; here you can put any own routine - 83 - 84 els - 85 - 86 null jmp DLI.dli1 ;CPU is busy here, so no more routines allowed - 87 - 88 eif - 89 - 90 - 91 383B stop - 92 383B A9 00 8D 1D D0 mva #$00 pmcntl ;PMG disabled - 93 3840 AA tax - 94 3841 9D 00 D0 E8 D0 FA sta:rne hposp0,x+ - 95 - 96 3847 A9 FF 8D 01 D3 mva #$ff portb ;ROM switch on - 97 384C A9 40 8D 0E D4 mva #$40 nmien ;only NMI interrupts, DLI disabled - 98 3851 58 cli ;IRQ enabled - 99 - 100 3852 60 rts ;return to ... DOS - 101 - 102 ; --- DLI PROGRAM - 103 - 104 3853 .local DLI - 105 - 106 = 3853 ?old_dli = * - 107 - 108 ift !CHANGES - 109 - 110 dli1 lda trig0 ; FIRE #0 - 111 beq stop - 112 - 113 lda trig1 ; FIRE #1 - 114 beq stop - 115 - 116 lda consol ; START - 117 and #1 - 118 beq stop - 119 - 120 lda skctl - 121 and #$04 - 122 beq stop - 123 - 124 lda vcount - 125 cmp #$02 - 126 bne dli1 - 127 - 128 :3 sta wsync - 129 - 130 DLINEW dli10 - 131 - 132 eif - 133 - 134 3853 dli_start - 135 - 136 3853 dli10 - 137 3853 85 F7 sta regA - 138 - 139 3855 A9 04 c4 lda #$04 - 140 3857 8D 0A D4 sta wsync ;line=8 - 141 385A 8D 16 D0 sta color0 - 142 385D 8D 1B D0 sta gtictl - 143 3860 DLINEW DLI.dli2 1 0 0 -Macro: DLINEW [Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/artwork/HIMARS14.asm] - 1 3860 A9 68 8D E7 38 mva fnt+$400*$01 - 148 386C 8D 0A D4 sta wsync ;line=96 - 149 386F 8D 09 D4 sta chbase - 150 3872 DLINEW dli3 1 0 0 -Macro: DLINEW [Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/artwork/HIMARS14.asm] - 1 3872 A9 7A 8D E7 38 mva fnt+$400*$02 - 155 387E 8D 0A D4 sta wsync ;line=136 - 156 3881 8D 09 D4 sta chbase - 157 3884 DLINEW dli4 1 0 0 -Macro: DLINEW [Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/artwork/HIMARS14.asm] - 1 3884 A9 8C 8D E7 38 mva fnt+$400*$01 - 162 3890 8D 0A D4 sta wsync ;line=168 - 163 3893 8D 09 D4 sta chbase - 164 3896 DLINEW dli5 1 0 0 -Macro: DLINEW [Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/artwork/HIMARS14.asm] - 1 3896 A9 9E 8D E7 38 mva fnt+$400*$02 - 169 38A2 8D 0A D4 sta wsync ;line=176 - 170 38A5 8D 09 D4 sta chbase - 171 38A8 DLINEW dli6 1 0 0 -Macro: DLINEW [Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/artwork/HIMARS14.asm] - 1 38A8 A9 B0 8D E7 38 mva fnt+$400*$03 - 176 38B4 8D 0A D4 sta wsync ;line=184 - 177 38B7 8D 09 D4 sta chbase - 178 38BA DLINEW dli7 1 0 0 -Macro: DLINEW [Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/artwork/HIMARS14.asm] - 1 38BA A9 C2 8D E7 38 mva fnt+$400*$00 - 183 38C6 8D 0A D4 sta wsync ;line=200 - 184 38C9 8D 09 D4 sta chbase - 185 38CC DLINEW dli11 1 0 0 -Macro: DLINEW [Source: /home/pkalinowski/Seafile/atari/projects/scorch_src/artwork/HIMARS14.asm] - 1 38CC A9 D4 8D E7 38 mva fnt+$400*$00 - 232 3905 8D 09 D4 sta chbase - 233 3908 A9 00 c0 lda #$00 - 234 390A 8D 1A D0 sta colbak - 235 390D A9 02 lda #$02 - 236 390F 8D 01 D4 sta chrctl - 237 3912 A9 01 lda #$01 - 238 3914 8D 1B D0 sta gtictl - 239 3917 A9 0C c1 lda #$0C - 240 3919 8D 17 D0 sta color1 - 241 391C A9 02 c2 lda #$02 - 242 391E 8D 18 D0 sta color2 - 243 3921 A9 0E c3 lda #$0E - 244 3923 8D 19 D0 sta color3 - 245 3926 A9 00 x0 lda #$00 - 246 3928 8D 00 D0 sta hposp0 - 247 392B 8D 01 D0 sta hposp1 - 248 392E 8D 02 D0 sta hposp2 - 249 3931 8D 03 D0 sta hposp3 - 250 3934 8D 04 D0 sta hposm0 - 251 3937 8D 05 D0 sta hposm1 - 252 393A 8D 06 D0 sta hposm2 - 253 393D 8D 07 D0 sta hposm3 - 254 3940 8D 08 D0 sta sizep0 - 255 3943 8D 09 D0 sta sizep1 - 256 3946 8D 0A D0 sta sizep2 - 257 3949 8D 0B D0 sta sizep3 - 258 394C 8D 0C D0 sta sizem - 259 394F 8D 12 D0 sta colpm0 - 260 3952 8D 13 D0 sta colpm1 - 261 3955 8D 14 D0 sta colpm2 - 262 3958 8D 15 D0 sta colpm3 - 263 395B 8D 16 D0 sta color0 - 264 - 265 395E A9 53 8D E7 38 A9 + mwa #DLI.dli_start dliv ;set the first address of DLI interrupt - 266 - 267 ;this area is for yours routines - 268 - 269 3968 quit - 270 3968 A5 F7 lda regA - 271 396A A6 F8 ldx regX - 272 396C A4 F9 ldy regY - 273 396E 40 rti - 274 - 275 .endp - 276 - 277 ; --- - 278 02E2-02E3> 00 38 ini main - 279 ; --- - 280 diff --git a/program.xex b/program.xex deleted file mode 100644 index d4babe1..0000000 Binary files a/program.xex and /dev/null differ