mirror of
https://github.com/Pecusx/scorch_src.git
synced 2026-05-20 22:33:43 +02:00
build 125, splash screen added
This commit is contained in:
@@ -0,0 +1,320 @@
|
||||
/***************************************/
|
||||
/* Use MADS http://mads.atari8.info/ */
|
||||
/* Mode: DLI (char mode) */
|
||||
/***************************************/
|
||||
|
||||
;icl "HIMARS14.h"
|
||||
;ICL '../lib/atari.hea'
|
||||
|
||||
org $f0
|
||||
|
||||
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
|
||||
|
||||
; --- MAIN PROGRAM
|
||||
org $2000
|
||||
ant dta $F0
|
||||
dta $42,a(scr),$02,$02,$02,$02,$02,$02,$02,$02,$02,$82,$02,$02,$02,$02,$82
|
||||
dta $02,$02,$02,$82,$82,$82,$02,$82,$02,$02,$02,$82,$70
|
||||
dta $41,a(ant)
|
||||
|
||||
scr ins "HIMARS14.scr"
|
||||
|
||||
.ds 2*40
|
||||
|
||||
.ALIGN $0400
|
||||
fnt ins "HIMARS14.fnt"
|
||||
|
||||
ift USESPRITES
|
||||
.ALIGN $0800
|
||||
pmg .ds $0300
|
||||
ift FADECHR = 0
|
||||
SPRITES
|
||||
els
|
||||
.ds $500
|
||||
eif
|
||||
eif
|
||||
|
||||
main
|
||||
; --- init PMG
|
||||
|
||||
ift USESPRITES
|
||||
mva >pmg pmbase ;missiles and players data address
|
||||
mva #$03 pmcntl ;enable players and missiles
|
||||
eif
|
||||
|
||||
lda:cmp:req $14 ;wait 1 frame
|
||||
|
||||
sei ;stop IRQ interrupts
|
||||
mva #$00 nmien ;stop NMI interrupts
|
||||
sta dmactl
|
||||
mva #$fe portb ;switch off ROM to get 16k more ram
|
||||
|
||||
mwa #NMI $fffa ;new NMI handler
|
||||
|
||||
mva #$c0 nmien ;switch on NMI+DLI again
|
||||
|
||||
ift CHANGES ;if label CHANGES defined
|
||||
|
||||
_lp lda trig0 ; FIRE #0
|
||||
beq stop
|
||||
|
||||
lda trig1 ; FIRE #1
|
||||
beq stop
|
||||
|
||||
lda consol ; START
|
||||
and #1
|
||||
beq stop
|
||||
|
||||
lda skctl
|
||||
and #$04
|
||||
bne _lp ;wait to press any key; here you can put any own routine
|
||||
|
||||
els
|
||||
|
||||
null jmp DLI.dli1 ;CPU is busy here, so no more routines allowed
|
||||
|
||||
eif
|
||||
|
||||
|
||||
stop
|
||||
mva #$00 pmcntl ;PMG disabled
|
||||
tax
|
||||
sta:rne hposp0,x+
|
||||
|
||||
mva #$ff portb ;ROM switch on
|
||||
mva #$40 nmien ;only NMI interrupts, DLI disabled
|
||||
cli ;IRQ enabled
|
||||
|
||||
rts ;return to ... DOS
|
||||
|
||||
; --- DLI PROGRAM
|
||||
|
||||
.local DLI
|
||||
|
||||
?old_dli = *
|
||||
|
||||
ift !CHANGES
|
||||
|
||||
dli1 lda trig0 ; FIRE #0
|
||||
beq stop
|
||||
|
||||
lda trig1 ; FIRE #1
|
||||
beq stop
|
||||
|
||||
lda consol ; START
|
||||
and #1
|
||||
beq stop
|
||||
|
||||
lda skctl
|
||||
and #$04
|
||||
beq stop
|
||||
|
||||
lda vcount
|
||||
cmp #$02
|
||||
bne dli1
|
||||
|
||||
:3 sta wsync
|
||||
|
||||
DLINEW dli10
|
||||
|
||||
eif
|
||||
|
||||
dli_start
|
||||
|
||||
dli10
|
||||
sta regA
|
||||
|
||||
c4 lda #$04
|
||||
sta wsync ;line=8
|
||||
sta color0
|
||||
sta gtictl
|
||||
DLINEW DLI.dli2 1 0 0
|
||||
|
||||
dli2
|
||||
sta regA
|
||||
lda >fnt+$400*$01
|
||||
sta wsync ;line=96
|
||||
sta chbase
|
||||
DLINEW dli3 1 0 0
|
||||
|
||||
dli3
|
||||
sta regA
|
||||
lda >fnt+$400*$02
|
||||
sta wsync ;line=136
|
||||
sta chbase
|
||||
DLINEW dli4 1 0 0
|
||||
|
||||
dli4
|
||||
sta regA
|
||||
lda >fnt+$400*$01
|
||||
sta wsync ;line=168
|
||||
sta chbase
|
||||
DLINEW dli5 1 0 0
|
||||
|
||||
dli5
|
||||
sta regA
|
||||
lda >fnt+$400*$02
|
||||
sta wsync ;line=176
|
||||
sta chbase
|
||||
DLINEW dli6 1 0 0
|
||||
|
||||
dli6
|
||||
sta regA
|
||||
lda >fnt+$400*$03
|
||||
sta wsync ;line=184
|
||||
sta chbase
|
||||
DLINEW dli7 1 0 0
|
||||
|
||||
dli7
|
||||
sta regA
|
||||
lda >fnt+$400*$00
|
||||
sta wsync ;line=200
|
||||
sta chbase
|
||||
DLINEW dli11 1 0 0
|
||||
|
||||
dli11
|
||||
sta regA
|
||||
|
||||
lda #$01
|
||||
sta wsync ;line=232
|
||||
sta gtictl
|
||||
|
||||
lda regA
|
||||
rti
|
||||
|
||||
.endl
|
||||
|
||||
; ---
|
||||
|
||||
CHANGES = 1
|
||||
FADECHR = 0
|
||||
|
||||
SCHR = 127
|
||||
|
||||
; ---
|
||||
|
||||
.proc NMI
|
||||
|
||||
bit nmist
|
||||
bpl VBL
|
||||
|
||||
jmp DLI.dli_start
|
||||
dliv equ *-2
|
||||
|
||||
VBL
|
||||
sta regA
|
||||
stx regX
|
||||
sty regY
|
||||
|
||||
sta nmist ;reset NMI flag
|
||||
|
||||
mwa #ant dlptr ;ANTIC address program
|
||||
|
||||
mva #@dmactl(standard|dma|lineX1) dmactl ;set new screen width
|
||||
|
||||
inc cloc ;little timer
|
||||
|
||||
; Initial values
|
||||
|
||||
lda >fnt+$400*$00
|
||||
sta chbase
|
||||
c0 lda #$00
|
||||
sta colbak
|
||||
lda #$02
|
||||
sta chrctl
|
||||
lda #$01
|
||||
sta gtictl
|
||||
c1 lda #$0C
|
||||
sta color1
|
||||
c2 lda #$02
|
||||
sta color2
|
||||
c3 lda #$0E
|
||||
sta color3
|
||||
x0 lda #$00
|
||||
sta hposp0
|
||||
sta hposp1
|
||||
sta hposp2
|
||||
sta hposp3
|
||||
sta hposm0
|
||||
sta hposm1
|
||||
sta hposm2
|
||||
sta hposm3
|
||||
sta sizep0
|
||||
sta sizep1
|
||||
sta sizep2
|
||||
sta sizep3
|
||||
sta sizem
|
||||
sta colpm0
|
||||
sta colpm1
|
||||
sta colpm2
|
||||
sta colpm3
|
||||
sta color0
|
||||
|
||||
mwa #DLI.dli_start dliv ;set the first address of DLI interrupt
|
||||
|
||||
;this area is for yours routines
|
||||
|
||||
quit
|
||||
lda regA
|
||||
ldx regX
|
||||
ldy regY
|
||||
rti
|
||||
|
||||
.endp
|
||||
|
||||
; ---
|
||||
ini main
|
||||
; ---
|
||||
|
||||
opt l-
|
||||
|
||||
.MACRO SPRITES
|
||||
missiles
|
||||
.ds $100
|
||||
player0
|
||||
.ds $100
|
||||
player1
|
||||
.ds $100
|
||||
player2
|
||||
.ds $100
|
||||
player3
|
||||
.ds $100
|
||||
.ENDM
|
||||
|
||||
USESPRITES = 0
|
||||
|
||||
.MACRO DLINEW
|
||||
mva <:1 NMI.dliv
|
||||
ift [>?old_dli]<>[>:1]
|
||||
mva >:1 NMI.dliv+1
|
||||
eif
|
||||
|
||||
ift :2
|
||||
lda regA
|
||||
eif
|
||||
|
||||
ift :3
|
||||
ldx regX
|
||||
eif
|
||||
|
||||
ift :4
|
||||
ldy regY
|
||||
eif
|
||||
|
||||
rti
|
||||
|
||||
.def ?old_dli = *
|
||||
.ENDM
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,10 @@
|
||||
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,
|
||||
|
||||
+9
-59
@@ -15,8 +15,8 @@ MoreUpdl
|
||||
.byte 0,$42
|
||||
WeaponsListDL
|
||||
.word ListOfWeapons
|
||||
.byte 0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0
|
||||
.byte $42
|
||||
:15 .byte 0,2
|
||||
.byte 0, $42
|
||||
MoreDownDL
|
||||
.word EmptyLine
|
||||
.byte $10,$42
|
||||
@@ -26,7 +26,7 @@ MoreDownDL
|
||||
.word PurchaseDL
|
||||
;------------------------
|
||||
OptionsDL
|
||||
.byte $70,$70,$70,$70,$70
|
||||
:5 .byte $70
|
||||
.byte $42
|
||||
.word OptionsScreen
|
||||
.byte $02,$02,$70,$02,0,$02,0,$2,0,$2
|
||||
@@ -35,7 +35,7 @@ OptionsDL
|
||||
;------------------------
|
||||
;Enter names of tanks DL
|
||||
NameDL
|
||||
.byte $70,$70,$70,$70,$70
|
||||
:5 .byte $70
|
||||
.byte $42
|
||||
.word NameScreen
|
||||
.byte $30
|
||||
@@ -77,7 +77,7 @@ 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. 124 (cc)2000-2013"
|
||||
dta d"Welcome to Scorch ver. 125 (un)2000-2022"
|
||||
dta d" Please select option with cursor keys "
|
||||
dta d" and press (Return) to proceed "
|
||||
OptionsHere
|
||||
@@ -119,60 +119,10 @@ MoreDown
|
||||
dta 93,93,93
|
||||
dta d" "
|
||||
ListOfWeapons
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
:36 dta d" "
|
||||
ListOfWeapons1End
|
||||
ListOfDefensiveWeapons
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
dta d" "
|
||||
:16 dta d" "
|
||||
ListOfDefensiveWeaponsEnd ;constant useful when clearing
|
||||
WeaponsDescription
|
||||
dta d" "
|
||||
@@ -187,8 +137,8 @@ EmptyLine
|
||||
dta d" "
|
||||
;-----------------------------------------------
|
||||
textbuffer
|
||||
dta d"Player: "
|
||||
dta d" "
|
||||
dta d"Player: "
|
||||
dta d" "
|
||||
textbuffer2
|
||||
dta d"Player: ******** Cash: 00000 "
|
||||
dta d"----------------------------------------"
|
||||
|
||||
+15
-13
@@ -9,12 +9,13 @@
|
||||
;this source code was compiled under OMC65 crossassembler
|
||||
;and on 2012-06-21 translated to mads
|
||||
;
|
||||
;game source code is split into 5 parts:
|
||||
;program.s65 is the main game code (with many assorted routines)
|
||||
;grafproc.s65 - graphics routines like line or circle
|
||||
;textproc.s65 - text routines like list of weapons and shop
|
||||
;variables.s65 - all non-zero page variables and constans
|
||||
;display.s65 - display lists and text screen definitions
|
||||
;game source code is split into 5+1 parts:
|
||||
;program.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
|
||||
;display.asm - display lists and text screen definitions
|
||||
;ai.asm - artificial stupidity of the computer players
|
||||
|
||||
;we were trying to use as much macros and pseudoops as possible
|
||||
;they are defined in atari.hea and macro.hea files together with many
|
||||
@@ -68,17 +69,18 @@
|
||||
|
||||
;-------------------------------
|
||||
;constants
|
||||
FlyDelay=150
|
||||
screenheight=200
|
||||
FlyDelay = 150
|
||||
screenheight = 200
|
||||
screenBytes = 40
|
||||
screenwidth=screenBytes*8
|
||||
margin=48 ;mountain drawing Y variable margin
|
||||
display=$1010 ;kill dos with the casette recorder!
|
||||
screenwidth = screenBytes*8
|
||||
margin = 48 ;mountain drawing Y variable margin
|
||||
display = $1010 ;kill dos with the casette recorder!
|
||||
MaxPlayers = 6
|
||||
|
||||
icl '../lib/atari.hea'
|
||||
icl '../lib/macro.hea'
|
||||
icl 'lib/atari.hea'
|
||||
icl 'lib/macro.hea'
|
||||
|
||||
icl 'artwork/HIMARS14.asm'
|
||||
;Game loading address
|
||||
ORG $3010 ;two hex thousands for screen
|
||||
;-----------------------------------------------
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
.sourcemode on
|
||||
.echo
|
||||
.echo "Loading executable..."
|
||||
.echo
|
||||
bc *
|
||||
.onexerun .echo "Launching executable..."
|
||||
+68
-1
@@ -1,4 +1,4 @@
|
||||
mads 1.9.7 build 53 (29 Sep 13)
|
||||
mads 2.1.3
|
||||
Label table:
|
||||
00 0096 FLYDELAY
|
||||
00 00C8 SCREENHEIGHT
|
||||
@@ -7,6 +7,34 @@ Label table:
|
||||
00 0030 MARGIN
|
||||
00 1010 DISPLAY
|
||||
00 0006 MAXPLAYERS
|
||||
FFFD 0000 @DMACTL
|
||||
00 0000 @DMACTL.BLANK
|
||||
00 0001 @DMACTL.NARROW
|
||||
00 0002 @DMACTL.STANDARD
|
||||
00 0003 @DMACTL.WIDE
|
||||
00 0004 @DMACTL.MISSILES
|
||||
00 0008 @DMACTL.PLAYERS
|
||||
00 0010 @DMACTL.LINEX1
|
||||
00 0000 @DMACTL.LINEX2
|
||||
00 0020 @DMACTL.DMA
|
||||
00 003F SCR48
|
||||
00 003E SCR40
|
||||
00 003D SCR32
|
||||
FFFD 0000 @PMCNTL
|
||||
00 0001 @PMCNTL.MISSILES
|
||||
00 0002 @PMCNTL.PLAYERS
|
||||
00 0004 @PMCNTL.TRIGS
|
||||
FFFD 0000 @GTICTL
|
||||
00 0000 @GTICTL.PRIOR0
|
||||
00 0001 @GTICTL.PRIOR1
|
||||
00 0002 @GTICTL.PRIOR2
|
||||
00 0004 @GTICTL.PRIOR4
|
||||
00 0008 @GTICTL.PRIOR8
|
||||
00 0010 @GTICTL.PLY5
|
||||
00 0020 @GTICTL.MLC
|
||||
00 0040 @GTICTL.MODE9
|
||||
00 0080 @GTICTL.MODE10
|
||||
00 00C0 @GTICTL.MODE11
|
||||
00 D000 HPOSP0
|
||||
00 D001 HPOSP1
|
||||
00 D002 HPOSP2
|
||||
@@ -156,6 +184,45 @@ Label table:
|
||||
00 00B0 DP
|
||||
00 00B2 MODIFY
|
||||
00 00B4 WEAPONPOINTER
|
||||
00 00F0 FCNT
|
||||
00 00F2 FADR
|
||||
00 00F4 FHLP
|
||||
00 00F6 CLOC
|
||||
00 00F7 REGA
|
||||
00 00F8 REGX
|
||||
00 00F9 REGY
|
||||
00 0028 WIDTH
|
||||
00 001E HEIGHT
|
||||
00 2000 ANT
|
||||
00 2023 SCR
|
||||
00 2800 FNT
|
||||
00 3800 MAIN
|
||||
00 3823 _LP
|
||||
00 383B STOP
|
||||
00 3853 DLI
|
||||
00 3853 DLI.DLI_START
|
||||
00 3853 DLI.DLI10
|
||||
00 3855 DLI.C4
|
||||
00 3868 DLI.DLI2
|
||||
00 387A DLI.DLI3
|
||||
00 388C DLI.DLI4
|
||||
00 389E DLI.DLI5
|
||||
00 38B0 DLI.DLI6
|
||||
00 38C2 DLI.DLI7
|
||||
00 38D4 DLI.DLI11
|
||||
00 0001 CHANGES
|
||||
00 0000 FADECHR
|
||||
00 007F SCHR
|
||||
00 38E1 NMI
|
||||
00 38E7 NMI.DLIV
|
||||
00 38E9 NMI.VBL
|
||||
00 3908 NMI.C0
|
||||
00 3917 NMI.C1
|
||||
00 391C NMI.C2
|
||||
00 3921 NMI.C3
|
||||
00 3926 NMI.X0
|
||||
00 3968 NMI.QUIT
|
||||
00 0000 USESPRITES
|
||||
00 3010 PURCHASEDL
|
||||
00 3019 MOREUPDL
|
||||
00 301D WEAPONSLISTDL
|
||||
|
||||
+940
-8846
File diff suppressed because it is too large
Load Diff
BIN
Binary file not shown.
+2
-3
@@ -1143,10 +1143,9 @@ displayloop1
|
||||
|
||||
rts
|
||||
;-------decimal constans
|
||||
zero
|
||||
digits dta d"0123456789"
|
||||
zero dta d"0"
|
||||
nineplus ;.sbyte ('9+1)
|
||||
dta d"9"+1
|
||||
nineplus dta d"9"+1
|
||||
space dta d" "
|
||||
|
||||
;--------------------------------------------------------
|
||||
|
||||
+4
-5
@@ -60,7 +60,7 @@ MaxEnergyTableH
|
||||
;-----------------------------------
|
||||
|
||||
AngleTable ;Angle of the barrel of each tank during the round
|
||||
.by (255-90),(255-90),(255-90),(255-90),(255-90),(255-90)
|
||||
:MaxPlayers .by (255-90)
|
||||
NewAngle
|
||||
.by 0
|
||||
;-----------------------------------
|
||||
@@ -109,12 +109,11 @@ scrcodes
|
||||
dta d"7890.-"
|
||||
;-----------------------------------
|
||||
Erase .byte 0 ; if 1 only mask of the character is printed
|
||||
; on the graphics screen. if 0 character is printed normally
|
||||
; on the graphics screen. if 0 character is printed normally
|
||||
|
||||
;-----------------------------------
|
||||
RangeLeft .wo 0 ;range of the soil to be fallen down
|
||||
;it is being set by all Explosions
|
||||
RangeRight .wo 0
|
||||
RangeRight .wo 0 ;it is being set by all Explosions
|
||||
;-----------------------------------
|
||||
WeaponRangeLeft .wo 0 ;Range of the Explosion of the given weapon
|
||||
WeaponRangeRight .wo 0
|
||||
@@ -366,7 +365,7 @@ LineYdraw
|
||||
LineTop
|
||||
dta d"(%%%%%%%%%%%)"
|
||||
.byte $ff
|
||||
;# - pion, () * +, % - poziom
|
||||
;# - vertical, () * +, % - horizontal
|
||||
LineBottom
|
||||
dta d"*%%%%%%%%%%%+"
|
||||
.byte $ff
|
||||
|
||||
Reference in New Issue
Block a user