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
|
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)
|
||||||
|
|||||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 ; cz�stotliwo�� pracy generatora 3 (Z)
|
AUDF3 = $D204 ; cz�stotliwo�� pracy generatora 3 (Z)
|
||||||
AUDCTL = $D208 ; rejestr kontroli generator�w d�wi�ku (Z)
|
AUDCTL = $D208 ; rejestr kontroli generator�w d�wi�ku (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 dost�pu do pami�ci - cie�
|
DMACTLS = $022F ;- - rejestr kontroli dost�pu do pami�ci - 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 - po�o�enie joysticka 0
|
|||||||
JSTICK3 = $027B ;- JSTICK3 - po�o�enie joysticka 1
|
JSTICK3 = $027B ;- JSTICK3 - po�o�enie 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 pami�ci RAM
|
|||||||
|
|
||||||
$08 - WARMST - znacznik gor�cego startu
|
$08 - WARMST - znacznik gor�cego startu
|
||||||
$0E - APPMHI - najwy�szy adres RAM zaj�ty przez program
|
$0E - APPMHI - najwy�szy adres RAM zaj�ty 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 przej�ciowy kodu operacji I/O
|
$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
|
$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 urz�dzenia
|
$0233 - LCOUNT - licznik odczytu dla nowego urz�dzenia
|
||||||
$0234 - LPENHS - rejestr-cie� LPENH
|
$0234 - LPENHS - shadow register LPENH
|
||||||
$0235 - LPENVS - rejestr-cie� LPENV
|
$0235 - LPENVS - shadow register LPENV
|
||||||
$023A - CDEVIC - kod urz�dzenia dla SIO
|
$023A - CDEVIC - kod urz�dzenia 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 - d�ugo�� rekordu z nowego urz�dzenia
|
$0245 - RECLEN - d�ugo�� rekordu z nowego urz�dzenia
|
||||||
$0246 - DSKTIM - warto�� Timeout dla stacji dysk�w
|
$0246 - DSKTIM - warto�� Timeout dla stacji dysk�w
|
||||||
$0247 - PDVMSK - maska obecno�ci nowych urz�dze�
|
$0247 - PDVMSK - maska obecno�ci nowych urz�dze�
|
||||||
$0248 - PDVRS - rejestr-cie� PDVREG
|
$0248 - PDVRS - shadow register PDVREG
|
||||||
$024A - RELADR - adres procedury przemieszczalnej
|
$024A - RELADR - adres procedury przemieszczalnej
|
||||||
$024C - PPTMPA - rejestr przechowania zawarto�ci akumulatora
|
$024C - PPTMPA - rejestr przechowania zawarto�ci akumulatora
|
||||||
$024D - PPTMPX - rejestr przechowania zawarto�ci rejestru X
|
$024D - PPTMPX - rejestr przechowania zawarto�ci rejestru X
|
||||||
$026B - CHSPTR - wektor nieu�ywanego zestawu znak�w
|
$026B - CHSPTR - wektor nieu�ywanego zestawu znak�w
|
||||||
$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 - po�o�enie joysticka 0
|
$0278 - JSTICK0 - po�o�enie joysticka 0
|
||||||
$0279 - JSTICK1 - po�o�enie joysticka 1
|
$0279 - JSTICK1 - po�o�enie joysticka 1
|
||||||
$027A - JSTICK2 - po�o�enie joysticka 0
|
$027A - JSTICK2 - po�o�enie joysticka 0
|
||||||
$027B - JSTICK3 - po�o�enie joysticka 1
|
$027B - JSTICK3 - po�o�enie 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 urz�dzenia
|
$0288 - HIBYTE - indeks operacji nowego urz�dzenia
|
||||||
$0289 - WMODE - znacznik sposobu dost�pu do magnetofonu
|
$0289 - WMODE - znacznik sposobu dost�pu do magnetofonu
|
||||||
$028A - BLIM - d�ugo�� bufora 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
|
$02BD - DRETRY - liczba powt�rze� wywo�a� urz�dzenia
|
||||||
$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 urz�dzenia
|
$02C9 - RUNADR - adres procedury nowego urz�dzenia
|
||||||
$02CB - HIUSED - adres ko�cowy procedury nowego urz�dzenia
|
$02CB - HIUSED - adres ko�cowy procedury nowego urz�dzenia
|
||||||
$02CF - GBYTEA - adres 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
|
$02ED - REVNUM - numer wersji nowego urz�dzenia
|
||||||
$02EE - CBAUD - pr�dko�� transmisji z magnetofonu
|
$02EE - CBAUD - pr�dko�� transmisji z magnetofonu
|
||||||
$02F0 - CRSINH - znacznik widoczno�ci kursora
|
$02F0 - CRSINH - znacznik widoczno�ci 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 wewn�trzny znaku
|
$02FA - CHAR - kod wewn�trzny 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 wype�niania
|
$02FD - FILDAT - numer koloru dla wype�niania
|
||||||
$02FE - DSPFLG - znacznik wy�wietlania znak�w kontrolnych
|
$02FE - DSPFLG - znacznik wy�wietlania znak�w kontrolnych
|
||||||
$02FF - SSFLAG - znacznik start/stop dla przesuwu obrazu
|
$02FF - SSFLAG - znacznik start/stop dla przesuwu obrazu
|
||||||
|
|||||||
@@ -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
Binary file not shown.
+8
-6
@@ -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
@@ -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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user