added zoge
This commit is contained in:
commit
4105c50e98
2 changed files with 160 additions and 0 deletions
23
.gitignore
vendored
Normal file
23
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
# === Windows junk ===
|
||||||
|
*.Zone.Identifier
|
||||||
|
|
||||||
|
# === VS Code settings ===
|
||||||
|
.vscode/
|
||||||
|
.code-workspace
|
||||||
|
|
||||||
|
# === MacOS junk (if ever used) ===
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
# === Linux trash (optional) ===
|
||||||
|
*.swp
|
||||||
|
*~
|
||||||
|
|
||||||
|
# === Node modules (if applicable) ===
|
||||||
|
node_modules/
|
||||||
|
|
||||||
|
# === Python cache (if applicable) ===
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
|
||||||
|
autotester
|
||||||
|
sictools.jar
|
||||||
137
zoge/zoge.asm
Normal file
137
zoge/zoge.asm
Normal file
|
|
@ -0,0 +1,137 @@
|
||||||
|
. code
|
||||||
|
bounce START 0
|
||||||
|
|
||||||
|
LDA NUM_B
|
||||||
|
MUL D_SIZE
|
||||||
|
STA MAXIDX
|
||||||
|
|
||||||
|
|
||||||
|
LOOP LDX INDEX
|
||||||
|
|
||||||
|
LDA ballX,X
|
||||||
|
COMP maxX
|
||||||
|
JEQ X_WALL . hits right wall
|
||||||
|
|
||||||
|
COMP ZERO
|
||||||
|
JEQ X_WALL . hits left wall
|
||||||
|
|
||||||
|
cmpY LDA ballY,X
|
||||||
|
COMP maxY
|
||||||
|
JEQ Y_WALL . hits bottom
|
||||||
|
|
||||||
|
COMP ZERO
|
||||||
|
JEQ Y_WALL . hits top
|
||||||
|
|
||||||
|
endCOMP LDA bColour,X
|
||||||
|
STA colour
|
||||||
|
|
||||||
|
LDA ballX,X
|
||||||
|
LDB ballY,X
|
||||||
|
LDT HEIGHT
|
||||||
|
MULR T, B .flatten
|
||||||
|
ADDR B, A
|
||||||
|
|
||||||
|
STX INDEX
|
||||||
|
RMO A, X . copy flattened old coordinates to X
|
||||||
|
|
||||||
|
LDCH BLACK . clear screen
|
||||||
|
+STCH SCREEN,X
|
||||||
|
LDX INDEX
|
||||||
|
|
||||||
|
LDA ballX,X .//calculae new X
|
||||||
|
LDT bSpeedX,X
|
||||||
|
ADDR T, A
|
||||||
|
STA ballX,X
|
||||||
|
|
||||||
|
LDB ballY,X . calculate new Y
|
||||||
|
LDT bSpeedY, X
|
||||||
|
ADDR T, B
|
||||||
|
STB ballY,X
|
||||||
|
|
||||||
|
LDT HEIGHT
|
||||||
|
MULR T, B . flatten
|
||||||
|
ADDR B, A
|
||||||
|
|
||||||
|
STX INDEX
|
||||||
|
RMO A, X . copy flattened old coordinates to X
|
||||||
|
|
||||||
|
LDA colour
|
||||||
|
+STCH SCREEN,X . update screen
|
||||||
|
LDX INDEX
|
||||||
|
|
||||||
|
. reset
|
||||||
|
LDA #3
|
||||||
|
ADDR A,X
|
||||||
|
STX INDEX
|
||||||
|
|
||||||
|
LDA MAXIDX
|
||||||
|
COMPR X,A
|
||||||
|
JLT LOOP . while X < A -> keep looping balls
|
||||||
|
|
||||||
|
LDX #0 . wrap
|
||||||
|
STX INDEX
|
||||||
|
J LOOP
|
||||||
|
|
||||||
|
|
||||||
|
halt J halt
|
||||||
|
|
||||||
|
END bounce
|
||||||
|
|
||||||
|
. functions
|
||||||
|
X_WALL LDB bSpeedX,X
|
||||||
|
LDT MINUS1
|
||||||
|
MULR B, T
|
||||||
|
STT bSpeedX,X
|
||||||
|
J cmpY
|
||||||
|
|
||||||
|
Y_WALL LDB bSpeedY,X
|
||||||
|
LDT MINUS1
|
||||||
|
MULR B, T
|
||||||
|
STT bSpeedY,X
|
||||||
|
J endCOMP
|
||||||
|
|
||||||
|
|
||||||
|
. data
|
||||||
|
ZERO WORD 0
|
||||||
|
MINUS1 WORD -1
|
||||||
|
|
||||||
|
D_SIZE WORD 3
|
||||||
|
INDEX WORD 0
|
||||||
|
MAXIDX RESW 1
|
||||||
|
|
||||||
|
NUM_B WORD 3
|
||||||
|
|
||||||
|
colour RESW 1
|
||||||
|
|
||||||
|
. ball data
|
||||||
|
ballX WORD 60
|
||||||
|
WORD 32
|
||||||
|
WORD 32
|
||||||
|
|
||||||
|
ballY WORD 32
|
||||||
|
WORD 32
|
||||||
|
WORD 32
|
||||||
|
|
||||||
|
bSpeedX WORD 1
|
||||||
|
WORD 0
|
||||||
|
WORD 1
|
||||||
|
|
||||||
|
bSpeedY WORD 1
|
||||||
|
WORD 1
|
||||||
|
WORD 0
|
||||||
|
|
||||||
|
bColour WORD 195 . blue
|
||||||
|
WORD 204 . green
|
||||||
|
WORD 240 . red
|
||||||
|
|
||||||
|
maxX WORD 63
|
||||||
|
maxY WORD 63
|
||||||
|
WIDTH WORD 64
|
||||||
|
HEIGHT WORD 64
|
||||||
|
|
||||||
|
. colors
|
||||||
|
BLACK BYTE 0
|
||||||
|
|
||||||
|
. screen
|
||||||
|
ORG 0xA000
|
||||||
|
SCREEN RESB 4096
|
||||||
Loading…
Add table
Add a link
Reference in a new issue