diff --git a/README.md b/README.md index 5583c40..95fce0b 100644 --- a/README.md +++ b/README.md @@ -1 +1,170 @@ -# scorch +# Atari 8-bit Scorched Earth source code +--------------------------------------------------- +by Tomasz 'pecus' Pecko and Pawel 'pirx' Kalinowski + +Warsaw, Miami 2000, 2001, 2002, 2003, 2009, 2012, 2013, 2022 + +you can contact us at pecus@poczta.fm or pirx@5oft.pl +home page of this project is https://github.com/pkali/scorch_src + +this source code was compiled under OMC65 crossassembler +(https://github.com/pkali/omc65) +and on 2012-06-21 translated to mads + +game source code is split into 5+1 parts: +- scorch.asm is the main game code (with many assorted routines) +- grafproc.asm - graphics routines like line or circle +- textproc.asm - text routines like list of weapons and shop +- variables.asm - all non-zero page variables and constants +- display.asm - display lists and text screen definitions +- ai.asm - artificial stupidity of computer opponents + +we were trying to use as much macros and pseudo-ops as possible +they are defined in atari.hea and macro.hea files together with many +atari constants. This way it should be relatively easy to +port this code to e.g. C64 + +After those N years of working on this piece of code +we are sure it would be much wiser to write it in C, Action! +or MadPascal but on the other hand it is so much fun to type 150 chars +where you want to have y=ax+b :) + +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/energy (to finish the game) +we decided it must go in 'English' to let other people work on it + +## Changes: + +Build 125 +2022-01-23 +- included splash screen by KAZ + + +Build 124 +2013-12-21 +- removed large chunk of redundant 4x4 print code and table generation code, + over 1kb gained. +- plot and point routines speeded up by ~20 cycles :P (and shortened by few bytes as well) +- fixed bug 011. High flying bullets sometimes cause brief screen garbage - like a DL damaged + fixed by plotpointer (the top line) changed from HSCROLL based to regular $f line with plot +- screen memory moved to low area ($1010), making the game start at $3010 and easier + to be loaded. Other minor memory layout modifications. + +Build 123 +2013-12-10 +- fixed bug 013: sometimes demo mode does not work (it stops on results display) +- fixed bug 012: (newly introduced) Death explosions are offset right and possibly up. +- prepared the game for various screen width. The only problem is memory layout. + Basically it is impossible to make contiguous wide screen of more than 170 lines. + Changing the screen to non-contiguous would require rewrite of all character + manipulating routines. +- fixed bug 014: FunkyBomb shoots with too high angle, + funkyBomb angle changed from -8..+8 to -16..+16 +- speeded up explosions by drawing only odd circles. Not bad visually and 2x faster. + +Build 122 +2013-11-17 +- tank expend 1 energy with each shoot to avoid endless shooting loops +- small visual glitch with background colour fixed +- death messages "defensive texts" in source do not stay on screen after some explosions + +Build 121 +2013-11-10 +- Poolshark and Shooter can buy weapons +- Purchase screen moved to the beginning of the round + +Build 120 +2013-11-09 +SillyVenture 2K13 joint effort to bring artificial intelligence into life: +- Shooter and Poolshark shooting programmed +- several small bugfixes and improvements as proposed by SillyVenture crowd + +Build 119 +2012-06-17 +Scorch sources translated to MADS with the sweet repl.sh script. + +MISSING UPDATE INFORMATION... POSSIBLY NOTHING IMPORTANT HAPPENED HERE. + +Build 115 +2009-08-25 +- fixed bug 001 (lack of explosions on the empty ground) +- fixed bug 003 (wrapping death's head explosions) +- fixed plot (faster explosions) +- fukk, just 6 years and we are back!!! This game is pretty addictive :) +TO DO: +- send our wives and kids away much more often :)))) + +Build 114 +2003-08-22 +- Results after each round are displayed in the right + sequence, i.e. the best one is on the top +- during second and following rounds shooting sequence + is such that the worst tank shoots first +The above changes does not look terrific, but there was +a lot of thinking to do it correctly. What is the most +important the overall game feeling improved a lot! + +program.s65 + * added routine SortSequence +textproc.s65 + * changed routine DisplayResults to show + round results in correct order + +Build 113 +2003-08-17 +- AI Opponents move barrels to the right position + before firing a bullet. +- Purchase screen is not displayed for AI opponents. +- There is 2 sec delay after displaying + "Deffensive" text i.e. text before death + +program.s65 + * added routine MoveBarrelToNewPosition + which rotates barrel of the tank until + it sits at the right (newly randomized) angle +textproc.s65 + * added routine PurchaseAI + it is a framework for all AI purchases +SHORTSYS.S65 + * new macro PAUSE (waits given number of frames) + + +Bulid 112 +2003-08-15 + +First attempts to create a framework for intelligent +opponents (AI). Right now there is only one level +of "intelligence" - Moron. Moron shoots at random angle +with random force. + +program.s65 + * routine Round checks the Skill level + and if it is not human branches to + ArtificialIntelligence routine. + * new routines: + - ArtificialIntelligence + - RandomizeForce + - RandomizeAngle + +TO DO: + * nice rotating barrel of AI tank + * AI weapon purchase and usage + * AI better than Moronic... (but how...) + * tanks' shooting seqence shoud be from + weakest to the strongest, not random + +Bulid 111 +2003-07-27 + +program.s65: + * added sequentional shooting + (not necessarily tank no. 1 shoots first) + * added routine "RandomizeSequence" that is called + before each round + * initial angle of the tank's barrel is randomized + (was always 45 degrees right) +variables.s65 + * added table "TankSequence" +grafproc.s65 + * shorter delay during Flight \ No newline at end of file diff --git a/artwork/HIMARS14.asm b/artwork/HIMARS14.asm index d3896be..fdbccf7 100644 --- a/artwork/HIMARS14.asm +++ b/artwork/HIMARS14.asm @@ -1,3 +1,4 @@ +; @com.wudsn.ide.asm.mainsourcefile=scorch.asm /***************************************/ /* Use MADS http://mads.atari8.info/ */ /* Mode: DLI (char mode) */ diff --git a/changes.txt b/changes.txt deleted file mode 100644 index 9772343..0000000 --- a/changes.txt +++ /dev/null @@ -1,134 +0,0 @@ -Changes: - -Build 125 -2022-01-23 -- included splash screen by KAZ - - -Build 124 -2013-12-21 -- removed large chunk of redundant 4x4 print code and table generation code, - over 1kb gained. -- plot and point routines speeded up by ~20 cycles :P (and shortened by few bytes as well) -- fixed bug 011. High flying bullets sometimes cause brief screen garbage - like a DL damaged - fixed by plotpointer (the top line) changed from HSCROLL based to regular $f line with plot -- screen memory moved to low area ($1010), making the game start at $3010 and easier - to be loaded. Other minor memory layout modifications. - -Build 123 -2013-12-10 -- fixed bug 013: sometimes demo mode does not work (it stops on results display) -- fixed bug 012: (newly introduced) Death explosions are offset right and possibly up. -- prepared the game for various screen width. The only problem is memory layout. - Basically it is impossible to make contiguous wide screen of more than 170 lines. - Changing the screen to non-contiguous would require rewrite of all character - manipulating routines. -- fixed bug 014: FunkyBomb shoots with too high angle, - funkyBomb angle changed from -8..+8 to -16..+16 -- speeded up explosions by drawing only odd circles. Not bad visually and 2x faster. - -Build 122 -2013-11-17 -- tank expend 1 energy with each shoot to avoid endless shooting loops -- small visual glitch with background colour fixed -- death messages "defensive texts" in source do not stay on screen after some explosions - -Build 121 -2013-11-10 -- Poolshark and Shooter can buy weapons -- Purchase screen moved to the beginning of the round - -Build 120 -2013-11-09 -SillyVenture 2K13 joint effort to bring artificial intelligence into life: -- Shooter and Poolshark shooting programmed -- several small bugfixes and improvements as proposed by SillyVenture crowd - -Build 119 -2012-06-17 -Scorch sources translated to MADS with the sweet repl.sh script. - -MISSING UPDATE INFORMATION... POSSIBLY NOTHING IMPORTANT HAPPENED HERE. - -Build 115 -2009-08-25 -- fixed bug 001 (lack of explosions on the empty ground) -- fixed bug 003 (wrapping death's head explosions) -- fixed plot (faster explosions) -- fukk, just 6 years and we are back!!! This game is pretty addictive :) -TO DO: -- send our wives and kids away much more often :)))) - -Build 114 -2003-08-22 -- Results after each round are displayed in the right - sequence, i.e. the best one is on the top -- during second and following rounds shooting sequence - is such that the worst tank shoots first -The above changes does not look terrific, but there was -a lot of thinking to do it correctly. What is the most -important the overall game feeling improved a lot! - -program.s65 - * added routine SortSequence -textproc.s65 - * changed routine DisplayResults to show - round results in correct order - -Build 113 -2003-08-17 -- AI Opponents move barrels to the right position - before firing a bullet. -- Purchase screen is not displayed for AI opponents. -- There is 2 sec delay after displaying - "Deffensive" text i.e. text before death - -program.s65 - * added routine MoveBarrelToNewPosition - which rotates barrel of the tank until - it sits at the right (newly randomized) angle -textproc.s65 - * added routine PurchaseAI - it is a framework for all AI purchases -SHORTSYS.S65 - * new macro PAUSE (waits given number of frames) - - -Bulid 112 -2003-08-15 - -First attempts to create a framework for intelligent -opponents (AI). Right now there is only one level -of "intelligence" - Moron. Moron shoots at random angle -with random force. - -program.s65 - * routine Round checks the Skill level - and if it is not human branches to - ArtificialIntelligence routine. - * new routines: - - ArtificialIntelligence - - RandomizeForce - - RandomizeAngle - -TO DO: - * nice rotating barrel of AI tank - * AI weapon purchase and usage - * AI better than Moronic... (but how...) - * tanks' shooting seqence shoud be from - weakest to the strongest, not random - -Bulid 111 -2003-07-27 - -program.s65: - * added sequentional shooting - (not necessarily tank no. 1 shoots first) - * added routine "RandomizeSequence" that is called - before each round - * initial angle of the tank's barrel is randomized - (was always 45 degrees right) -variables.s65 - * added table "TankSequence" -grafproc.s65 - * shorter delay during Flight \ No newline at end of file diff --git a/display.asm b/display.asm index 7ba516b..a7bd9d0 100644 --- a/display.asm +++ b/display.asm @@ -1,4 +1,4 @@ -; @com.wudsn.ide.asm.mainsourcefile=program.asm +; @com.wudsn.ide.asm.mainsourcefile=scorch.asm .IF *>0 ;this is a trick that prevents compiling this file alone diff --git a/grafproc.asm b/grafproc.asm index 4742c4f..7ebb578 100644 --- a/grafproc.asm +++ b/grafproc.asm @@ -1,4 +1,4 @@ -; @com.wudsn.ide.asm.mainsourcefile=program.asm +; @com.wudsn.ide.asm.mainsourcefile=scorch.asm .IF *>0 ;this is a trick that prevents compiling this file alone @@ -239,7 +239,7 @@ DrawLen DrawCheck .proc ; lda SmokeTracerFlag -; bne yestrace ; jakie to głupie.... +; bne yestrace ; jakie to gďż˝upie.... lda tracerflag ora SmokeTracerFlag yestrace diff --git a/lib/atari.hea b/lib/atari.hea index 9258fe5..35f0629 100644 --- a/lib/atari.hea +++ b/lib/atari.hea @@ -1,8 +1,38 @@ -/* -scr48 = %00111111 ;screen 48b -scr40 = %00111110 ;screen 40b -scr32 = %00111101 ;screen 32b -*/ +.enum @dmactl + blank = %00 + narrow = %01 + standard= %10 + wide = %11 + missiles= %100 + players = %1000 + lineX1 = %10000 + lineX2 = %00000 + dma = %100000 +.ende + +scr48 = @dmactl(wide|dma|players|missiles|lineX1) ;screen 48b +scr40 = @dmactl(standard|dma|players|missiles|lineX1) ;screen 40b +scr32 = @dmactl(narrow|dma|players|missiles|lineX1) ;screen 32b + +.enum @pmcntl + missiles= %1 + players = %10 + trigs = %100 +.ende + +.enum @gtictl + prior0 = %0 + prior1 = %1 + prior2 = %10 + prior4 = %100 + prior8 = %1000 + ply5 = %10000 ; Fifth Player Enable + mlc = %100000 ; Multiple Color Player Enable + mode9 = %01000000 + mode10 = %10000000 + mode11 = %11000000 +.ende + * --------------------------------------------------------------------------------------------- * --- GTIA @@ -19,12 +49,12 @@ 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) +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) +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) @@ -33,7 +63,7 @@ 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) +COLBAK = $D01A ; rejestr koloru tďż˝a (Z) COLOR0 = colpf0 COLOR1 = colpf1 @@ -58,120 +88,120 @@ 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) +TRIG3 = $D013 ; znacznik do��czenia cartridge-a (O) PAL = $D014 ; znacznik systemu TV (O) -GTICTL = $D01B ; rejestr kontroli układu GTIA +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 +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 +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) +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) +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 +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 +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ą +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 +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 +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 +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 +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 +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 +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 +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 +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 + $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 + $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 + $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 + $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 @@ -181,54 +211,54 @@ Rejestry OS w pami $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 + $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 + $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 + $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 + $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 + $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 + $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 + $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 + $66 - MLTTMP - pomocniczy rejestr przejďż˝ciowy $68 - SAVADR - pomocniczy rejestr adresowy - $6A - RAMTOP - liczba stron pamięci RAM + $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 + $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 + $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 + $7C - HOLDCH - przechowywanie wartoďż˝ci znaku $7D - INSDAT - rejestr pomocniczy edytora - $7E - COUNTR - licznik pamięci obrazu dla DOSCR i DRAW + $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 @@ -237,124 +267,124 @@ $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 +$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 +$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 +$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 +$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 +$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 +$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 +$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 +$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 +$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 +$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 +$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 +$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 +$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 +$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 +$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 +$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 +$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 @@ -363,13 +393,13 @@ $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 +$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 +$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 @@ -379,10 +409,10 @@ $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 +$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) @@ -409,7 +439,7 @@ $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 - 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) @@ -419,11 +449,11 @@ $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 - 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) +$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) @@ -431,53 +461,53 @@ $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 +$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) +$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 +$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 +$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ą +$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 +$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/program.asm b/scorch.asm similarity index 98% rename from program.asm rename to scorch.asm index b455def..50ddebd 100644 --- a/program.asm +++ b/scorch.asm @@ -1,16 +1,18 @@ -; @com.wudsn.ide.asm.mainsourcefile=program.asm +; @com.wudsn.ide.asm.mainsourcefile=scorch.asm ;Atari 8-bit Scorched Earth source code ;--------------------------------------------------- ;by Tomasz 'pecus' Pecko and Pawel 'pirx' Kalinowski ;Warsaw 2000,2001,2002,2003,2009,2012,2013 -;you can contact us at pecus@poczta.fm or pirx@91.pl -;home page of this project is http://pecus.pigwa.net/pliki/Atari/scorch/ +;Miami 2022 +;you can contact us at pecus@poczta.fm or pirx@5oft.pl +;home page of this project is https://github.com/pkali/scorch_src -;this source code was compiled under OMC65 crossassembler +;this source code was compiled under OMC65 crossassembler +;(https://github.com/pkali/omc65) ;and on 2012-06-21 translated to mads ; ;game source code is split into 5+1 parts: -;program.asm is the main game code (with many assorted routines) +;scorch.asm is the main game code (with many assorted routines) ;grafproc.asm - graphics routines like line or circle ;textproc.asm - text routines like list of weapons and shop ;variables.asm - all non-zero page variables and constans @@ -23,8 +25,8 @@ ;port this code to e.g. C64 ; ;After those N years of working on this piece of code -;we are sure it would be much wiser to write it in C or -;Action!, but on the other hand it is so much fun to type 150 chars +;we are sure it would be much wiser to write it in C, Action! +;or MadPascal but on the other hand it is so much fun to type 150 chars ;where you want to have y=ax+b :) ; ;originally most variables were in Polish, comments were sparse diff --git a/scorch.xex b/scorch.xex new file mode 100644 index 0000000..54403ae Binary files /dev/null and b/scorch.xex differ diff --git a/variables.asm b/variables.asm index 6555aa5..060db1f 100644 --- a/variables.asm +++ b/variables.asm @@ -1,4 +1,4 @@ -; @com.wudsn.ide.asm.mainsourcefile=program.asm +; @com.wudsn.ide.asm.mainsourcefile=scorch.asm .IF *>0 ;this is a trick that prevents compiling this file alone diff --git a/weapons.asm b/weapons.asm index 1101eb5..1e191df 100644 --- a/weapons.asm +++ b/weapons.asm @@ -1,4 +1,4 @@ -; @com.wudsn.ide.asm.mainsourcefile=program.asm +; @com.wudsn.ide.asm.mainsourcefile=scorch.asm .IF *>0 ;this is a trick that prevents compiling this file alone @@ -1617,8 +1617,8 @@ EndOfFlight2 .endp SecondFlight .proc -; ---------------- przekopiowany fragment sprzed odpalenie strzału malo kulturalne..... -; ---------------- ponownie wyznacza parametry strzału +; ---------------- przekopiowany fragment sprzed odpalenie strzaďż˝u malo kulturalne..... +; ---------------- ponownie wyznacza parametry strzaďż˝u ldx TankNr lda EnergyTableL,x sta Force