build 134

This commit is contained in:
2022-04-10 11:18:29 -04:00
parent c7f09261f6
commit 0f6e171e5c
12 changed files with 154 additions and 185 deletions
+8 -4
View File
@@ -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 by Tomasz 'pecus' Pecko and Pawel 'pirx' Kalinowski
Warsaw, Miami 2000, 2001, 2002, 2003, 2009, 2012, 2013, 2022 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 You can contact us at pecus@poczta.fm or pirx@5oft.pl
home page of this project is https://github.com/pkali/scorch_src home page of this project is https://github.com/pkali/scorch_src
This source code was originally compiled under OMC65 crossassembler 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).
(https://github.com/pkali/omc65)
and on 2012-06-21 translated to mads Compilation: `mads scorch.asm -o:scorch.xex`
Game source code is split into 5+3 parts: Game source code is split into 5+3 parts:
- scorch.asm is the main game code (with many assorted routines) - scorch.asm is the main game code (with many assorted routines)
-55
View File
@@ -345,58 +345,3 @@ loop
rts rts
.endp .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
+17 -16
View File
@@ -7,7 +7,15 @@
;icl "HIMARS14.h" ;icl "HIMARS14.h"
;ICL '../lib/atari.hea' ;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_copy .ds 9
chn_pos .ds 9 chn_pos .ds 9
@@ -26,22 +34,15 @@ skip
rts rts
.endp .endp
song_ptr = get_byte + 1 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 ; --- MAIN PROGRAM
org $2000 org $2000
ant dta $F0 ant dta $F0
+59 -12
View File
@@ -13,7 +13,6 @@ CashOptionH
GravityTable .by 10,20,25,30,40 GravityTable .by 10,20,25,30,40
MaxWindTable .by 5,20,40,60,80 MaxWindTable .by 5,20,40,60,80
RoundsTable .by 10,20,30,40,50 RoundsTable .by 10,20,30,40,50
RoundsInTheGame .by 10 ;how many rounds in the current game
flyDelayTable .by 255,150,75,35,1 flyDelayTable .by 255,150,75,35,1
;------------------------------------------------ ;------------------------------------------------
@@ -284,12 +283,8 @@ costable
linetableL linetableL
:screenheight .by <(display+screenBytes*#) :screenheight .by <(display+screenBytes*#)
;:20 .by <(display+screenBytes*#)
.by <PlotLine
linetableH linetableH
:screenheight .by >(display+screenBytes*#) :screenheight .by >(display+screenBytes*#)
;:20 .by >(display+screenBytes*#)
.by >PlotLine
;---------------------------- ;----------------------------
bittable bittable
.by $80,$40,$20,$10,$08,$04,$02,$01 .by $80,$40,$20,$10,$08,$04,$02,$01
@@ -327,7 +322,7 @@ WhereToSlideTable
.BY %000 ; 00001001 .BY %000 ; 00001001
.BY %000 ; 00001010 .BY %000 ; 00001010
.BY %000 ; 00001011 .BY %000 ; 00001011
.BY %000 ; 00001100 .BY %100 ; 00001100
.BY %000 ; 00001101 .BY %000 ; 00001101
.BY %000 ; 00001110 .BY %000 ; 00001110
.BY %000 ; 00001111 .BY %000 ; 00001111
@@ -630,12 +625,12 @@ EndOfTheBarrelY
;------------------------------------------------- ;-------------------------------------------------
TanksNamesDefault TanksNamesDefault
dta d"1st Tank" dta d"1st.Tank"
dta d"2nd Tank" dta d"2nd.Tank"
dta d"3rd Tank" dta d"3rd.Tank"
dta d"4th Tank" dta d"4th.Tank"
dta d"5th Tank" dta d"5th.Tank"
dta d"6th Tank" dta d"6th.Tank"
;Weapon prices (*10 on screen) ;Weapon prices (*10 on screen)
price_Baby_Missile___ = 0 ;_0 price_Baby_Missile___ = 0 ;_0
@@ -907,6 +902,58 @@ WeaponUnits
.by 25 ;Contact_Trigger .by 25 ;Contact_Trigger
.by 0 ;_____________63 .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 ; Screen codes of icons (chars) representing a given weapon
WeaponSymbols WeaponSymbols
+2 -6
View File
@@ -51,10 +51,7 @@ dl ; MAIN game display list
.byte $42 .byte $42
.word textbuffer .word textbuffer
.byte $02, $02 +$80 ;DLI .byte $02, $02 +$80 ;DLI
.byte $00 .byte $10 ; 2 blank lines
.byte $4f
.word PlotLine
.byte $4f .byte $4f
.word display .word display
@@ -66,12 +63,11 @@ dl ; MAIN game display list
:97 .byte $0f :97 .byte $0f
.byte $41 .byte $41
.word dl .word dl
PlotLine = display + screenHeight*screenBytes ; the last line is plot pointer
;----------------------------------------------- ;-----------------------------------------------
;Screen displays go first to avoid crossing 4kb barrier ;Screen displays go first to avoid crossing 4kb barrier
;----------------------------------------------- ;-----------------------------------------------
OptionsScreen 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" Please select option with cursor keys "
dta d" and press (Return) to proceed " dta d" and press (Return) to proceed "
OptionsHere OptionsHere
+4 -28
View File
@@ -977,6 +977,7 @@ EndDrawing
.endp .endp
; ----------------------------------------- ; -----------------------------------------
unPlot .proc unPlot .proc
; plots a point and saves the plotted byte, reverts the previous plot.
; ----------------------------------------- ; -----------------------------------------
ldx #0 ; only one pixel ldx #0 ; only one pixel
unPlotAfterX unPlotAfterX
@@ -996,7 +997,8 @@ unPlotAfterX
; is it not out of the screen ???? ; is it not out of the screen ????
cpw ydraw #screenheight cpw ydraw #screenheight
jcs EndOfUnPlot jcc CheckX
mwa #0 ydraw
CheckX CheckX
cpw xdraw #screenwidth cpw xdraw #screenwidth
jcs EndOfUnPlot jcs EndOfUnPlot
@@ -1032,6 +1034,7 @@ MakeUnPlot
lda color lda color
beq ClearUnPlot beq ClearUnPlot
;plotting here
lda (xbyte),y lda (xbyte),y
sta OldOraTemp sta OldOraTemp
ora bittable,x ora bittable,x
@@ -1174,33 +1177,6 @@ point .proc
rts rts
.endp .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 DrawLine .proc
;-------------------------------------------------- ;--------------------------------------------------
+43 -43
View File
@@ -103,8 +103,8 @@ CONSOL = $D01F ; rejestr stanu klawiszy konsoli Start (bit 0), Select (bit 1),
* --- POKEY * --- POKEY
* --------------------------------------------------------------------------------------------- * ---------------------------------------------------------------------------------------------
IRQENS = $0010 ; rejestr-cie IRQEN IRQENS = $0010 ; shadow register IRQEN
IRQSTAT = $0011 ; rejestr-cie IRQST IRQSTAT = $0011 ; shadow register IRQST
AUDF3 = $D204 ; czstotliwo pracy generatora 3 (Z) AUDF3 = $D204 ; czstotliwo pracy generatora 3 (Z)
AUDCTL = $D208 ; rejestr kontroli generatorw dwiku (Z) AUDCTL = $D208 ; rejestr kontroli generatorw dwiku (Z)
@@ -147,22 +147,22 @@ NMIST = $D40F ; rejestr statusu przerwa NMI
;------------------------------------- ;-------------------------------------
;additional system variables ;additional system variables
;------------------------------------- ;-------------------------------------
COLPM0S = $02C0 ;- - rejestr-cie COLPM0 COLPM0S = $02C0 ;- - shadow register COLPM0
COLPM1S = $02C1 ;- - rejestr-cie COLPM1 COLPM1S = $02C1 ;- - shadow register COLPM1
COLPM2S = $02C2 ;- - rejestr-cie COLPM2 COLPM2S = $02C2 ;- - shadow register COLPM2
COLPM3S = $02C3 ;- - rejestr-cie COLPM3 COLPM3S = $02C3 ;- - shadow register COLPM3
COLPF0S = $02C4 ;- - rejestr-cie COLPF0 COLPF0S = $02C4 ;- - shadow register COLPF0
COLPF1S = $02C5 ;- - rejestr-cie COLPF1 COLPF1S = $02C5 ;- - shadow register COLPF1
COLPF2S = $02C6 ;- - rejestr-cie COLPF2 COLPF2S = $02C6 ;- - shadow register COLPF2
COLPF3S = $02C7 ;- - rejestr-cie COLPF3 COLPF3S = $02C7 ;- - shadow register COLPF3
COLBAKS = $02C8 COLBAKS = $02C8
GTICTLS = $026F ;- - rejestr-cie GTIACTL GTICTLS = $026F ;- - shadow register GTIACTL
DMACTLS = $022F ;- - rejestr kontroli dostpu do pamici - 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 ;- - shadow register CHBASE
KBCODES = $02FC ;- - rejestr-cie KBCODE KBCODES = $02FC ;- - shadow register KBCODE
SETVBV = $E45C SETVBV = $E45C
XITVBV = $E462 XITVBV = $E462
@@ -178,10 +178,10 @@ JSTICK2 = $027A ;- JSTICK2 - pooenie joysticka 0
JSTICK3 = $027B ;- JSTICK3 - pooenie 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, shadow register TRIG0
TRIG1S = $0285 ;- TRIG1S - przycisk joysticka 1, rejestr-cie TRIG1 TRIG1S = $0285 ;- TRIG1S - przycisk joysticka 1, shadow register TRIG1
TRIG2S = $0286 ;- TRIG2S - rejestr-cie TRIG0 TRIG2S = $0286 ;- TRIG2S - shadow register TRIG0
TRIG3S = $0287 ;- TRIG3S - rejestr-cie TRIG1 TRIG3S = $0287 ;- TRIG3S - shadow register TRIG1
/* /*
@@ -189,8 +189,8 @@ Rejestry OS w pamici RAM
$08 - WARMST - znacznik gorcego startu $08 - WARMST - znacznik gorcego startu
$0E - APPMHI - najwyszy adres RAM zajty przez program $0E - APPMHI - najwyszy adres RAM zajty przez program
$10 - IRQENS - rejestr-cie IRQEN $10 - IRQENS - shadow register IRQEN
$11 - IRQSTAT - rejestr-cie IRQST $11 - IRQSTAT - shadow register 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 przejciowy kodu operacji I/O $17 - ICCOMT - rejestr przejciowy kodu operacji I/O
@@ -267,12 +267,12 @@ $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 - shadow register DMACTL
$0230 - DLPTRS - rejestr-cie DLPTR $0230 - DLPTRS - shadow register DLPTR
$0232 - SKCTLS - rejestr-cie SKCTL $0232 - SKCTLS - shadow register SKCTL
$0233 - LCOUNT - licznik odczytu dla nowego urzdzenia $0233 - LCOUNT - licznik odczytu dla nowego urzdzenia
$0234 - LPENHS - rejestr-cie LPENH $0234 - LPENHS - shadow register LPENH
$0235 - LPENVS - rejestr-cie LPENV $0235 - LPENVS - shadow register LPENV
$023A - CDEVIC - kod urzdzenia 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
@@ -283,25 +283,25 @@ $0244 - COLDST - znacznik zimnego startu systemu
$0245 - RECLEN - dugo rekordu z nowego urzdzenia $0245 - RECLEN - dugo rekordu z nowego urzdzenia
$0246 - DSKTIM - warto Timeout dla stacji dyskw $0246 - DSKTIM - warto Timeout dla stacji dyskw
$0247 - PDVMSK - maska obecnoci nowych urzdze $0247 - PDVMSK - maska obecnoci nowych urzdze
$0248 - PDVRS - rejestr-cie PDVREG $0248 - PDVRS - shadow register PDVREG
$024A - RELADR - adres procedury przemieszczalnej $024A - RELADR - adres procedury przemieszczalnej
$024C - PPTMPA - rejestr przechowania zawartoci akumulatora $024C - PPTMPA - rejestr przechowania zawartoci akumulatora
$024D - PPTMPX - rejestr przechowania zawartoci rejestru X $024D - PPTMPX - rejestr przechowania zawartoci rejestru X
$026B - CHSPTR - wektor nieuywanego zestawu znakw $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 - shadow register GTIACTL
$0270 - PADDL0 - rejestr-cie POT0 $0270 - PADDL0 - shadow register POT0
$0278 - JSTICK0 - pooenie joysticka 0 $0278 - JSTICK0 - pooenie joysticka 0
$0279 - JSTICK1 - pooenie joysticka 1 $0279 - JSTICK1 - pooenie joysticka 1
$027A - JSTICK2 - pooenie joysticka 0 $027A - JSTICK2 - pooenie joysticka 0
$027B - JSTICK3 - pooenie 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, shadow register TRIG0
$0285 - TRIG1S - przycisk joysticka 1, rejestr-cie TRIG1 $0285 - TRIG1S - przycisk joysticka 1, shadow register TRIG1
$0286 - TRIG2S - rejestr-cie TRIG0 $0286 - TRIG2S - shadow register TRIG0
$0287 - TRIG3S - rejestr-cie TRIG1 $0287 - TRIG3S - shadow register TRIG1
$0288 - HIBYTE - indeks operacji nowego urzdzenia $0288 - HIBYTE - indeks operacji nowego urzdzenia
$0289 - WMODE - znacznik sposobu dostpu do magnetofonu $0289 - WMODE - znacznik sposobu dostpu do magnetofonu
$028A - BLIM - dugo bufora magnetofonu $028A - BLIM - dugo bufora magnetofonu
@@ -326,15 +326,15 @@ $02BC - HOLD4 - pomocniczy rejestr przejciowy
$02BD - DRETRY - liczba powtrze wywoa urzdzenia $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 - shadow register COLPM0
$02C1 - COLPM1S - rejestr-cie COLPM1 $02C1 - COLPM1S - shadow register COLPM1
$02C2 - COLPM2S - rejestr-cie COLPM2 $02C2 - COLPM2S - shadow register COLPM2
$02C3 - COLPM3S - rejestr-cie COLPM3 $02C3 - COLPM3S - shadow register COLPM3
$02C4 - COLPF0S - rejestr-cie COLPF0 $02C4 - COLPF0S - shadow register COLPF0
$02C5 - COLPF1S - rejestr-cie COLPF1 ;gr.8 letters $02C5 - COLPF1S - shadow register COLPF1 ;gr.8 letters
$02C6 - COLPF2S - rejestr-cie COLPF2 ;gr.8 background $02C6 - COLPF2S - shadow register COLPF2 ;gr.8 background
$02C7 - COLPF3S - rejestr-cie COLPF3 $02C7 - COLPF3S - shadow register COLPF3
$02C8 - COLBAKS - rejestr-cie COLBAK $02C8 - COLBAKS - shadow register COLBAK
$02C9 - RUNADR - adres procedury nowego urzdzenia $02C9 - RUNADR - adres procedury nowego urzdzenia
$02CB - HIUSED - adres kocowy procedury nowego urzdzenia $02CB - HIUSED - adres kocowy procedury nowego urzdzenia
$02CF - GBYTEA - adres procedury nowego urzdzenia $02CF - GBYTEA - adres procedury nowego urzdzenia
@@ -352,15 +352,15 @@ $02EC - DVTMOT - dodatkowy rejestr Timeout urzdzenia
$02ED - REVNUM - numer wersji nowego urzdzenia $02ED - REVNUM - numer wersji nowego urzdzenia
$02EE - CBAUD - prdko transmisji z magnetofonu $02EE - CBAUD - prdko transmisji z magnetofonu
$02F0 - CRSINH - znacznik widocznoci kursora $02F0 - CRSINH - znacznik widocznoci kursora
$02F3 - CHACT - rejestr-cie CHRCTL $02F3 - CHACT - shadow register CHRCTL
$02F4 - CHBAS - rejestr-cie CHBASE $02F4 - CHBAS - shadow register 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 wewntrzny znaku $02FA - CHAR - kod wewntrzny znaku
$02FB - ATACHR - kod ATASCII znaku $02FB - ATACHR - kod ATASCII znaku
$02FC - KBCODES - rejestr-cie KBCODE $02FC - KBCODES - shadow register KBCODE
$02FD - FILDAT - numer koloru dla wypeniania $02FD - FILDAT - numer koloru dla wypeniania
$02FE - DSPFLG - znacznik wywietlania znakw kontrolnych $02FE - DSPFLG - znacznik wywietlania znakw kontrolnych
$02FF - SSFLAG - znacznik start/stop dla przesuwu obrazu $02FF - SSFLAG - znacznik start/stop dla przesuwu obrazu
-2
View File
@@ -715,8 +715,6 @@ deletePtr = temp
lda #0 lda #0
sta Erase sta Erase
sta tracerflag sta tracerflag
sta oldPlotPointerX
sta oldPlotPointerX+1
sta GameIsOver sta GameIsOver
BIN
View File
Binary file not shown.
+8 -6
View File
@@ -823,11 +823,13 @@ NoArrowDown
jsr PMoutofScreen jsr PMoutofScreen
; display tank number ; display tank number
ldx tanknr ldx tanknr
lda skillTable,x
sta difficultyLevel
inx inx
stx decimal stx decimal
mwa #(NameScreen+41) displayposition mwa #(NameScreen+41) displayposition
jsr displaybyte 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 ; clear tank name editor field
ldx #8 ldx #8
@@ -919,7 +921,7 @@ ChangeOfLevelUp ; change difficulty level of computer opponent
bne DoNotLoopLevelUp bne DoNotLoopLevelUp
mva #$0 DifficultyLevel mva #$0 DifficultyLevel
DoNotLoopLevelUp DoNotLoopLevelUp
jsr SelectLevel jsr HighlightLevel
jmp CheckKeys jmp CheckKeys
;---- ;----
ChangeOfLevelDown ChangeOfLevelDown
@@ -927,7 +929,7 @@ ChangeOfLevelDown
bpl DoNotLoopLevelDown bpl DoNotLoopLevelDown
mva #$8 DifficultyLevel mva #$8 DifficultyLevel
DoNotLoopLevelDown DoNotLoopLevelDown
jsr SelectLevel jsr HighlightLevel
jmp CheckKeys jmp CheckKeys
;---- ;----
ChangeOfLevel3Up ChangeOfLevel3Up
@@ -939,7 +941,7 @@ ChangeOfLevel3Up
sbb DifficultyLevel #9 sbb DifficultyLevel #9
DoNotLoopLevel3Up DoNotLoopLevel3Up
jsr SelectLevel jsr HighlightLevel
jmp CheckKeys jmp CheckKeys
;---- ;----
ChangeOfLevel3Down ChangeOfLevel3Down
@@ -947,7 +949,7 @@ ChangeOfLevel3Down
bpl @+ bpl @+
adb DifficultyLevel #9 adb DifficultyLevel #9
@ @
jsr SelectLevel jsr HighlightLevel
jmp CheckKeys jmp CheckKeys
;---- ;----
EndOfNick EndOfNick
@@ -992,7 +994,7 @@ nextchar05
.endp .endp
.proc SelectLevel .proc HighlightLevel
; this routine highlights the choosen ; this routine highlights the choosen
; level of the computer opponent ; level of the computer opponent
ldx #8 ; 9 possible levels ldx #8 ; 9 possible levels
+6 -6
View File
@@ -16,7 +16,13 @@ TanksNames ; DO NOT ZERO - ticket #24
;---------------------------- ;----------------------------
;Options DO NOT ZERO - ticket #27 ;Options DO NOT ZERO - ticket #27
OptionsTable .by 0,0,2,2,0,1 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 variablesStart ; zeroing starts here
;-------------- ;--------------
OptionsY .ds 0 ;vertical position of cursor on Options screen 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 TankSequence .DS [MaxPlayers] ;sequence of shooting during the Round
GameIsOver .DS 1 ; 1 - it was the last round in the game 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 moneyH ;we place zero at the end of prices and money
;and have range from 0 to 99990 (not too much) ;and have range from 0 to 99990 (not too much)
;money players have (maybe one more byte is needed?) ;money players have (maybe one more byte is needed?)
@@ -354,9 +357,6 @@ ResultOfTankNr
.DS 1 .DS 1
;---------------------------- ;----------------------------
oldPlotPointerX
.ds 2
;----------------------------
;PutChar4x4 ;PutChar4x4
LoopCounter4x4 .DS 1 LoopCounter4x4 .DS 1
y4x4 .DS 1 y4x4 .DS 1
+7 -7
View File
@@ -218,10 +218,10 @@ DoNotEor
mwa ytrajfb ytraj+1 mwa ytrajfb ytraj+1
jsr Flight jsr Flight
jsr CalculateExplosionRange
lda HitFlag lda HitFlag
beq NoExplosionInFunkyBomb beq NoExplosionInFunkyBomb
jsr CalculateExplosionRange jsr xmissile
jsr xmissile
NoExplosionInFunkyBomb NoExplosionInFunkyBomb
dec FunkyBombCounter dec FunkyBombCounter
bne FunkyBombLoop bne FunkyBombLoop
@@ -1673,7 +1673,7 @@ SkipCollisionCheck
jsr UnPlot jsr UnPlot
NoUnPlot NoUnPlot
jsr PlotPointer ; jsr PlotPointer
jmp Loopi jmp Loopi
@@ -2020,7 +2020,6 @@ mrSkipCollisionCheck
jsr unPlot.unPlotAfterX jsr unPlot.unPlotAfterX
ldx MirvMissileCounter ldx MirvMissileCounter
jne mrLoopi jne mrLoopi
jsr PlotPointer ; pointer only for bullet nr 0
jmp mrLoopi jmp mrLoopi
@@ -2241,9 +2240,10 @@ HowManyBullets .proc
ShellDelay .proc ShellDelay .proc
ldx flyDelay ldx flyDelay
DelayLoop DelayLoop
sta wsync lda VCOUNT
sta wsync @ cmp VCOUNT
dex beq @-
dex
bne DelayLoop bne DelayLoop
rts rts
.endp .endp