mirror of
https://github.com/pkali/scorch_src.git
synced 2026-05-20 22:34:21 +02:00
minor typos and clean-ups
This commit is contained in:
@@ -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,3 +1,4 @@
|
||||
; @com.wudsn.ide.asm.mainsourcefile=scorch.asm
|
||||
/***************************************/
|
||||
/* Use MADS http://mads.atari8.info/ */
|
||||
/* Mode: DLI (char mode) */
|
||||
|
||||
-134
@@ -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
@@ -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
|
||||
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
+256
-226
@@ -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
|
||||
*/
|
||||
|
||||
@@ -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
|
||||
BIN
Binary file not shown.
+1
-1
@@ -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
|
||||
|
||||
|
||||
+3
-3
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user