mirror of
https://github.com/Pecusx/scorch_src.git
synced 2026-05-20 22:33:43 +02:00
build 134
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
# Atari 8-bit Scorched Earth source code
|
||||
# Scorch - Atari 8-bit Scorched Earth clone source code
|
||||
---------------------------------------------------
|
||||
|
||||
Scorch is a multi-player, turn-based, artillery video game. Tanks do turn-based battle in two-dimensional terrain, with each player adjusting the angle and power of their tank turret before each shot.
|
||||
|
||||
by Tomasz 'pecus' Pecko and Pawel 'pirx' Kalinowski
|
||||
|
||||
Warsaw, Miami 2000, 2001, 2002, 2003, 2009, 2012, 2013, 2022
|
||||
@@ -7,9 +10,10 @@ 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 originally compiled under OMC65 crossassembler
|
||||
(https://github.com/pkali/omc65)
|
||||
and on 2012-06-21 translated to mads
|
||||
This source code was originally compiled under [OMC65 crossassembler](https://github.com/pkali/omc65) and on 2012-06-21 translated to [mads](https://github.com/tebe6502/Mad-Assembler).
|
||||
|
||||
Compilation: `mads scorch.asm -o:scorch.xex`
|
||||
|
||||
|
||||
Game source code is split into 5+3 parts:
|
||||
- scorch.asm is the main game code (with many assorted routines)
|
||||
|
||||
@@ -345,58 +345,3 @@ loop
|
||||
|
||||
rts
|
||||
.endp
|
||||
|
||||
|
||||
PurchaseMeTable .proc ;weapons good to be purchased by the robot
|
||||
;the comment is an index in the tables
|
||||
dta 1 ;"Baby Missile " ; 0
|
||||
dta 1 ;"Missile " ; 1
|
||||
dta 1 ;"Baby Nuke " ; 2
|
||||
dta 1 ;"Nuke " ; 3
|
||||
dta 1 ;"LeapFrog " ; 4
|
||||
dta 1 ;"Funky Bomb " ; 5
|
||||
dta 1 ;"MIRV " ; 6
|
||||
dta 1 ;"Death's Head " ; 7
|
||||
dta 0 ;"Napalm " ; 8
|
||||
dta 0 ;"Hot Napalm " ; 9
|
||||
dta 0 ;"Tracer " ; 10
|
||||
dta 0 ;"Smoke Tracer " ; 11
|
||||
dta 1 ;"Baby Roller " ; 12
|
||||
dta 1 ;"Roller " ; 13
|
||||
dta 1 ;"Heavy Roller " ; 14
|
||||
dta 0 ;"Riot Charge " ; 15
|
||||
dta 0 ;"Riot Blast " ; 16
|
||||
dta 0 ;"Riot Bomb " ; 17
|
||||
dta 0 ;"Heavy Riot Bomb " ; 18
|
||||
dta 0 ;"Baby Digger " ; 19
|
||||
dta 0 ;"Digger " ; 20
|
||||
dta 0 ;"Heavy Digger " ; 21
|
||||
dta 0 ;"Baby Sandhog " ; 22
|
||||
dta 0 ;"Sandhog " ; 23
|
||||
dta 0 ;"Heavy Sandhog " ; 24
|
||||
dta 0 ;"Dirt Clod " ; 25
|
||||
dta 0 ;"Dirt Ball " ; 26
|
||||
dta 0 ;"Ton of Dirt " ; 27
|
||||
dta 1 ;"Liquid Dirt " ; 28
|
||||
dta 0 ;"Dirt Charge " ; 29
|
||||
dta 0 ;"Earth Disrupter " ; 30
|
||||
dta 1 ;"Plasma Blast " ; 31
|
||||
dta 1 ;"Laser " ; 32
|
||||
dta 0 ;"----------------" ; 33
|
||||
dta 0 ;"----------------" ; 34
|
||||
dta 0 ;"----------------" ; 35
|
||||
dta 0 ;"----------------" ; 36
|
||||
dta 0 ;"----------------" ; 37
|
||||
dta 0 ;"----------------" ; 38
|
||||
dta 0 ;"----------------" ; 39
|
||||
dta 0 ;"----------------" ; 40
|
||||
dta 0 ;"----------------" ; 41
|
||||
dta 0 ;"----------------" ; 42
|
||||
dta 0 ;"----------------" ; 43
|
||||
dta 0 ;"----------------" ; 44
|
||||
dta 0 ;"----------------" ; 45
|
||||
dta 0 ;"----------------" ; 46
|
||||
dta 0 ;"----------------" ; 47
|
||||
|
||||
.endp
|
||||
|
||||
+16
-15
@@ -7,7 +7,15 @@
|
||||
;icl "HIMARS14.h"
|
||||
;ICL '../lib/atari.hea'
|
||||
|
||||
org $80
|
||||
|
||||
WIDTH = 40
|
||||
HEIGHT = 30
|
||||
|
||||
; --- BASIC switch OFF
|
||||
org $2000\ mva #$ff portb\ rts\ ini $2000
|
||||
|
||||
; --- dmsc LZSS player routine on zero page
|
||||
org $80
|
||||
|
||||
chn_copy .ds 9
|
||||
chn_pos .ds 9
|
||||
@@ -28,20 +36,13 @@ skip
|
||||
song_ptr = get_byte + 1
|
||||
|
||||
|
||||
fcnt .ds 2
|
||||
fadr .ds 2
|
||||
fhlp .ds 2
|
||||
cloc .ds 1
|
||||
regA .ds 1
|
||||
regX .ds 1
|
||||
regY .ds 1
|
||||
|
||||
WIDTH = 40
|
||||
HEIGHT = 30
|
||||
|
||||
; --- BASIC switch OFF
|
||||
org $2000\ mva #$ff portb\ rts\ ini $2000
|
||||
|
||||
fcnt .ds 2
|
||||
fadr .ds 2
|
||||
fhlp .ds 2
|
||||
cloc .ds 1
|
||||
regA .ds 1
|
||||
regX .ds 1
|
||||
regY .ds 1
|
||||
; --- MAIN PROGRAM
|
||||
org $2000
|
||||
ant dta $F0
|
||||
|
||||
+59
-12
@@ -13,7 +13,6 @@ CashOptionH
|
||||
GravityTable .by 10,20,25,30,40
|
||||
MaxWindTable .by 5,20,40,60,80
|
||||
RoundsTable .by 10,20,30,40,50
|
||||
RoundsInTheGame .by 10 ;how many rounds in the current game
|
||||
flyDelayTable .by 255,150,75,35,1
|
||||
;------------------------------------------------
|
||||
|
||||
@@ -284,12 +283,8 @@ costable
|
||||
|
||||
linetableL
|
||||
:screenheight .by <(display+screenBytes*#)
|
||||
;:20 .by <(display+screenBytes*#)
|
||||
.by <PlotLine
|
||||
linetableH
|
||||
:screenheight .by >(display+screenBytes*#)
|
||||
;:20 .by >(display+screenBytes*#)
|
||||
.by >PlotLine
|
||||
;----------------------------
|
||||
bittable
|
||||
.by $80,$40,$20,$10,$08,$04,$02,$01
|
||||
@@ -327,7 +322,7 @@ WhereToSlideTable
|
||||
.BY %000 ; 00001001
|
||||
.BY %000 ; 00001010
|
||||
.BY %000 ; 00001011
|
||||
.BY %000 ; 00001100
|
||||
.BY %100 ; 00001100
|
||||
.BY %000 ; 00001101
|
||||
.BY %000 ; 00001110
|
||||
.BY %000 ; 00001111
|
||||
@@ -630,12 +625,12 @@ EndOfTheBarrelY
|
||||
;-------------------------------------------------
|
||||
|
||||
TanksNamesDefault
|
||||
dta d"1st Tank"
|
||||
dta d"2nd Tank"
|
||||
dta d"3rd Tank"
|
||||
dta d"4th Tank"
|
||||
dta d"5th Tank"
|
||||
dta d"6th Tank"
|
||||
dta d"1st.Tank"
|
||||
dta d"2nd.Tank"
|
||||
dta d"3rd.Tank"
|
||||
dta d"4th.Tank"
|
||||
dta d"5th.Tank"
|
||||
dta d"6th.Tank"
|
||||
|
||||
;Weapon prices (*10 on screen)
|
||||
price_Baby_Missile___ = 0 ;_0
|
||||
@@ -907,6 +902,58 @@ WeaponUnits
|
||||
.by 25 ;Contact_Trigger
|
||||
.by 0 ;_____________63
|
||||
|
||||
PurchaseMeTable ;weapons good to be purchased by the robot
|
||||
;the comment is an index in the tables
|
||||
dta 1 ;"Baby Missile " ; 0
|
||||
dta 1 ;"Missile " ; 1
|
||||
dta 1 ;"Baby Nuke " ; 2
|
||||
dta 1 ;"Nuke " ; 3
|
||||
dta 1 ;"LeapFrog " ; 4
|
||||
dta 1 ;"Funky Bomb " ; 5
|
||||
dta 1 ;"MIRV " ; 6
|
||||
dta 1 ;"Death's Head " ; 7
|
||||
dta 0 ;"Napalm " ; 8
|
||||
dta 0 ;"Hot Napalm " ; 9
|
||||
dta 0 ;"Tracer " ; 10
|
||||
dta 0 ;"Smoke Tracer " ; 11
|
||||
dta 1 ;"Baby Roller " ; 12
|
||||
dta 1 ;"Roller " ; 13
|
||||
dta 1 ;"Heavy Roller " ; 14
|
||||
dta 0 ;"Riot Charge " ; 15
|
||||
dta 0 ;"Riot Blast " ; 16
|
||||
dta 0 ;"Riot Bomb " ; 17
|
||||
dta 0 ;"Heavy Riot Bomb " ; 18
|
||||
dta 0 ;"Baby Digger " ; 19
|
||||
dta 0 ;"Digger " ; 20
|
||||
dta 0 ;"Heavy Digger " ; 21
|
||||
dta 0 ;"Baby Sandhog " ; 22
|
||||
dta 0 ;"Sandhog " ; 23
|
||||
dta 0 ;"Heavy Sandhog " ; 24
|
||||
dta 0 ;"Dirt Clod " ; 25
|
||||
dta 0 ;"Dirt Ball " ; 26
|
||||
dta 0 ;"Ton of Dirt " ; 27
|
||||
dta 0 ;"Liquid Dirt " ; 28
|
||||
dta 0 ;"Dirt Charge " ; 29
|
||||
dta 0 ;"Earth Disrupter " ; 30
|
||||
dta 0 ;"Plasma Blast " ; 31
|
||||
dta 1 ;"Laser " ; 32
|
||||
dta 0 ;"----------------" ; 33
|
||||
dta 0 ;"----------------" ; 34
|
||||
dta 0 ;"----------------" ; 35
|
||||
dta 0 ;"----------------" ; 36
|
||||
dta 0 ;"----------------" ; 37
|
||||
dta 0 ;"----------------" ; 38
|
||||
dta 0 ;"----------------" ; 39
|
||||
dta 0 ;"----------------" ; 40
|
||||
dta 0 ;"----------------" ; 41
|
||||
dta 0 ;"----------------" ; 42
|
||||
dta 0 ;"----------------" ; 43
|
||||
dta 0 ;"----------------" ; 44
|
||||
dta 0 ;"----------------" ; 45
|
||||
dta 0 ;"----------------" ; 46
|
||||
dta 0 ;"----------------" ; 47
|
||||
|
||||
|
||||
;-------------------------------------------------
|
||||
; Screen codes of icons (chars) representing a given weapon
|
||||
WeaponSymbols
|
||||
|
||||
+2
-6
@@ -51,10 +51,7 @@ dl ; MAIN game display list
|
||||
.byte $42
|
||||
.word textbuffer
|
||||
.byte $02, $02 +$80 ;DLI
|
||||
.byte $00
|
||||
|
||||
.byte $4f
|
||||
.word PlotLine
|
||||
.byte $10 ; 2 blank lines
|
||||
|
||||
.byte $4f
|
||||
.word display
|
||||
@@ -66,12 +63,11 @@ dl ; MAIN game display list
|
||||
:97 .byte $0f
|
||||
.byte $41
|
||||
.word dl
|
||||
PlotLine = display + screenHeight*screenBytes ; the last line is plot pointer
|
||||
;-----------------------------------------------
|
||||
;Screen displays go first to avoid crossing 4kb barrier
|
||||
;-----------------------------------------------
|
||||
OptionsScreen
|
||||
dta d"Welcome to Scorch ver. 133 (un)2000-2022"
|
||||
dta d"Welcome to Scorch ver. 134 (un)2000-2022"
|
||||
dta d" Please select option with cursor keys "
|
||||
dta d" and press (Return) to proceed "
|
||||
OptionsHere
|
||||
|
||||
+4
-28
@@ -977,6 +977,7 @@ EndDrawing
|
||||
.endp
|
||||
; -----------------------------------------
|
||||
unPlot .proc
|
||||
; plots a point and saves the plotted byte, reverts the previous plot.
|
||||
; -----------------------------------------
|
||||
ldx #0 ; only one pixel
|
||||
unPlotAfterX
|
||||
@@ -996,7 +997,8 @@ unPlotAfterX
|
||||
|
||||
; is it not out of the screen ????
|
||||
cpw ydraw #screenheight
|
||||
jcs EndOfUnPlot
|
||||
jcc CheckX
|
||||
mwa #0 ydraw
|
||||
CheckX
|
||||
cpw xdraw #screenwidth
|
||||
jcs EndOfUnPlot
|
||||
@@ -1032,6 +1034,7 @@ MakeUnPlot
|
||||
lda color
|
||||
beq ClearUnPlot
|
||||
|
||||
;plotting here
|
||||
lda (xbyte),y
|
||||
sta OldOraTemp
|
||||
ora bittable,x
|
||||
@@ -1174,33 +1177,6 @@ point .proc
|
||||
rts
|
||||
.endp
|
||||
|
||||
; -----------------------------------------
|
||||
PlotPointer .proc
|
||||
; -----------------------------------------
|
||||
; draws pointer that shows where is the bullet
|
||||
; when it is over the screen
|
||||
; (it is on the top of the screen)
|
||||
|
||||
|
||||
mwa xdraw tempCir
|
||||
|
||||
mva #0 color
|
||||
mwa #screenHeight ydraw
|
||||
mwa oldPlotPointerX xdraw
|
||||
jsr plot
|
||||
|
||||
|
||||
mwa tempCir xdraw
|
||||
|
||||
mva #1 color
|
||||
mwa #screenHeight ydraw
|
||||
jsr plot
|
||||
|
||||
mwa xdraw oldPlotPointerX
|
||||
|
||||
rts
|
||||
|
||||
.endp
|
||||
;--------------------------------------------------
|
||||
DrawLine .proc
|
||||
;--------------------------------------------------
|
||||
|
||||
+43
-43
@@ -103,8 +103,8 @@ CONSOL = $D01F ; rejestr stanu klawiszy konsoli Start (bit 0), Select (bit 1),
|
||||
* --- POKEY
|
||||
* ---------------------------------------------------------------------------------------------
|
||||
|
||||
IRQENS = $0010 ; rejestr-cie� IRQEN
|
||||
IRQSTAT = $0011 ; rejestr-cie� IRQST
|
||||
IRQENS = $0010 ; shadow register IRQEN
|
||||
IRQSTAT = $0011 ; shadow register IRQST
|
||||
|
||||
AUDF3 = $D204 ; cz�stotliwo�� pracy generatora 3 (Z)
|
||||
AUDCTL = $D208 ; rejestr kontroli generator�w d�wi�ku (Z)
|
||||
@@ -147,22 +147,22 @@ 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 ;- - shadow register COLPM0
|
||||
COLPM1S = $02C1 ;- - shadow register COLPM1
|
||||
COLPM2S = $02C2 ;- - shadow register COLPM2
|
||||
COLPM3S = $02C3 ;- - shadow register COLPM3
|
||||
COLPF0S = $02C4 ;- - shadow register COLPF0
|
||||
COLPF1S = $02C5 ;- - shadow register COLPF1
|
||||
COLPF2S = $02C6 ;- - shadow register COLPF2
|
||||
COLPF3S = $02C7 ;- - shadow register COLPF3
|
||||
|
||||
COLBAKS = $02C8
|
||||
GTICTLS = $026F ;- - rejestr-cie� GTIACTL
|
||||
GTICTLS = $026F ;- - shadow register 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
|
||||
CHBAS = $02F4 ;- - shadow register CHBASE
|
||||
KBCODES = $02FC ;- - shadow register KBCODE
|
||||
|
||||
SETVBV = $E45C
|
||||
XITVBV = $E462
|
||||
@@ -178,10 +178,10 @@ 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, shadow register TRIG0
|
||||
TRIG1S = $0285 ;- TRIG1S - przycisk joysticka 1, shadow register TRIG1
|
||||
TRIG2S = $0286 ;- TRIG2S - shadow register TRIG0
|
||||
TRIG3S = $0287 ;- TRIG3S - shadow register TRIG1
|
||||
|
||||
|
||||
/*
|
||||
@@ -189,8 +189,8 @@ 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
|
||||
$10 - IRQENS - shadow register IRQEN
|
||||
$11 - IRQSTAT - shadow register IRQST
|
||||
$12 - RTCLOK - zegar czasu rzeczywistego
|
||||
$15 - BUFADR - adres bufora dla operacji dyskowych
|
||||
$17 - ICCOMT - rejestr przej�ciowy kodu operacji I/O
|
||||
@@ -267,12 +267,12 @@ $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
|
||||
$022F - DMACTLS - shadow register DMACTL
|
||||
$0230 - DLPTRS - shadow register DLPTR
|
||||
$0232 - SKCTLS - shadow register SKCTL
|
||||
$0233 - LCOUNT - licznik odczytu dla nowego urz�dzenia
|
||||
$0234 - LPENHS - rejestr-cie� LPENH
|
||||
$0235 - LPENVS - rejestr-cie� LPENV
|
||||
$0234 - LPENHS - shadow register LPENH
|
||||
$0235 - LPENVS - shadow register LPENV
|
||||
$023A - CDEVIC - kod urz�dzenia dla SIO
|
||||
$023B - CCMND - kod operacji dla SIO
|
||||
$023C - CAUX1 - pierwszy bajt pomocniczy dla SIO
|
||||
@@ -283,25 +283,25 @@ $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
|
||||
$0248 - PDVRS - shadow register PDVREG
|
||||
$024A - RELADR - adres procedury przemieszczalnej
|
||||
$024C - PPTMPA - rejestr przechowania zawarto�ci akumulatora
|
||||
$024D - PPTMPX - rejestr przechowania zawarto�ci rejestru X
|
||||
$026B - CHSPTR - wektor nieu�ywanego zestawu znak�w
|
||||
$026C - VSFLAG - znacznik przesuwu pionowego obrazu
|
||||
$026E - FINE - znacznik delikatnego przesuwu obrazu
|
||||
$026F - GTICTLS - rejestr-cie� GTIACTL
|
||||
$0270 - PADDL0 - rejestr-cie� POT0
|
||||
$026F - GTICTLS - shadow register GTIACTL
|
||||
$0270 - PADDL0 - shadow register 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
|
||||
$0284 - TRIG0S - przycisk joysticka 0, shadow register TRIG0
|
||||
$0285 - TRIG1S - przycisk joysticka 1, shadow register TRIG1
|
||||
$0286 - TRIG2S - shadow register TRIG0
|
||||
$0287 - TRIG3S - shadow register TRIG1
|
||||
$0288 - HIBYTE - indeks operacji nowego urz�dzenia
|
||||
$0289 - WMODE - znacznik sposobu dost�pu do magnetofonu
|
||||
$028A - BLIM - d�ugo�� bufora magnetofonu
|
||||
@@ -326,15 +326,15 @@ $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
|
||||
$02C0 - COLPM0S - shadow register COLPM0
|
||||
$02C1 - COLPM1S - shadow register COLPM1
|
||||
$02C2 - COLPM2S - shadow register COLPM2
|
||||
$02C3 - COLPM3S - shadow register COLPM3
|
||||
$02C4 - COLPF0S - shadow register COLPF0
|
||||
$02C5 - COLPF1S - shadow register COLPF1 ;gr.8 letters
|
||||
$02C6 - COLPF2S - shadow register COLPF2 ;gr.8 background
|
||||
$02C7 - COLPF3S - shadow register COLPF3
|
||||
$02C8 - COLBAKS - shadow register COLBAK
|
||||
$02C9 - RUNADR - adres procedury nowego urz�dzenia
|
||||
$02CB - HIUSED - adres ko�cowy procedury nowego urz�dzenia
|
||||
$02CF - GBYTEA - adres procedury nowego urz�dzenia
|
||||
@@ -352,15 +352,15 @@ $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
|
||||
$02F3 - CHACT - shadow register CHRCTL
|
||||
$02F4 - CHBAS - shadow register CHBASE
|
||||
$02F5 - NEWROW - nowa pozycja pionowa kursora
|
||||
$02F6 - NEWCOL - nowa pozycja pozioma kursora
|
||||
$02F8 - ROWINC - zmiana pionowej pozycji kursora
|
||||
$02F9 - COLINC - zmiana poziomej pozycji kursora
|
||||
$02FA - CHAR - kod wewn�trzny znaku
|
||||
$02FB - ATACHR - kod ATASCII znaku
|
||||
$02FC - KBCODES - rejestr-cie� KBCODE
|
||||
$02FC - KBCODES - shadow register KBCODE
|
||||
$02FD - FILDAT - numer koloru dla wype�niania
|
||||
$02FE - DSPFLG - znacznik wy�wietlania znak�w kontrolnych
|
||||
$02FF - SSFLAG - znacznik start/stop dla przesuwu obrazu
|
||||
|
||||
@@ -715,8 +715,6 @@ deletePtr = temp
|
||||
lda #0
|
||||
sta Erase
|
||||
sta tracerflag
|
||||
sta oldPlotPointerX
|
||||
sta oldPlotPointerX+1
|
||||
sta GameIsOver
|
||||
|
||||
|
||||
|
||||
BIN
Binary file not shown.
+8
-6
@@ -823,11 +823,13 @@ NoArrowDown
|
||||
jsr PMoutofScreen
|
||||
; display tank number
|
||||
ldx tanknr
|
||||
lda skillTable,x
|
||||
sta difficultyLevel
|
||||
inx
|
||||
stx decimal
|
||||
mwa #(NameScreen+41) displayposition
|
||||
jsr displaybyte
|
||||
jsr SelectLevel ; setting choosen level of the opponent (Moron, etc)
|
||||
jsr HighlightLevel ; setting choosen level of the opponent (Moron, etc)
|
||||
|
||||
; clear tank name editor field
|
||||
ldx #8
|
||||
@@ -919,7 +921,7 @@ ChangeOfLevelUp ; change difficulty level of computer opponent
|
||||
bne DoNotLoopLevelUp
|
||||
mva #$0 DifficultyLevel
|
||||
DoNotLoopLevelUp
|
||||
jsr SelectLevel
|
||||
jsr HighlightLevel
|
||||
jmp CheckKeys
|
||||
;----
|
||||
ChangeOfLevelDown
|
||||
@@ -927,7 +929,7 @@ ChangeOfLevelDown
|
||||
bpl DoNotLoopLevelDown
|
||||
mva #$8 DifficultyLevel
|
||||
DoNotLoopLevelDown
|
||||
jsr SelectLevel
|
||||
jsr HighlightLevel
|
||||
jmp CheckKeys
|
||||
;----
|
||||
ChangeOfLevel3Up
|
||||
@@ -939,7 +941,7 @@ ChangeOfLevel3Up
|
||||
sbb DifficultyLevel #9
|
||||
|
||||
DoNotLoopLevel3Up
|
||||
jsr SelectLevel
|
||||
jsr HighlightLevel
|
||||
jmp CheckKeys
|
||||
;----
|
||||
ChangeOfLevel3Down
|
||||
@@ -947,7 +949,7 @@ ChangeOfLevel3Down
|
||||
bpl @+
|
||||
adb DifficultyLevel #9
|
||||
@
|
||||
jsr SelectLevel
|
||||
jsr HighlightLevel
|
||||
jmp CheckKeys
|
||||
;----
|
||||
EndOfNick
|
||||
@@ -992,7 +994,7 @@ nextchar05
|
||||
.endp
|
||||
|
||||
|
||||
.proc SelectLevel
|
||||
.proc HighlightLevel
|
||||
; this routine highlights the choosen
|
||||
; level of the computer opponent
|
||||
ldx #8 ; 9 possible levels
|
||||
|
||||
+6
-6
@@ -16,7 +16,13 @@ TanksNames ; DO NOT ZERO - ticket #24
|
||||
;----------------------------
|
||||
;Options DO NOT ZERO - ticket #27
|
||||
OptionsTable .by 0,0,2,2,0,1
|
||||
RoundsInTheGame .by 10 ;how many rounds in the current game
|
||||
;--------------------------------------------------
|
||||
skilltable ; computer controlled players' skills (1-8), 0 - human (no cleaning, ticket #30)
|
||||
.DS [MaxPlayers]
|
||||
;-----------------------------------
|
||||
|
||||
|
||||
variablesStart ; zeroing starts here
|
||||
;--------------
|
||||
OptionsY .ds 0 ;vertical position of cursor on Options screen
|
||||
@@ -26,9 +32,6 @@ NumberOfPlayers .DS 1 ;current number of players (counted from 1)
|
||||
TankSequence .DS [MaxPlayers] ;sequence of shooting during the Round
|
||||
GameIsOver .DS 1 ; 1 - it was the last round in the game
|
||||
;-----------------------------------
|
||||
skilltable ; computer controlled players' skills (1-8), 0 - human
|
||||
.DS [MaxPlayers]
|
||||
;-----------------------------------
|
||||
moneyH ;we place zero at the end of prices and money
|
||||
;and have range from 0 to 99990 (not too much)
|
||||
;money players have (maybe one more byte is needed?)
|
||||
@@ -354,9 +357,6 @@ ResultOfTankNr
|
||||
.DS 1
|
||||
|
||||
;----------------------------
|
||||
oldPlotPointerX
|
||||
.ds 2
|
||||
;----------------------------
|
||||
;PutChar4x4
|
||||
LoopCounter4x4 .DS 1
|
||||
y4x4 .DS 1
|
||||
|
||||
+7
-7
@@ -218,10 +218,10 @@ DoNotEor
|
||||
mwa ytrajfb ytraj+1
|
||||
jsr Flight
|
||||
|
||||
jsr CalculateExplosionRange
|
||||
lda HitFlag
|
||||
beq NoExplosionInFunkyBomb
|
||||
jsr CalculateExplosionRange
|
||||
jsr xmissile
|
||||
jsr xmissile
|
||||
NoExplosionInFunkyBomb
|
||||
dec FunkyBombCounter
|
||||
bne FunkyBombLoop
|
||||
@@ -1673,7 +1673,7 @@ SkipCollisionCheck
|
||||
jsr UnPlot
|
||||
|
||||
NoUnPlot
|
||||
jsr PlotPointer
|
||||
; jsr PlotPointer
|
||||
|
||||
jmp Loopi
|
||||
|
||||
@@ -2020,7 +2020,6 @@ mrSkipCollisionCheck
|
||||
jsr unPlot.unPlotAfterX
|
||||
ldx MirvMissileCounter
|
||||
jne mrLoopi
|
||||
jsr PlotPointer ; pointer only for bullet nr 0
|
||||
|
||||
jmp mrLoopi
|
||||
|
||||
@@ -2241,9 +2240,10 @@ HowManyBullets .proc
|
||||
ShellDelay .proc
|
||||
ldx flyDelay
|
||||
DelayLoop
|
||||
sta wsync
|
||||
sta wsync
|
||||
dex
|
||||
lda VCOUNT
|
||||
@ cmp VCOUNT
|
||||
beq @-
|
||||
dex
|
||||
bne DelayLoop
|
||||
rts
|
||||
.endp
|
||||
|
||||
Reference in New Issue
Block a user