From e424064aad892972370549e3e6b2e9561ce1b836 Mon Sep 17 00:00:00 2001 From: Pawel Kalinowski Date: Sun, 23 Jan 2022 21:31:45 -0500 Subject: [PATCH] minor typos and clean-ups --- README.md | 171 +++++++++++++- artwork/HIMARS14.asm | 1 + changes.txt | 134 ----------- display.asm | 2 +- grafproc.asm | 4 +- lib/atari.hea | 482 ++++++++++++++++++++------------------ program.asm => scorch.asm | 16 +- scorch.xex | Bin 0 -> 32057 bytes variables.asm | 2 +- weapons.asm | 6 +- 10 files changed, 443 insertions(+), 375 deletions(-) delete mode 100644 changes.txt rename program.asm => scorch.asm (98%) create mode 100644 scorch.xex 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 0000000000000000000000000000000000000000..54403ae2780d3a1ba14e75ec0ca138f7e0e8e01d GIT binary patch literal 32057 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%0AhyhIn|gdroo#)F!N^c7LyS= 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 bi_qy;=yegCR@Z-Ef1Q?VQlD1;eCGcL2{!9P literal 0 HcmV?d00001 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