mirror of
https://github.com/pkali/scorch_src.git
synced 2026-05-20 22:34:21 +02:00
libs added
This commit is contained in:
+483
@@ -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
|
||||
*/
|
||||
+140
@@ -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
|
||||
|
||||
+3
-3
@@ -76,8 +76,8 @@ margin=48 ;mountain drawing Y variable margin
|
||||
display=$1010 ;kill dos with the casette recorder!
|
||||
MaxPlayers = 6
|
||||
|
||||
icl '../lib/atari.hea'
|
||||
icl '../lib/macro.hea'
|
||||
icl 'lib/atari.hea'
|
||||
icl 'lib/macro.hea'
|
||||
|
||||
;Game loading address
|
||||
ORG $3010 ;two hex thousands for screen
|
||||
@@ -1141,4 +1141,4 @@ TheEnd
|
||||
.endif
|
||||
|
||||
|
||||
run START
|
||||
run START
|
||||
|
||||
Reference in New Issue
Block a user