minor typos and clean-ups

This commit is contained in:
Pawel Kalinowski
2022-01-23 21:31:45 -05:00
parent c9e4724957
commit e424064aad
10 changed files with 443 additions and 375 deletions
+170 -1
View File
@@ -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
+1
View File
@@ -1,3 +1,4 @@
; @com.wudsn.ide.asm.mainsourcefile=scorch.asm
/***************************************/ /***************************************/
/* Use MADS http://mads.atari8.info/ */ /* Use MADS http://mads.atari8.info/ */
/* Mode: DLI (char mode) */ /* Mode: DLI (char mode) */
-134
View File
@@ -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
+1 -1
View File
@@ -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 .IF *>0 ;this is a trick that prevents compiling this file alone
+2 -2
View File
@@ -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 .IF *>0 ;this is a trick that prevents compiling this file alone
@@ -239,7 +239,7 @@ DrawLen
DrawCheck .proc DrawCheck .proc
; lda SmokeTracerFlag ; lda SmokeTracerFlag
; bne yestrace ; jakie to g³upie.... ; bne yestrace ; jakie to gupie....
lda tracerflag lda tracerflag
ora SmokeTracerFlag ora SmokeTracerFlag
yestrace yestrace
+256 -226
View File
@@ -1,8 +1,38 @@
/* .enum @dmactl
scr48 = %00111111 ;screen 48b blank = %00
scr40 = %00111110 ;screen 40b narrow = %01
scr32 = %00111101 ;screen 32b 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 * --- GTIA
@@ -19,12 +49,12 @@ SIZEP0 = $D008 ; poziomy rozmiar gracza 0 (Z)
SIZEP1 = $D009 ; poziomy rozmiar gracza 1 (Z) SIZEP1 = $D009 ; poziomy rozmiar gracza 1 (Z)
SIZEP2 = $D00A ; poziomy rozmiar gracza 2 (Z) SIZEP2 = $D00A ; poziomy rozmiar gracza 2 (Z)
SIZEP3 = $D00B ; poziomy rozmiar gracza 3 (Z) SIZEP3 = $D00B ; poziomy rozmiar gracza 3 (Z)
SIZEM = $D00C ; poziomy rozmiar pocisków (Z) SIZEM = $D00C ; poziomy rozmiar pociskw (Z)
GRAFP0 = $D00D ; rejestr grafiki gracza 0 (Z) GRAFP0 = $D00D ; rejestr grafiki gracza 0 (Z)
GRAFP1 = $D00E ; rejestr grafiki gracza 1 (Z) GRAFP1 = $D00E ; rejestr grafiki gracza 1 (Z)
GRAFP2 = $D00F ; rejestr grafiki gracza 2 (Z) GRAFP2 = $D00F ; rejestr grafiki gracza 2 (Z)
GRAFP3 = $D010 ; rejestr grafiki gracza 3 (Z) GRAFP3 = $D010 ; rejestr grafiki gracza 3 (Z)
GRAFM = $D011 ; rejestr grafiki pocisków (Z) GRAFM = $D011 ; rejestr grafiki pociskw (Z)
COLPM0 = $D012 ; rejestr koloru gracza i pocisku 0 (Z) COLPM0 = $D012 ; rejestr koloru gracza i pocisku 0 (Z)
COLPM1 = $D013 ; rejestr koloru gracza i pocisku 1 (Z) COLPM1 = $D013 ; rejestr koloru gracza i pocisku 1 (Z)
COLPM2 = $D014 ; rejestr koloru gracza i pocisku 2 (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) COLPF1 = $D017 ; rejestr koloru pola gry 1 (Z)
COLPF2 = $D018 ; rejestr koloru pola gry 2 (Z) COLPF2 = $D018 ; rejestr koloru pola gry 2 (Z)
COLPF3 = $D019 ; rejestr koloru pola gry 3 (Z) COLPF3 = $D019 ; rejestr koloru pola gry 3 (Z)
COLBAK = $D01A ; rejestr koloru tła (Z) COLBAK = $D01A ; rejestr koloru ta (Z)
COLOR0 = colpf0 COLOR0 = colpf0
COLOR1 = colpf1 COLOR1 = colpf1
@@ -58,120 +88,120 @@ KOLP2P = $D00E ; kolizja gracza 2 z innym graczem (O)
KOLP3P = $D00F ; kolizja gracza 3 z innym graczem (O) KOLP3P = $D00F ; kolizja gracza 3 z innym graczem (O)
TRIG0 = $D010 ; stan przycisku joysticka 0 (O) TRIG0 = $D010 ; stan przycisku joysticka 0 (O)
TRIG1 = $D011 ; stan przycisku joysticka 1 (O) TRIG1 = $D011 ; stan przycisku joysticka 1 (O)
TRIG3 = $D013 ; znacznik dołączenia cartridge-a (O) TRIG3 = $D013 ; znacznik doczenia cartridge-a (O)
PAL = $D014 ; znacznik systemu TV (O) PAL = $D014 ; znacznik systemu TV (O)
GTICTL = $D01B ; rejestr kontroli układu GTIA GTICTL = $D01B ; rejestr kontroli ukadu GTIA
GTIACTL = gtictl GTIACTL = gtictl
VDELAY = $D01C ; licznik opóźnienia pionowego P/MG VDELAY = $D01C ; licznik opnienia pionowego P/MG
PMCNTL = $D01D ; rejestr kontroli graczy i pocisków PMCNTL = $D01D ; rejestr kontroli graczy i pociskw
HITCLR = $D01E ; rejestr kasowania rejestrów kolizji HITCLR = $D01E ; rejestr kasowania rejestrw kolizji
CONSOL = $D01F ; rejestr stanu klawiszy konsoli Start (bit 0), Select (bit 1), Option (bit 2) CONSOL = $D01F ; rejestr stanu klawiszy konsoli Start (bit 0), Select (bit 1), Option (bit 2)
* --------------------------------------------------------------------------------------------- * ---------------------------------------------------------------------------------------------
* --- POKEY * --- POKEY
* --------------------------------------------------------------------------------------------- * ---------------------------------------------------------------------------------------------
IRQENS = $0010 ; rejestr-cień IRQEN IRQENS = $0010 ; rejestr-cie IRQEN
IRQSTAT = $0011 ; rejestr-cień IRQST IRQSTAT = $0011 ; rejestr-cie IRQST
AUDF3 = $D204 ; częstotliwość pracy generatora 3 (Z) AUDF3 = $D204 ; czstotliwo pracy generatora 3 (Z)
AUDCTL = $D208 ; rejestr kontroli generatorów dźwięku (Z) AUDCTL = $D208 ; rejestr kontroli generatorw dwiku (Z)
STIMER = $D209 ; rejestr zerowania liczników (Z) STIMER = $D209 ; rejestr zerowania licznikw (Z)
KBCODE = $D209 ; kod ostatnio naciśniętego klawisza (O) KBCODE = $D209 ; kod ostatnio nacinitego klawisza (O)
SKSTRES = $D20A ; rejestr statusu złącza szeregowego (Z) SKSTRES = $D20A ; rejestr statusu zcza szeregowego (Z)
RANDOM = $D20A ; rejestr liczby losowej (O) RANDOM = $D20A ; rejestr liczby losowej (O)
SEROUT = $D20D ; szeregowy rejestr wyjściowy (Z) SEROUT = $D20D ; szeregowy rejestr wyjciowy (Z)
SERIN = $D20D ; szeregowy rejestr wejściowy (O) SERIN = $D20D ; szeregowy rejestr wejciowy (O)
IRQEN = $D20E ; zezwolenie przerwań IRQ (Z) IRQEN = $D20E ; zezwolenie przerwa IRQ (Z)
IRQST = $D20E ; status przerwań IRQ (O) IRQST = $D20E ; status przerwa IRQ (O)
SKCTL = $D20F ; rejestr kontroli złącza szeregowego (Z) SKCTL = $D20F ; rejestr kontroli zcza szeregowego (Z)
SKSTAT = $D20F ; rejestr statusu złącza szeregowego (O) SKSTAT = $D20F ; rejestr statusu zcza szeregowego (O)
* --------------------------------------------------------------------------------------------- * ---------------------------------------------------------------------------------------------
* --- PIA * --- PIA
* --------------------------------------------------------------------------------------------- * ---------------------------------------------------------------------------------------------
PORTA = $D300 ; port A układu PIA PORTA = $D300 ; port A ukadu PIA
PORTB = $D301 ; port B układu PIA PORTB = $D301 ; port B ukadu PIA
PACTL = $D302 ; rejestr kontroli portu A PACTL = $D302 ; rejestr kontroli portu A
PBCTL = $D303 ; rejestr kontroli portu B PBCTL = $D303 ; rejestr kontroli portu B
* --------------------------------------------------------------------------------------------- * ---------------------------------------------------------------------------------------------
* --- ANTIC * --- ANTIC
* --------------------------------------------------------------------------------------------- * ---------------------------------------------------------------------------------------------
DMACTL = $D400 ; rejestr kontroli dostępu do pamięci DMACTL = $D400 ; rejestr kontroli dostpu do pamici
CHRCTL = $D401 ; rejestr kontroli wyświetlania znaków CHRCTL = $D401 ; rejestr kontroli wywietlania znakw
DLPTR = $D402 ; adres programu ANTIC-a DLPTR = $D402 ; adres programu ANTIC-a
HSCROL = $D404 ; znacznik poziomego przesuwu obrazu HSCROL = $D404 ; znacznik poziomego przesuwu obrazu
VSCROL = $D405 ; znacznik pionowego przesuwu obrazu VSCROL = $D405 ; znacznik pionowego przesuwu obrazu
PMBASE = $D407 ; adres pamięci graczy i pocisków PMBASE = $D407 ; adres pamici graczy i pociskw
CHBASE = $D409 ; adres zestawu znaków CHBASE = $D409 ; adres zestawu znakw
WSYNC = $D40A ; znacznik oczekiwania na synchronizację poziomą WSYNC = $D40A ; znacznik oczekiwania na synchronizacj poziom
VCOUNT = $D40B ; licznik linii obrazu VCOUNT = $D40B ; licznik linii obrazu
LPENH = $D40C ; poziome położenie pióra świetlengo LPENH = $D40C ; poziome pooenie pira wietlengo
LPENV = $D40D ; pionowe położenie pióra świetlnego LPENV = $D40D ; pionowe pooenie pira wietlnego
NMIEN = $D40E ; rejestr zezwoleń na przerwania NMI NMIEN = $D40E ; rejestr zezwole na przerwania NMI
NMIST = $D40F ; rejestr statusu przerwań NMI NMIST = $D40F ; rejestr statusu przerwa NMI
;------------------------------------- ;-------------------------------------
;additional system variables ;additional system variables
;------------------------------------- ;-------------------------------------
COLPM0S = $02C0 ;- - rejestr-cień COLPM0 COLPM0S = $02C0 ;- - rejestr-cie COLPM0
COLPM1S = $02C1 ;- - rejestr-cień COLPM1 COLPM1S = $02C1 ;- - rejestr-cie COLPM1
COLPM2S = $02C2 ;- - rejestr-cień COLPM2 COLPM2S = $02C2 ;- - rejestr-cie COLPM2
COLPM3S = $02C3 ;- - rejestr-cień COLPM3 COLPM3S = $02C3 ;- - rejestr-cie COLPM3
COLPF0S = $02C4 ;- - rejestr-cień COLPF0 COLPF0S = $02C4 ;- - rejestr-cie COLPF0
COLPF1S = $02C5 ;- - rejestr-cień COLPF1 COLPF1S = $02C5 ;- - rejestr-cie COLPF1
COLPF2S = $02C6 ;- - rejestr-cień COLPF2 COLPF2S = $02C6 ;- - rejestr-cie COLPF2
COLPF3S = $02C7 ;- - rejestr-cień COLPF3 COLPF3S = $02C7 ;- - rejestr-cie COLPF3
COLBAKS = $02C8 COLBAKS = $02C8
GTICTLS = $026F ;- - rejestr-cień GTIACTL GTICTLS = $026F ;- - rejestr-cie GTIACTL
DMACTLS = $022F ;- - rejestr kontroli dostępu do pamięci - cień DMACTLS = $022F ;- - rejestr kontroli dostpu do pamici - cie
DLPTRS = $0230 ;- - adres programu ANTIC-a - cień DLPTRS = $0230 ;- - adres programu ANTIC-a - cie
CHBAS = $02F4 ;- - rejestr-cień CHBASE CHBAS = $02F4 ;- - rejestr-cie CHBASE
KBCODES = $02FC ;- - rejestr-cień KBCODE KBCODES = $02FC ;- - rejestr-cie KBCODE
SETVBV = $E45C SETVBV = $E45C
XITVBV = $E462 XITVBV = $E462
SYSVBV = $E45F SYSVBV = $E45F
RTCLOK = $0012 RTCLOK = $0012
MEMTOP = $02E5 ;- - adres górnej granicy wolnej pamięci RAM MEMTOP = $02E5 ;- - adres grnej granicy wolnej pamici RAM
MEMLO = $02E7 ;- - adres dolnej granicy wolnej pamięci RAM MEMLO = $02E7 ;- - adres dolnej granicy wolnej pamici RAM
JSTICK0 = $0278 ;- - położenie joysticka 0 JSTICK0 = $0278 ;- - pooenie joysticka 0
JSTICK1 = $0279 ;- JSTICK1 - położenie joysticka 1 JSTICK1 = $0279 ;- JSTICK1 - pooenie joysticka 1
JSTICK2 = $027A ;- JSTICK2 - położenie joysticka 0 JSTICK2 = $027A ;- JSTICK2 - pooenie joysticka 0
JSTICK3 = $027B ;- JSTICK3 - położenie joysticka 1 JSTICK3 = $027B ;- JSTICK3 - pooenie joysticka 1
PTRIG0 = $027C ;- PTRIG0 - przycisk potencjometru 0 PTRIG0 = $027C ;- PTRIG0 - przycisk potencjometru 0
PTRIG1 = $027D ;- PTRIG1 - przycisk potencjometru 1 PTRIG1 = $027D ;- PTRIG1 - przycisk potencjometru 1
TRIG0S = $0284 ;- TRIG0S - przycisk joysticka 0, rejestr-cień TRIG0 TRIG0S = $0284 ;- TRIG0S - przycisk joysticka 0, rejestr-cie TRIG0
TRIG1S = $0285 ;- TRIG1S - przycisk joysticka 1, rejestr-cień TRIG1 TRIG1S = $0285 ;- TRIG1S - przycisk joysticka 1, rejestr-cie TRIG1
TRIG2S = $0286 ;- TRIG2S - rejestr-cień TRIG0 TRIG2S = $0286 ;- TRIG2S - rejestr-cie TRIG0
TRIG3S = $0287 ;- TRIG3S - rejestr-cień TRIG1 TRIG3S = $0287 ;- TRIG3S - rejestr-cie TRIG1
/* /*
Rejestry OS w pamięci RAM Rejestry OS w pamici RAM
$08 - WARMST - znacznik gorącego startu $08 - WARMST - znacznik gorcego startu
$0E - APPMHI - najwyższy adres RAM zajęty przez program $0E - APPMHI - najwyszy adres RAM zajty przez program
$10 - IRQENS - rejestr-cień IRQEN $10 - IRQENS - rejestr-cie IRQEN
$11 - IRQSTAT - rejestr-cień IRQST $11 - IRQSTAT - rejestr-cie IRQST
$12 - RTCLOK - zegar czasu rzeczywistego $12 - RTCLOK - zegar czasu rzeczywistego
$15 - BUFADR - adres bufora dla operacji dyskowych $15 - BUFADR - adres bufora dla operacji dyskowych
$17 - ICCOMT - rejestr przejściowy kodu operacji I/O $17 - ICCOMT - rejestr przejciowy kodu operacji I/O
$20 - ZIOCB - zerostronicowy blok kontroli I/O $20 - ZIOCB - zerostronicowy blok kontroli I/O
$20 - ICHIDZ - indeks wpisu urządzenia w HATABS $20 - ICHIDZ - indeks wpisu urzdzenia w HATABS
$21 - ICDNOZ - numer urządzenia $21 - ICDNOZ - numer urzdzenia
$22 - ICCOMZ - kod operacji wejścia/wyjścia $22 - ICCOMZ - kod operacji wejcia/wyjcia
$23 - ICSTZ - status operacji wejścia/wyjścia $23 - ICSTZ - status operacji wejcia/wyjcia
$24 - ICBAZ - adres bufora danych dla operacji I/O $24 - ICBAZ - adres bufora danych dla operacji I/O
$26 - ICPTZ - adres procedury obsługi dla operacji $26 - ICPTZ - adres procedury obsugi dla operacji
$28 - ICBLZ - długość bufora danych dla operacji I/O $28 - ICBLZ - dugo bufora danych dla operacji I/O
$2A - ICAX1Z - rejestr pomocniczy ZIOCB $2A - ICAX1Z - rejestr pomocniczy ZIOCB
$2B - ICAX2Z - rejestr pomocniczy ZIOCB $2B - ICAX2Z - rejestr pomocniczy ZIOCB
$2C - ICAX3Z - rejestr pomocniczy ZIOCB $2C - ICAX3Z - rejestr pomocniczy ZIOCB
@@ -181,54 +211,54 @@ Rejestry OS w pami
$30 - STATUS - status aktualnej operacji SIO $30 - STATUS - status aktualnej operacji SIO
$31 - CHKSUM - suma kontrolna dla operacji SIO $31 - CHKSUM - suma kontrolna dla operacji SIO
$32 - BUFR - adres bufora danych dla SIO $32 - BUFR - adres bufora danych dla SIO
$34 - BUFEN - adres końca bufora danych dla SIO $34 - BUFEN - adres koca bufora danych dla SIO
$36 - LTEMP - pomocniczy wektor odczytu listy liniowej $36 - LTEMP - pomocniczy wektor odczytu listy liniowej
$38 - BUFRFL - znacznik zapełnienia bufora SIO $38 - BUFRFL - znacznik zapenienia bufora SIO
$39 - RECVND - znacznik końca odczytu $39 - RECVND - znacznik koca odczytu
$3A - XMTDON - znacznik końca transmisji $3A - XMTDON - znacznik koca transmisji
$3B - CHKSNT - znacznik nadania sumy kontrolnej $3B - CHKSNT - znacznik nadania sumy kontrolnej
$3C - NOCKSM - znacznik braku sumy kontrolnej $3C - NOCKSM - znacznik braku sumy kontrolnej
$3D - BPTR - licznik bufora magnetofonu $3D - BPTR - licznik bufora magnetofonu
$3E - GAPTYP - znacznik długości przerwy między blokami $3E - GAPTYP - znacznik dugoci przerwy midzy blokami
$3F - FEOF - znacznik końca zbioru $3F - FEOF - znacznik koca zbioru
$40 - FREQ - licznik dźwięku przy otwarciu magnetofonu $40 - FREQ - licznik dwiku przy otwarciu magnetofonu
$41 - IOSNDEN - znacznik dźwięku przy transmisji $41 - IOSNDEN - znacznik dwiku przy transmisji
$42 - CRITIC - znacznik krytycznych czasowo operacji I/O $42 - CRITIC - znacznik krytycznych czasowo operacji I/O
$4A - ZCHAIN - rejestr następstwa listy liniowej $4A - ZCHAIN - rejestr nastpstwa listy liniowej
$4C - DSTAT - status klawiatury i ekranu $4C - DSTAT - status klawiatury i ekranu
$50 - TEMP - pomocniczy rejestr przejściowy $50 - TEMP - pomocniczy rejestr przejciowy
$51 - HOLD1 - pomocniczy rejestr przejściowy $51 - HOLD1 - pomocniczy rejestr przejciowy
$52 - LMARGIN - lewy margines obrazu $52 - LMARGIN - lewy margines obrazu
$53 - RMARGIN - prawy margines obrazu $53 - RMARGIN - prawy margines obrazu
$54 - ROWCRS - pionowa pozycja kursora $54 - ROWCRS - pionowa pozycja kursora
$55 - COLCRS - pozioma pozycja kursora $55 - COLCRS - pozioma pozycja kursora
$57 - DINDEX - numer trybu graficznego OS $57 - DINDEX - numer trybu graficznego OS
$58 - SAVMSC - adres pamięci obrazu $58 - SAVMSC - adres pamici obrazu
$5A - OLDROW - poprzednia pionowa pozycja kursora $5A - OLDROW - poprzednia pionowa pozycja kursora
$5B - OLDCOL - poprzednia pozioma pozycja kursora $5B - OLDCOL - poprzednia pozioma pozycja kursora
$5D - OLDCHR - poprzedni znak na ekranie $5D - OLDCHR - poprzedni znak na ekranie
$5E - OLDADR - poprzedni adres znaku na ekranie $5E - OLDADR - poprzedni adres znaku na ekranie
$60 - FKDEFP - wektor tabeli definicji klawiszy F1-F4 $60 - FKDEFP - wektor tabeli definicji klawiszy F1-F4
$62 - PALNTS - wskaźnik systemu TV $62 - PALNTS - wskanik systemu TV
$63 - LOGCOL - adres kursora w wierszu logicznym $63 - LOGCOL - adres kursora w wierszu logicznym
$64 - ADRESS - rejestr adresowy dla procedur edytora $64 - ADRESS - rejestr adresowy dla procedur edytora
$66 - MLTTMP - pomocniczy rejestr przejściowy $66 - MLTTMP - pomocniczy rejestr przejciowy
$68 - SAVADR - pomocniczy rejestr adresowy $68 - SAVADR - pomocniczy rejestr adresowy
$6A - RAMTOP - liczba stron pamięci RAM $6A - RAMTOP - liczba stron pamici RAM
$6B - BUFCNT - licznik bufora edytora $6B - BUFCNT - licznik bufora edytora
$6C - BUFSTR - adres bufora dla edytora $6C - BUFSTR - adres bufora dla edytora
$6E - BITMSK - maska bitowa do wyświetlenia znaku $6E - BITMSK - maska bitowa do wywietlenia znaku
$6F - SHFAMT - liczba przesunięć punktu $6F - SHFAMT - liczba przesuni punktu
$70 - ROWAC - aktualny wiersz przy rysowaniu $70 - ROWAC - aktualny wiersz przy rysowaniu
$72 - COLAC - aktualna kolumna przy rysowaniu $72 - COLAC - aktualna kolumna przy rysowaniu
$74 - ENDPT - znacznik końca rysowanej linii $74 - ENDPT - znacznik koca rysowanej linii
$76 - DELTAR - przyrost pionowej pozycji kursora $76 - DELTAR - przyrost pionowej pozycji kursora
$77 - DELTAC - przyrost poziomej pozycji kursora $77 - DELTAC - przyrost poziomej pozycji kursora
$79 - KEYDEFP - wektor tabeli definicji klawiszy $79 - KEYDEFP - wektor tabeli definicji klawiszy
$7B - SWPFLG - znacznik kursora w trybach z oknem $7B - SWPFLG - znacznik kursora w trybach z oknem
$7C - HOLDCH - przechowywanie wartości znaku $7C - HOLDCH - przechowywanie wartoci znaku
$7D - INSDAT - rejestr pomocniczy edytora $7D - INSDAT - rejestr pomocniczy edytora
$7E - COUNTR - licznik pamięci obrazu dla DOSCR i DRAW $7E - COUNTR - licznik pamici obrazu dla DOSCR i DRAW
$0100 - STACK - stos mikroprocesora 6502 $0100 - STACK - stos mikroprocesora 6502
$0200 - DLIV - wektor przerwania programu ANTIC-a $0200 - DLIV - wektor przerwania programu ANTIC-a
$0210 - VTIMR1 - wektor przerwania licznika 1 POKEY-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 $0218 - TIMCNT1 - pierwszy licznik systemu
$0226 - TIMVEC1 - wektor przerwania licznika TIMCNT1 $0226 - TIMVEC1 - wektor przerwania licznika TIMCNT1
$022A - TIMFLG3 - znacznik wyzerowania licznika TIMCNT3 $022A - TIMFLG3 - znacznik wyzerowania licznika TIMCNT3
$022F - DMACTLS - rejestr-cień DMACTL $022F - DMACTLS - rejestr-cie DMACTL
$0230 - DLPTRS - rejestr-cień DLPTR $0230 - DLPTRS - rejestr-cie DLPTR
$0232 - SKCTLS - rejestr-cień SKCTL $0232 - SKCTLS - rejestr-cie SKCTL
$0233 - LCOUNT - licznik odczytu dla nowego urządzenia $0233 - LCOUNT - licznik odczytu dla nowego urzdzenia
$0234 - LPENHS - rejestr-cień LPENH $0234 - LPENHS - rejestr-cie LPENH
$0235 - LPENVS - rejestr-cień LPENV $0235 - LPENVS - rejestr-cie LPENV
$023A - CDEVIC - kod urządzenia dla SIO $023A - CDEVIC - kod urzdzenia dla SIO
$023B - CCMND - kod operacji dla SIO $023B - CCMND - kod operacji dla SIO
$023C - CAUX1 - pierwszy bajt pomocniczy dla SIO $023C - CAUX1 - pierwszy bajt pomocniczy dla SIO
$023D - CAUX2 - drugi bajt pomocniczy dla SIO $023D - CAUX2 - drugi bajt pomocniczy dla SIO
$023E - TEMP - tymczasowy rejestr odpowiedzi urządzenia $023E - TEMP - tymczasowy rejestr odpowiedzi urzdzenia
$023F - ERRFLG - znacznik błędu operacji SIO $023F - ERRFLG - znacznik bdu operacji SIO
$0244 - COLDST - znacznik zimnego startu systemu $0244 - COLDST - znacznik zimnego startu systemu
$0245 - RECLEN - długość rekordu z nowego urządzenia $0245 - RECLEN - dugo rekordu z nowego urzdzenia
$0246 - DSKTIM - wartość Timeout dla stacji dysków $0246 - DSKTIM - warto Timeout dla stacji dyskw
$0247 - PDVMSK - maska obecności nowych urządzeń $0247 - PDVMSK - maska obecnoci nowych urzdze
$0248 - PDVRS - rejestr-cień PDVREG $0248 - PDVRS - rejestr-cie PDVREG
$024A - RELADR - adres procedury przemieszczalnej $024A - RELADR - adres procedury przemieszczalnej
$024C - PPTMPA - rejestr przechowania zawartości akumulatora $024C - PPTMPA - rejestr przechowania zawartoci akumulatora
$024D - PPTMPX - rejestr przechowania zawartości rejestru X $024D - PPTMPX - rejestr przechowania zawartoci rejestru X
$026B - CHSPTR - wektor nieużywanego zestawu znaków $026B - CHSPTR - wektor nieuywanego zestawu znakw
$026C - VSFLAG - znacznik przesuwu pionowego obrazu $026C - VSFLAG - znacznik przesuwu pionowego obrazu
$026E - FINE - znacznik delikatnego przesuwu obrazu $026E - FINE - znacznik delikatnego przesuwu obrazu
$026F - GTICTLS - rejestr-cień GTIACTL $026F - GTICTLS - rejestr-cie GTIACTL
$0270 - PADDL0 - rejestr-cień POT0 $0270 - PADDL0 - rejestr-cie POT0
$0278 - JSTICK0 - położenie joysticka 0 $0278 - JSTICK0 - pooenie joysticka 0
$0279 - JSTICK1 - położenie joysticka 1 $0279 - JSTICK1 - pooenie joysticka 1
$027A - JSTICK2 - położenie joysticka 0 $027A - JSTICK2 - pooenie joysticka 0
$027B - JSTICK3 - położenie joysticka 1 $027B - JSTICK3 - pooenie joysticka 1
$027C - PTRIG0 - przycisk potencjometru 0 $027C - PTRIG0 - przycisk potencjometru 0
$027D - PTRIG1 - przycisk potencjometru 1 $027D - PTRIG1 - przycisk potencjometru 1
$0284 - TRIG0S - przycisk joysticka 0, rejestr-cień TRIG0 $0284 - TRIG0S - przycisk joysticka 0, rejestr-cie TRIG0
$0285 - TRIG1S - przycisk joysticka 1, rejestr-cień TRIG1 $0285 - TRIG1S - przycisk joysticka 1, rejestr-cie TRIG1
$0286 - TRIG2S - rejestr-cień TRIG0 $0286 - TRIG2S - rejestr-cie TRIG0
$0287 - TRIG3S - rejestr-cień TRIG1 $0287 - TRIG3S - rejestr-cie TRIG1
$0288 - HIBYTE - indeks operacji nowego urządzenia $0288 - HIBYTE - indeks operacji nowego urzdzenia
$0289 - WMODE - znacznik sposobu dostępu do magnetofonu $0289 - WMODE - znacznik sposobu dostpu do magnetofonu
$028A - BLIM - długość bufora magnetofonu $028A - BLIM - dugo bufora magnetofonu
$028E - NEWADR - adres procedury nowego urządzenia $028E - NEWADR - adres procedury nowego urzdzenia
$0290 - TXTROW - wiersz kursora w oknie tekstowym $0290 - TXTROW - wiersz kursora w oknie tekstowym
$0291 - TXTCOL - kolumna kursora w oknie tekstowym $0291 - TXTCOL - kolumna kursora w oknie tekstowym
$0293 - TINDEX - tryb graficzny OS w oknie tekstowym $0293 - TINDEX - tryb graficzny OS w oknie tekstowym
$0294 - TXTMSC - adres pamięci okna tekstowego $0294 - TXTMSC - adres pamici okna tekstowego
$029C - CRETRY - liczba powtórzeń rozkazu operacji $029C - CRETRY - liczba powtrze rozkazu operacji
$029D - HOLD3 - pomocniczy rejestr przejściowy $029D - HOLD3 - pomocniczy rejestr przejciowy
$029E - SUBTMP - pomocniczy rejestr przejściowy $029E - SUBTMP - pomocniczy rejestr przejciowy
$02A0 - DMASK - maska punktów obrazu $02A0 - DMASK - maska punktw obrazu
$02A2 - ESCFLG - znacznik klawisza ESC $02A2 - ESCFLG - znacznik klawisza ESC
$02A3 - TABMAP - mapa pozycji tabulacji $02A3 - TABMAP - mapa pozycji tabulacji
$02B2 - LOGMAP - mapa linii logicznych $02B2 - LOGMAP - mapa linii logicznych
$02B6 - INVFLG - znacznik klawisza inverse video $02B6 - INVFLG - znacznik klawisza inverse video
$02B7 - FILFLG - znacznik wypełniania obrazu $02B7 - FILFLG - znacznik wypeniania obrazu
$02B8 - TMPROW - tymczasowy rejestr pozycji kursora $02B8 - TMPROW - tymczasowy rejestr pozycji kursora
$02B9 - TMPCOL - tymczasowy rejestr pozycji kursora $02B9 - TMPCOL - tymczasowy rejestr pozycji kursora
$02BB - SCRFLG - znacznik przesuwu obrazu $02BB - SCRFLG - znacznik przesuwu obrazu
$02BC - HOLD4 - pomocniczy rejestr przejściowy $02BC - HOLD4 - pomocniczy rejestr przejciowy
$02BD - DRETRY - liczba powtórzeń wywołań urządzenia $02BD - DRETRY - liczba powtrze wywoa urzdzenia
$02BE - SHFLOK - znacznik klawiszy SHIFT i CONTROL $02BE - SHFLOK - znacznik klawiszy SHIFT i CONTROL
$02BF - BOTSCR - liczba wierszy tekstu $02BF - BOTSCR - liczba wierszy tekstu
$02C0 - COLPM0S - rejestr-cień COLPM0 $02C0 - COLPM0S - rejestr-cie COLPM0
$02C1 - COLPM1S - rejestr-cień COLPM1 $02C1 - COLPM1S - rejestr-cie COLPM1
$02C2 - COLPM2S - rejestr-cień COLPM2 $02C2 - COLPM2S - rejestr-cie COLPM2
$02C3 - COLPM3S - rejestr-cień COLPM3 $02C3 - COLPM3S - rejestr-cie COLPM3
$02C4 - COLPF0S - rejestr-cień COLPF0 $02C4 - COLPF0S - rejestr-cie COLPF0
$02C5 - COLPF1S - rejestr-cień COLPF1 ;gr.8 letters $02C5 - COLPF1S - rejestr-cie COLPF1 ;gr.8 letters
$02C6 - COLPF2S - rejestr-cień COLPF2 ;gr.8 background $02C6 - COLPF2S - rejestr-cie COLPF2 ;gr.8 background
$02C7 - COLPF3S - rejestr-cień COLPF3 $02C7 - COLPF3S - rejestr-cie COLPF3
$02C8 - COLBAKS - rejestr-cień COLBAK $02C8 - COLBAKS - rejestr-cie COLBAK
$02C9 - RUNADR - adres procedury nowego urządzenia $02C9 - RUNADR - adres procedury nowego urzdzenia
$02CB - HIUSED - adres końcowy procedury nowego urządzenia $02CB - HIUSED - adres kocowy procedury nowego urzdzenia
$02CF - GBYTEA - adres procedury nowego urządzenia $02CF - GBYTEA - adres procedury nowego urzdzenia
$02D1 - LOADAD - adres wczytywania z nowego urządzenia $02D1 - LOADAD - adres wczytywania z nowego urzdzenia
$02D3 - ZLOADA - pomocniczy rejestr adresu wczytywania $02D3 - ZLOADA - pomocniczy rejestr adresu wczytywania
$02D5 - DSCTLN - długość sektora dyskowego $02D5 - DSCTLN - dugo sektora dyskowego
$02DB - NOCLIK - znacznik dźwięku klawiatury $02DB - NOCLIK - znacznik dwiku klawiatury
$02DE - PBPNT - licznik bufora drukarki $02DE - PBPNT - licznik bufora drukarki
$02DF - PBUFSZ - długość bufora drukarki $02DF - PBUFSZ - dugo bufora drukarki
$02E5 - MEMTOP - adres górnej granicy wolnej pamięci RAM $02E5 - MEMTOP - adres grnej granicy wolnej pamici RAM
$02E7 - MEMLO - adres dolnej granicy wolnej pamięci RAM $02E7 - MEMLO - adres dolnej granicy wolnej pamici RAM
$02E9 - HNDLOD - znacznik relokowalnej procedury obsługi I/O $02E9 - HNDLOD - znacznik relokowalnej procedury obsugi I/O
$02EA - DVSTAT - dodatkowy rejestr statusu urządzenia $02EA - DVSTAT - dodatkowy rejestr statusu urzdzenia
$02EC - DVTMOT - dodatkowy rejestr Timeout urządzenia $02EC - DVTMOT - dodatkowy rejestr Timeout urzdzenia
$02ED - REVNUM - numer wersji nowego urządzenia $02ED - REVNUM - numer wersji nowego urzdzenia
$02EE - CBAUD - prędkość transmisji z magnetofonu $02EE - CBAUD - prdko transmisji z magnetofonu
$02F0 - CRSINH - znacznik widoczności kursora $02F0 - CRSINH - znacznik widocznoci kursora
$02F3 - CHACT - rejestr-cień CHRCTL $02F3 - CHACT - rejestr-cie CHRCTL
$02F4 - CHBAS - rejestr-cień CHBASE $02F4 - CHBAS - rejestr-cie CHBASE
$02F5 - NEWROW - nowa pozycja pionowa kursora $02F5 - NEWROW - nowa pozycja pionowa kursora
$02F6 - NEWCOL - nowa pozycja pozioma kursora $02F6 - NEWCOL - nowa pozycja pozioma kursora
$02F8 - ROWINC - zmiana pionowej pozycji kursora $02F8 - ROWINC - zmiana pionowej pozycji kursora
$02F9 - COLINC - zmiana poziomej pozycji kursora $02F9 - COLINC - zmiana poziomej pozycji kursora
$02FA - CHAR - kod wewnętrzny znaku $02FA - CHAR - kod wewntrzny znaku
$02FB - ATACHR - kod ATASCII znaku $02FB - ATACHR - kod ATASCII znaku
$02FC - KBCODES - rejestr-cień KBCODE $02FC - KBCODES - rejestr-cie KBCODE
$02FD - FILDAT - numer koloru dla wypełniania $02FD - FILDAT - numer koloru dla wypeniania
$02FE - DSPFLG - znacznik wyświetlania znaków kontrolnych $02FE - DSPFLG - znacznik wywietlania znakw kontrolnych
$02FF - SSFLAG - znacznik start/stop dla przesuwu obrazu $02FF - SSFLAG - znacznik start/stop dla przesuwu obrazu
$0300 - DDEVIC - kod identyfikacyjny urządzenia $0300 - DDEVIC - kod identyfikacyjny urzdzenia
$0301 - DUNIT - numer identyfikacyjny urządzenia $0301 - DUNIT - numer identyfikacyjny urzdzenia
$0302 - DCMND - bajt rozkazu dla urządzenia $0302 - DCMND - bajt rozkazu dla urzdzenia
$0303 - DSTATS - status urządzenia $0303 - DSTATS - status urzdzenia
$0304 - DBUFA - adres bufora danych $0304 - DBUFA - adres bufora danych
$0306 - DTIMLO - wartość Timeout dla urządzenia $0306 - DTIMLO - warto Timeout dla urzdzenia
$0308 - DBYT - długość bufora danych $0308 - DBYT - dugo bufora danych
$030A - DAUX1 - rejestr pomocniczy dla operacji I/O $030A - DAUX1 - rejestr pomocniczy dla operacji I/O
$030B - DAUX2 - rejestr pomocniczy dla operacji I/O $030B - DAUX2 - rejestr pomocniczy dla operacji I/O
$030C - INTIM1 - rejestr czasu przy odczycie z magnetofonu $030C - INTIM1 - rejestr czasu przy odczycie z magnetofonu
$030F - CASFLG - znacznik operacji z magnetofonem $030F - CASFLG - znacznik operacji z magnetofonem
$0310 - INTIM2 - rejestr czasu przy odczycie z magnetofonu $0310 - INTIM2 - rejestr czasu przy odczycie z magnetofonu
$0312 - TEMP1 - pomocniczy rejestr przejściowy $0312 - TEMP1 - pomocniczy rejestr przejciowy
$0313 - TEMP2 - pomocniczy rejestr przejściowy $0313 - TEMP2 - pomocniczy rejestr przejciowy
$0314 - PTIMOT - wartość Timeout dla drukarki $0314 - PTIMOT - warto Timeout dla drukarki
$0315 - TEMP3 - pomocniczy rejestr przejściowy $0315 - TEMP3 - pomocniczy rejestr przejciowy
$0316 - SAVIO - rejestr przejściowy dla operacji SIO $0316 - SAVIO - rejestr przejciowy dla operacji SIO
$0317 - TIMFLG - znacznik upłynięcia czasu Timeout $0317 - TIMFLG - znacznik upynicia czasu Timeout
$0318 - STACKP - rejestr wskaźnika stosu dla SIO $0318 - STACKP - rejestr wskanika stosu dla SIO
$0319 - TSTAT - przejściowy rejestr statusu SIO $0319 - TSTAT - przejciowy rejestr statusu SIO
$031A - HATABS - tabela wektorów procedur obsługi $031A - HATABS - tabela wektorw procedur obsugi
$0340 - IOCB0 - blok kontroli I/O numer 0 $0340 - IOCB0 - blok kontroli I/O numer 0
$0350 - IOCB1 - blok kontroli I/O numer 1 $0350 - IOCB1 - blok kontroli I/O numer 1
$0360 - IOCB2 - blok kontroli I/O numer 2 $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 $0390 - IOCB5 - blok kontroli I/O numer 5
$03A0 - IOCB6 - blok kontroli I/O numer 6 $03A0 - IOCB6 - blok kontroli I/O numer 6
$03B0 - IOCB7 - blok kontroli I/O numer 7 $03B0 - IOCB7 - blok kontroli I/O numer 7
$0340 - ICCHID - indeks wpisu urządzenia w HATABS $0340 - ICCHID - indeks wpisu urzdzenia w HATABS
$0341 - ICDNO - numer urządzenia $0341 - ICDNO - numer urzdzenia
$0342 - ICCMD - kod rozkazu operacji I/O $0342 - ICCMD - kod rozkazu operacji I/O
$0343 - ICSTAT - status operacji I/O $0343 - ICSTAT - status operacji I/O
$0344 - ICBUFA - adres bufora danych dla operacji I/O $0344 - ICBUFA - adres bufora danych dla operacji I/O
$0346 - ICPUTB - adres procedury przesyłania danych $0346 - ICPUTB - adres procedury przesyania danych
$0348 - ICBUFL - długość bufora danych dla operacji I/O $0348 - ICBUFL - dugo bufora danych dla operacji I/O
$034A - ICAX1 - rejestr pomocniczy dla operacji I/O $034A - ICAX1 - rejestr pomocniczy dla operacji I/O
$034B - ICAX2 - rejestr pomocniczy dla operacji I/O $034B - ICAX2 - rejestr pomocniczy dla operacji I/O
$034C - ICAX3 - 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 $03C0 - PRNBUF - bufor drukarki
$03E8 - SUPERF - znacznik stosowany przy odczycie klawiatury $03E8 - SUPERF - znacznik stosowany przy odczycie klawiatury
$03E9 - CKEY - znacznik klawisza START przy zimnym starcie $03E9 - CKEY - znacznik klawisza START przy zimnym starcie
$03EC - DERRF - znacznik błędu przy otwieraniu edytora $03EC - DERRF - znacznik bdu przy otwieraniu edytora
$03FB - CHLINK - rejestr elementów listy liniowej $03FB - CHLINK - rejestr elementw listy liniowej
$03FD - CSCB - bajty kontroli szybkości magnetofonu $03FD - CSCB - bajty kontroli szybkoci magnetofonu
$03FF - CRCB - bajt długości rekordu magnetofonowego $03FF - CRCB - bajt dugoci rekordu magnetofonowego
$0400 - CASBUF - bufor magnetofonu $0400 - CASBUF - bufor magnetofonu
$047F - CASBEN - koniec bufora magnetofonu $047F - CASBEN - koniec bufora magnetofonu
$D000 - HPOSP0 - pozioma pozycja gracza 0 (Z) $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) $D00A - KOLM2P - kolizja pocisku 2 z graczem (O)
$D00B - SIZEP3 - poziomy rozmiar gracza 3 (Z) $D00B - SIZEP3 - poziomy rozmiar gracza 3 (Z)
$D00B - KOLM3P - kolizja pocisku 3 z graczem (O) $D00B - KOLM3P - kolizja pocisku 3 z graczem (O)
$D00C - SIZEM - poziomy rozmiar pocisków (Z) $D00C - SIZEM - poziomy rozmiar pociskw (Z)
$D00C - KOLP0P - kolizja gracza 0 z innym graczem (O) $D00C - KOLP0P - kolizja gracza 0 z innym graczem (O)
$D00D - GRAFP0 - rejestr grafiki gracza 0 (Z) $D00D - GRAFP0 - rejestr grafiki gracza 0 (Z)
$D00D - KOLP1P - kolizja gracza 1 z innym graczem (O) $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) $D00F - KOLP3P - kolizja gracza 3 z innym graczem (O)
$D010 - GRAFP3 - rejestr grafiki gracza 3 (Z) $D010 - GRAFP3 - rejestr grafiki gracza 3 (Z)
$D010 - TRIG0 - stan przycisku joysticka 0 (O) $D010 - TRIG0 - stan przycisku joysticka 0 (O)
$D011 - GRAFM - rejestr grafiki pocisków (Z) $D011 - GRAFM - rejestr grafiki pociskw (Z)
$D011 - TRIG1 - stan przycisku joysticka 1 (O) $D011 - TRIG1 - stan przycisku joysticka 1 (O)
$D012 - COLPM0 - rejestr koloru gracza i pocisku 0 (Z) $D012 - COLPM0 - rejestr koloru gracza i pocisku 0 (Z)
$D013 - COLPM1 - rejestr koloru gracza i pocisku 1 (Z) $D013 - COLPM1 - rejestr koloru gracza i pocisku 1 (Z)
$D013 - TRIG3 - znacznik dołączenia cartridge'a (O) $D013 - TRIG3 - znacznik doczenia cartridge'a (O)
$D014 - COLPM2 - rejestr koloru gracza i pocisku 2 (Z) $D014 - COLPM2 - rejestr koloru gracza i pocisku 2 (Z)
$D014 - PAL - znacznik systemu TV (O) $D014 - PAL - znacznik systemu TV (O)
$D015 - COLPM3 - rejestr koloru gracza i pocisku 3 (Z) $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) $D017 - COLPF1 - rejestr koloru pola gry 1 (Z)
$D018 - COLPF2 - rejestr koloru pola gry 2 (Z) $D018 - COLPF2 - rejestr koloru pola gry 2 (Z)
$D019 - COLPF3 - rejestr koloru pola gry 3 (Z) $D019 - COLPF3 - rejestr koloru pola gry 3 (Z)
$D01A - COLBAK - rejestr koloru tła (Z) $D01A - COLBAK - rejestr koloru ta (Z)
$D01B - GTIACTL - rejestr kontroli układu GTIA $D01B - GTIACTL - rejestr kontroli ukadu GTIA
$D01C - VDELAY - licznik opóźnienia pionowego P/MG $D01C - VDELAY - licznik opnienia pionowego P/MG
$D01D - PMCNTL - rejestr kontroli graczy i pocisków $D01D - PMCNTL - rejestr kontroli graczy i pociskw
$D01E - HITCLR - rejestr kasowania rejestrów kolizji $D01E - HITCLR - rejestr kasowania rejestrw kolizji
$D01F - CONSOL - rejestr stanu klawiszy konsoli $D01F - CONSOL - rejestr stanu klawiszy konsoli
$D1FF - PDVREG - rejestr wyboru nowego urządzenia $D1FF - PDVREG - rejestr wyboru nowego urzdzenia
$D200 - AUDF1 - częstotliwość pracy generatora 1 (Z) $D200 - AUDF1 - czstotliwo pracy generatora 1 (Z)
$D200 - POT0 - rejestr położenia potencjometru 0 (O) $D200 - POT0 - rejestr pooenia potencjometru 0 (O)
$D201 - AUDC1 - rejestr kontroli dźwięku generatora 1 (Z) $D201 - AUDC1 - rejestr kontroli dwiku generatora 1 (Z)
$D201 - POT1 - rejestr położenia potencjometru 1 (O) $D201 - POT1 - rejestr pooenia potencjometru 1 (O)
$D202 - AUDF2 - częstotliwość pracy generatora 2 (Z) $D202 - AUDF2 - czstotliwo pracy generatora 2 (Z)
$D202 - POT2 - rejestr położenia potencjometru 2 (O) $D202 - POT2 - rejestr pooenia potencjometru 2 (O)
$D203 - AUDC2 - rejestr kontroli dźwięku generatora 2 (Z) $D203 - AUDC2 - rejestr kontroli dwiku generatora 2 (Z)
$D203 - POT3 - rejestr położenia potencjometru 3 (O) $D203 - POT3 - rejestr pooenia potencjometru 3 (O)
$D204 - AUDF3 - częstotliwość pracy generatora 3 (Z) $D204 - AUDF3 - czstotliwo pracy generatora 3 (Z)
$D205 - AUDC3 - rejestr kontroli dźwięku generatora 3 (Z) $D205 - AUDC3 - rejestr kontroli dwiku generatora 3 (Z)
$D206 - AUDF4 - częstotliwość pracy generatora 4 (Z) $D206 - AUDF4 - czstotliwo pracy generatora 4 (Z)
$D207 - AUDC4 - rejestr kontroli dźwięku generatora 4 (Z) $D207 - AUDC4 - rejestr kontroli dwiku generatora 4 (Z)
$D208 - AUDCTL - rejestr kontroli generatorów dźwięku (Z) $D208 - AUDCTL - rejestr kontroli generatorw dwiku (Z)
$D208 - POTST - status odczytu potencjometrów (O) $D208 - POTST - status odczytu potencjometrw (O)
$D209 - STIMER - rejestr zerowania liczników (Z) $D209 - STIMER - rejestr zerowania licznikw (Z)
$D209 - KBCODE - kod ostatnio naciśniętego klawisza (O) $D209 - KBCODE - kod ostatnio nacinitego klawisza (O)
$D20A - SKSTRES - reset statusu złącza szeregowego (Z) $D20A - SKSTRES - reset statusu zcza szeregowego (Z)
$D20A - RANDOM - rejestr liczby losowej (O) $D20A - RANDOM - rejestr liczby losowej (O)
$D20B - POTG0 - znacznik przetwornika analogowo-cyfrowego (Z) $D20B - POTG0 - znacznik przetwornika analogowo-cyfrowego (Z)
$D20D - SEROUT - szeregowy rejestr wyjściowy (Z) $D20D - SEROUT - szeregowy rejestr wyjciowy (Z)
$D20D - SERIN - szeregowy rejestr wejściowy (O) $D20D - SERIN - szeregowy rejestr wejciowy (O)
$D20E - IRQEN - zezwolenia przerwań IRQ (Z) $D20E - IRQEN - zezwolenia przerwa IRQ (Z)
$D20E - IRQST - status przerwań IRQ (O) $D20E - IRQST - status przerwa IRQ (O)
$D20F - SKCTL - rejestr kontroli złącza szeregowego (Z) $D20F - SKCTL - rejestr kontroli zcza szeregowego (Z)
$D20F - SKSTAT - rejestr statusu złącza szeregowego (O) $D20F - SKSTAT - rejestr statusu zcza szeregowego (O)
$D300 - PORTA - port A układu PIA $D300 - PORTA - port A ukadu PIA
$D301 - PORTB - port B układu PIA $D301 - PORTB - port B ukadu PIA
$D302 - PACTL - rejestr kontroli portu A $D302 - PACTL - rejestr kontroli portu A
$D303 - PBCTL - rejestr kontroli portu B $D303 - PBCTL - rejestr kontroli portu B
$D400 - DMACTL - rejestr kontroli dostępu do pamięci $D400 - DMACTL - rejestr kontroli dostpu do pamici
$D401 - CHRCTL - rejestr kontroli wyświetlania znaków $D401 - CHRCTL - rejestr kontroli wywietlania znakw
$D402 - DLPTR - adres programu ANTIC-a $D402 - DLPTR - adres programu ANTIC-a
$D404 - HSCROL - znacznik poziomego przesuwu obrazu $D404 - HSCROL - znacznik poziomego przesuwu obrazu
$D405 - VSCROL - znacznik pionowego przesuwu obrazu $D405 - VSCROL - znacznik pionowego przesuwu obrazu
$D407 - PMBASE - adres pamięci graczy i pocisków $D407 - PMBASE - adres pamici graczy i pociskw
$D409 - CHBASE - adres zestawu znaków $D409 - CHBASE - adres zestawu znakw
$D40A - WSYNC - znacznik oczekiwania na synchronizację poziomą $D40A - WSYNC - znacznik oczekiwania na synchronizacj poziom
$D40B - VCOUNT - licznik linii obrazu $D40B - VCOUNT - licznik linii obrazu
$D40C - LPENH - poziome położenie pióra świetlengo $D40C - LPENH - poziome pooenie pira wietlengo
$D40D - LPENV - pionowe położenie pióra świetlnego $D40D - LPENV - pionowe pooenie pira wietlnego
$D40E - NMIEN - rejestr zezwoleń na przerwania NMI $D40E - NMIEN - rejestr zezwole na przerwania NMI
$D40F - NMIST - rejestr statusu przerwań NMI $D40F - NMIST - rejestr statusu przerwa NMI
*/ */
+9 -7
View File
@@ -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 ;Atari 8-bit Scorched Earth source code
;--------------------------------------------------- ;---------------------------------------------------
;by Tomasz 'pecus' Pecko and Pawel 'pirx' Kalinowski ;by Tomasz 'pecus' Pecko and Pawel 'pirx' Kalinowski
;Warsaw 2000,2001,2002,2003,2009,2012,2013 ;Warsaw 2000,2001,2002,2003,2009,2012,2013
;you can contact us at pecus@poczta.fm or pirx@91.pl ;Miami 2022
;home page of this project is http://pecus.pigwa.net/pliki/Atari/scorch/ ;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 ;and on 2012-06-21 translated to mads
; ;
;game source code is split into 5+1 parts: ;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 ;grafproc.asm - graphics routines like line or circle
;textproc.asm - text routines like list of weapons and shop ;textproc.asm - text routines like list of weapons and shop
;variables.asm - all non-zero page variables and constans ;variables.asm - all non-zero page variables and constans
@@ -23,8 +25,8 @@
;port this code to e.g. C64 ;port this code to e.g. C64
; ;
;After those N years of working on this piece of code ;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 ;we are sure it would be much wiser to write it in C, Action!
;Action!, but on the other hand it is so much fun to type 150 chars ;or MadPascal but on the other hand it is so much fun to type 150 chars
;where you want to have y=ax+b :) ;where you want to have y=ax+b :)
; ;
;originally most variables were in Polish, comments were sparse ;originally most variables were in Polish, comments were sparse
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -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 .IF *>0 ;this is a trick that prevents compiling this file alone
+3 -3
View File
@@ -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 .IF *>0 ;this is a trick that prevents compiling this file alone
@@ -1617,8 +1617,8 @@ EndOfFlight2
.endp .endp
SecondFlight .proc SecondFlight .proc
; ---------------- przekopiowany fragment sprzed odpalenie strza³u malo kulturalne..... ; ---------------- przekopiowany fragment sprzed odpalenie strzau malo kulturalne.....
; ---------------- ponownie wyznacza parametry strza³u ; ---------------- ponownie wyznacza parametry strzau
ldx TankNr ldx TankNr
lda EnergyTableL,x lda EnergyTableL,x
sta Force sta Force