102 lines
1.8 KiB
NASM
102 lines
1.8 KiB
NASM
SNAKE START 0
|
|
|
|
FIRST LDS #255
|
|
LDA G_SCRN
|
|
STA @CURSCR
|
|
STA @SVEC
|
|
LOOP JSUB DRAW
|
|
ADD #4
|
|
STA @SVEC
|
|
J LOOP
|
|
|
|
HALT J HALT
|
|
|
|
DRAW JSUB PUSH
|
|
RMO T, A
|
|
JSUB PUSH
|
|
RMO S, A
|
|
JSUB PUSH
|
|
|
|
LDA #0 .COUNTER
|
|
LDT @OFFSET
|
|
STRT COMP @LEN
|
|
JEQ END
|
|
|
|
JSUB PUSH
|
|
LDA SVEC
|
|
ADD @OFFSET
|
|
STA ADDR
|
|
LDA @ADDR
|
|
STA @BASEY
|
|
|
|
CLEAR A
|
|
|
|
LOOP1 COMP FOUR
|
|
JEQ LEND
|
|
LDS @BASE
|
|
MUL #64
|
|
ADDR A, S
|
|
DIV #64
|
|
STS @BASEY
|
|
JSUB PUSH
|
|
CLEAR A
|
|
|
|
LOOP2 COMP FOUR
|
|
JEQ LEND2
|
|
LDS @BASEY
|
|
ADDR A, S
|
|
STS @CUR
|
|
|
|
LDS #255
|
|
STS @CUR
|
|
|
|
ADD #1
|
|
J LOOP2
|
|
|
|
LEND2 JSUB POP
|
|
ADD #1
|
|
J LOOP1
|
|
|
|
LEND JSUB POP
|
|
ADD #1
|
|
JSUB PUSH
|
|
LDA #3
|
|
ADDR A, T
|
|
JSUB POP
|
|
J STRT
|
|
|
|
END JSUB POP
|
|
RMO A, T
|
|
JSUB POP
|
|
RMO A, S
|
|
JSUB POP
|
|
RSUB
|
|
|
|
|
|
PUSH STA @S_PTR
|
|
LDA S_PTR
|
|
ADD #3
|
|
STA S_PTR
|
|
RSUB
|
|
|
|
POP LDA S_PTR
|
|
SUB #3
|
|
STA S_PTR
|
|
LDA @S_PTR
|
|
RSUB
|
|
|
|
FOUR WORD X'000004'
|
|
ADDR WORD X'000000'
|
|
CUR WORD X'000000'
|
|
BASE WORD X'000000'
|
|
BASEY WORD X'000000'
|
|
LEN WORD X'000000'
|
|
G_SCRN WORD X'00A000'
|
|
CURSCR WORD X'000000'
|
|
KEY_IN WORD X'00C000'
|
|
S_PTR WORD X'000100'
|
|
SVEC WORD X'001000'
|
|
SVECMV WORD X'003000'
|
|
OFFSET WORD X'000000'
|
|
|
|
END FIRST
|