727 lines
9.6 KiB
NASM
727 lines
9.6 KiB
NASM
![]() |
CHK_MAIN_LEFT:
|
||
|
.db 0,0,24*8,13*16
|
||
|
.dw CHK_LEMOUSE_SCR
|
||
|
|
||
|
.db 192,7,255,64+7
|
||
|
.dw CHK_LEMOUSE_RAD
|
||
|
|
||
|
.db 24*8,7*16,255,212
|
||
|
.dw CHK_LEMOUSE_MENU
|
||
|
CHK_MAIN_RIGHT:
|
||
|
.db 0,0,24*8,13*16
|
||
|
.dw CHK_RIMOUSE_SCR
|
||
|
|
||
|
.db 192,7,255,64+7
|
||
|
.dw CHK_RIMOUSE_RAD
|
||
|
|
||
|
.db 24*8,7*16,255,212
|
||
|
.dw CHK_RIMOUSE_MENU
|
||
|
|
||
|
CHK_MOUSE_LEFT:
|
||
|
LD DE,(MOUSEY)
|
||
|
LD HL,#CHK_MAIN_LEFT
|
||
|
LD B,#3
|
||
|
JP CHK_BUTTON
|
||
|
CHK_MOUSE_RIGHT:
|
||
|
LD DE,(MOUSEY)
|
||
|
LD HL,#CHK_MAIN_RIGHT
|
||
|
LD B,#3
|
||
|
JP CHK_BUTTON
|
||
|
|
||
|
|
||
|
;=;;=;;========================================================
|
||
|
|
||
|
CHK_LEMOUSE_SCR:
|
||
|
LD HL,(ADR)
|
||
|
INC HL ;2VELD LAYER
|
||
|
INC HL ;2TNK LAYER
|
||
|
LD A,E ; E=Y
|
||
|
SRL A
|
||
|
SRL A
|
||
|
SRL A
|
||
|
LD B,A
|
||
|
AND #0xFE
|
||
|
ADD H
|
||
|
LD H,A
|
||
|
|
||
|
LD A,D
|
||
|
SRL A
|
||
|
LD C,A
|
||
|
AND #0x7C
|
||
|
LD E,A
|
||
|
LD D,#0
|
||
|
ADD HL,DE
|
||
|
|
||
|
LD A,(HL)
|
||
|
OR A
|
||
|
JR NZ,CHK_LEMOUSE_TNK ; TOT HIER IS HET GOED !!!
|
||
|
|
||
|
;LD A,(SECECTED_ITEM)
|
||
|
;OR A
|
||
|
;JP Z,CHK_MMSEL
|
||
|
|
||
|
SRL B
|
||
|
LD A,(VIEW_Y)
|
||
|
ADD A,B
|
||
|
LD E,A
|
||
|
|
||
|
SRL C
|
||
|
SRL C
|
||
|
LD A,(VIEW_X)
|
||
|
SLA A
|
||
|
ADD A,C
|
||
|
LD D,A
|
||
|
|
||
|
LD B,#64
|
||
|
LD IY,#MSEL_COR_TAB
|
||
|
LD HL,#SECECTED_ITEM
|
||
|
CHK_LEMOUSE_MOVE_LP:
|
||
|
DEC B
|
||
|
LD A,B
|
||
|
OR A
|
||
|
RET Z
|
||
|
|
||
|
LD A,(HL)
|
||
|
INC HL
|
||
|
OR A
|
||
|
JR Z,CHK_LEMOUSE_MOVE_LP
|
||
|
|
||
|
EXX
|
||
|
CALL A_TO_IX
|
||
|
EXX
|
||
|
|
||
|
LD A,D
|
||
|
ADD 0(IY)
|
||
|
LD 2(IX),A
|
||
|
LD A,E
|
||
|
ADD 1(IY)
|
||
|
LD 3(IX),A ; MOVE TANK
|
||
|
|
||
|
INC IY
|
||
|
INC IY
|
||
|
JR CHK_LEMOUSE_MOVE_LP
|
||
|
|
||
|
|
||
|
|
||
|
;==========
|
||
|
|
||
|
|
||
|
CHK_LEMOUSE_TNK:
|
||
|
LD C,A
|
||
|
LD A,(KEYS_TAB+6); CHK OP SHIFT
|
||
|
LD B,#64
|
||
|
LD HL,#SECECTED_ITEM-1
|
||
|
BIT 0,A
|
||
|
JR NZ,CHK_LEMOUSE_TNK_SEL
|
||
|
|
||
|
LD A,C
|
||
|
AND #0b11000000
|
||
|
RET NZ ; GEEN EIGEN COLOR
|
||
|
|
||
|
CHK_LEMOUSE_TNK_LP:
|
||
|
INC HL
|
||
|
DEC B ; MET SHIFT
|
||
|
LD A,B
|
||
|
OR A
|
||
|
RET Z ; GEEN PLEK IN DE TAB
|
||
|
|
||
|
LD A,(HL)
|
||
|
CP C
|
||
|
JR Z,CHK_LEMOUSE_TNK_DIMUL ; DIT BEN IK ZELF
|
||
|
|
||
|
OR A
|
||
|
JR NZ,CHK_LEMOUSE_TNK_LP
|
||
|
|
||
|
LD (HL),C
|
||
|
JR CHK_LEMOUSE_TNK_MUL ; FOUND MYSELF A PLACE
|
||
|
|
||
|
|
||
|
; MET SHIFT OFTEWIJL MUTILBLE
|
||
|
|
||
|
CHK_LEMOUSE_TNK_SEL:
|
||
|
LD A,C ; NIEUWE TNK
|
||
|
AND #0b11000000
|
||
|
JP NZ,CHK_LEMOUSE_TNK_ATT
|
||
|
CHK_LEMOUSE_TNK_SEL_LP:
|
||
|
DEC B
|
||
|
LD A,B
|
||
|
OR A
|
||
|
JR Z,CHK_LEMOUSE_TNK_SEL_END ; LEEG
|
||
|
|
||
|
LD A,(HL)
|
||
|
LD (HL),#0
|
||
|
INC HL
|
||
|
OR A
|
||
|
JR Z,CHK_LEMOUSE_TNK_SEL_LP
|
||
|
|
||
|
EXX
|
||
|
CALL A_TO_IX
|
||
|
EXX
|
||
|
|
||
|
RES 0,9(IX) ; DESELTED ALL TANKS
|
||
|
JR CHK_LEMOUSE_TNK_SEL
|
||
|
|
||
|
CHK_LEMOUSE_TNK_SEL_END:
|
||
|
LD A,C
|
||
|
LD (SECECTED_ITEM),A ; NIEUWE TANK !!
|
||
|
CHK_LEMOUSE_TNK_MUL:
|
||
|
LD A,C
|
||
|
CALL A_TO_IX
|
||
|
SET 0,9(IX)
|
||
|
|
||
|
LD HL,#MOVE_SP
|
||
|
CALL TYPE_SP0
|
||
|
LD A,#1
|
||
|
LD (CUR_TYPE_SP0),A
|
||
|
|
||
|
CALL COLOR_WHITE
|
||
|
EI
|
||
|
HALT
|
||
|
HALT
|
||
|
HALT
|
||
|
CALL COLOR_BLACK
|
||
|
RET
|
||
|
|
||
|
|
||
|
;---
|
||
|
|
||
|
CHK_LEMOUSE_TNK_ATT:
|
||
|
DEC B
|
||
|
LD A,B
|
||
|
OR A
|
||
|
RET Z
|
||
|
|
||
|
LD A,(HL)
|
||
|
INC HL
|
||
|
OR A
|
||
|
JR Z,CHK_LEMOUSE_TNK_ATT
|
||
|
|
||
|
EXX
|
||
|
CALL A_TO_IX
|
||
|
EXX
|
||
|
|
||
|
LD 8(IX),C ; QUAKE NR ( DE LUL )
|
||
|
SET 7,9(IX) ; ATT ALL TANKS
|
||
|
JR CHK_LEMOUSE_TNK_SEL
|
||
|
|
||
|
|
||
|
CHK_LEMOUSE_TNK_DIMUL: ; TANKS DESELSECTEN MET SHIFT
|
||
|
EXX
|
||
|
CALL A_TO_IX
|
||
|
EXX
|
||
|
BIT 0,9(IX)
|
||
|
RET Z
|
||
|
LD (HL),#0
|
||
|
RES 0,9(IX)
|
||
|
RET
|
||
|
|
||
|
MSEL_START_COR:
|
||
|
.db 0,0
|
||
|
|
||
|
CHK_MMSEL:
|
||
|
LD DE,(MOUSEY)
|
||
|
LD (MSEL_START_COR),DE
|
||
|
|
||
|
RET
|
||
|
|
||
|
|
||
|
NOP ;
|
||
|
SECECTED_ITEM:
|
||
|
.ds 64 ; MSEL LIJN
|
||
|
|
||
|
CHK_LEMOUSE_RAD:
|
||
|
LD HL,#0x4000
|
||
|
|
||
|
LD A,D ; X
|
||
|
SUB #192
|
||
|
CP #51
|
||
|
JR C,CHK_LEMOUSE_RAD_X
|
||
|
LD A,#51 ;52
|
||
|
CHK_LEMOUSE_RAD_X:
|
||
|
LD D,A
|
||
|
LD (VIEW_X),A
|
||
|
LD B,#0
|
||
|
SLA A
|
||
|
SLA A
|
||
|
SLA A
|
||
|
RL B
|
||
|
LD C,A
|
||
|
ADD HL,BC
|
||
|
|
||
|
LD A,D
|
||
|
ADD A,#192
|
||
|
LD B,A
|
||
|
|
||
|
LD A,E
|
||
|
SUB #7
|
||
|
CP #64-14
|
||
|
JR C,CHK_LEMOUSE_RAD_Y
|
||
|
LD A,#64-14
|
||
|
CHK_LEMOUSE_RAD_Y:
|
||
|
LD (VIEW_Y),A
|
||
|
LD D,A
|
||
|
SLA D
|
||
|
LD E,#0
|
||
|
ADD HL,DE
|
||
|
|
||
|
LD (ADR),HL
|
||
|
ADD A,#8
|
||
|
LD C,A
|
||
|
JP PUTSPRITE1
|
||
|
|
||
|
CHK_LEMOUSE_MENU:
|
||
|
LD A,(FIRE_BUTTONS)
|
||
|
BIT 5,A
|
||
|
RET NZ
|
||
|
JP EXIT_DOME
|
||
|
|
||
|
CHK_RIMOUSE_SCR:
|
||
|
XOR A
|
||
|
LD (CUR_TYPE_SP0),A
|
||
|
LD (MSEL_START_COR),A
|
||
|
LD (MSEL_START_COR+1),A
|
||
|
LD HL,#CURSOR_SP
|
||
|
CALL TYPE_SP0
|
||
|
|
||
|
LD B,#64
|
||
|
LD HL,#SECECTED_ITEM
|
||
|
CHK_RIMOUSE_SCR_LP:
|
||
|
DEC B
|
||
|
LD A,B
|
||
|
OR A
|
||
|
RET Z
|
||
|
|
||
|
LD A,(HL)
|
||
|
LD (HL),#0
|
||
|
INC HL
|
||
|
OR A
|
||
|
JR Z,CHK_RIMOUSE_SCR_LP
|
||
|
|
||
|
EXX
|
||
|
CALL A_TO_IX
|
||
|
EXX
|
||
|
|
||
|
RES 0,9(IX)
|
||
|
JR CHK_RIMOUSE_SCR_LP
|
||
|
|
||
|
|
||
|
CHK_RIMOUSE_RAD:
|
||
|
JP A0
|
||
|
CHK_RIMOUSE_MENU:
|
||
|
RET
|
||
|
|
||
|
;===============================================================================
|
||
|
CHK_XY:
|
||
|
LD A,#255
|
||
|
EX AF,AF
|
||
|
LD A,#255 ; MOET SNELLER ( XAND A )??
|
||
|
SCRL:
|
||
|
LD DE,(MOUSEY)
|
||
|
|
||
|
LD A,E
|
||
|
CP #202
|
||
|
JP NC,SCRL_D
|
||
|
|
||
|
CP #2
|
||
|
JP C,SCRL_U
|
||
|
|
||
|
LD A,D
|
||
|
CP #246
|
||
|
JR NC,SCRL_R
|
||
|
|
||
|
CP #2
|
||
|
JP C,SCRL_L
|
||
|
|
||
|
LD A,(KEYS_TAB+8)
|
||
|
BIT 7,A
|
||
|
JR Z,SCRL_R
|
||
|
BIT 6,A
|
||
|
JP Z,SCRL_D
|
||
|
BIT 5,A
|
||
|
JP Z,SCRL_U
|
||
|
BIT 4,A
|
||
|
JR Z,SCRL_L
|
||
|
SCRL_RET:
|
||
|
EX AF,AF
|
||
|
OR A
|
||
|
RET NZ
|
||
|
|
||
|
LD A,(CUR_TYPE_SP0)
|
||
|
LD HL,#CURSOR_SP
|
||
|
OR A
|
||
|
JP Z,TYPE_SP0
|
||
|
|
||
|
LD HL,#MOVE_SP
|
||
|
CP #1
|
||
|
JP Z,TYPE_SP0
|
||
|
|
||
|
CALL COLOR_WHITE
|
||
|
HALT
|
||
|
HALT
|
||
|
HALT
|
||
|
HALT
|
||
|
HALT
|
||
|
HALT
|
||
|
HALT
|
||
|
HALT
|
||
|
RET
|
||
|
|
||
|
SCRL_R:
|
||
|
LD A,(VIEW_X)
|
||
|
CP #52
|
||
|
JR Z,SCRL_RET
|
||
|
INC A
|
||
|
LD (VIEW_X),A
|
||
|
|
||
|
ADD A,#192
|
||
|
LD B,A
|
||
|
LD A,(VIEW_Y)
|
||
|
ADD A,#8
|
||
|
LD C,A
|
||
|
CALL PUTSPRITE1
|
||
|
|
||
|
LD HL,#RIGHT_SP
|
||
|
CALL TYPE_SP0
|
||
|
LD HL,#0
|
||
|
LD (MSEL_START_COR),HL
|
||
|
|
||
|
LD HL,(ADR)
|
||
|
LD B,#0
|
||
|
LD C,#8
|
||
|
ADD HL,BC
|
||
|
LD (ADR),HL
|
||
|
|
||
|
CALL BUILD
|
||
|
XOR A
|
||
|
EX AF,AF
|
||
|
JP SCRL
|
||
|
|
||
|
|
||
|
|
||
|
SCRL_L:
|
||
|
LD A,(VIEW_X)
|
||
|
CP #1
|
||
|
JP Z,SCRL_RET
|
||
|
DEC A
|
||
|
LD (VIEW_X),A
|
||
|
ADD A,#192
|
||
|
LD B,A
|
||
|
LD A,(VIEW_Y)
|
||
|
ADD A,#8
|
||
|
LD C,A
|
||
|
CALL PUTSPRITE1
|
||
|
|
||
|
LD HL,#LEFT_SP
|
||
|
CALL TYPE_SP0
|
||
|
LD HL,#0
|
||
|
LD (MSEL_START_COR),HL
|
||
|
|
||
|
LD HL,(ADR)
|
||
|
LD B,#0
|
||
|
LD C,#8
|
||
|
XOR A
|
||
|
SBC HL,BC
|
||
|
LD (ADR),HL
|
||
|
|
||
|
CALL BUILD
|
||
|
XOR A
|
||
|
EX AF,AF
|
||
|
JP SCRL
|
||
|
SCRL_D:
|
||
|
LD A,(VIEW_Y)
|
||
|
CP #63-13 ;???
|
||
|
JP Z,SCRL_RET
|
||
|
INC A
|
||
|
LD (VIEW_Y),A
|
||
|
ADD A,#8
|
||
|
LD C,A
|
||
|
LD A,(VIEW_X)
|
||
|
ADD A,#192
|
||
|
LD B,A
|
||
|
CALL PUTSPRITE1
|
||
|
|
||
|
LD HL,#DOWN_SP
|
||
|
CALL TYPE_SP0
|
||
|
LD HL,#0
|
||
|
LD (MSEL_START_COR),HL
|
||
|
|
||
|
LD HL,(ADR)
|
||
|
INC H
|
||
|
INC H
|
||
|
LD (ADR),HL
|
||
|
|
||
|
CALL BUILD
|
||
|
XOR A
|
||
|
EX AF,AF
|
||
|
JP SCRL
|
||
|
|
||
|
SCRL_U:
|
||
|
LD A,(VIEW_Y)
|
||
|
CP #1 ;???
|
||
|
JP Z,SCRL_RET
|
||
|
DEC A
|
||
|
LD (VIEW_Y),A
|
||
|
ADD A,#8
|
||
|
LD C,A
|
||
|
LD A,(VIEW_X)
|
||
|
ADD A,#192
|
||
|
LD B,A
|
||
|
CALL PUTSPRITE1
|
||
|
|
||
|
LD HL,#UP_SP
|
||
|
CALL TYPE_SP0
|
||
|
LD HL,#0
|
||
|
LD (MSEL_START_COR),HL
|
||
|
|
||
|
LD HL,(ADR)
|
||
|
DEC H
|
||
|
DEC H
|
||
|
LD (ADR),HL
|
||
|
|
||
|
CALL BUILD
|
||
|
XOR A
|
||
|
EX AF,AF
|
||
|
JP SCRL
|
||
|
|
||
|
FIRE_BUTTONS: .db 0
|
||
|
EXIT_STACK: .dw 0
|
||
|
MSX_TYPE: .db 0
|
||
|
CUR_TYPE_SP0: .db 0
|
||
|
INT_DOME: .dw I_INTERRUPT
|
||
|
INT_DOS: .dw 0 ; DEZE WORDT INGEVULD
|
||
|
|
||
|
MOUSE_OFF: .db 0
|
||
|
MOUSE_USE: .db 0
|
||
|
MOUSE_PORT: .db 0
|
||
|
MOUSE_WAIT1: .db 0
|
||
|
MOUSE_WAIT2: .db 0
|
||
|
|
||
|
MOUSEY: .db 40 ; Raad eens !
|
||
|
MOUSEX: .db 40 ; X coor. van cursor/muis
|
||
|
|
||
|
VIEW_X: .db 0
|
||
|
VIEW_Y: .db 0
|
||
|
|
||
|
CURSOR_SP:
|
||
|
.db 0b11111111,0,0,0 ; MAX 32 * 32 PUNTJES
|
||
|
.db 0b10000001,0,0,0
|
||
|
.db 0b10000010,0,0,0
|
||
|
.db 0b10000100,0,0,0
|
||
|
.db 0b10001000,0,0,0
|
||
|
.db 0b10010000,0,0,0
|
||
|
.db 0b10100000,0,0,0
|
||
|
.db 0b11000000,0,0,0
|
||
|
|
||
|
LEFT_SP:
|
||
|
.db 0b00010000,0,0,0
|
||
|
.db 0b00110000,0,0,0
|
||
|
.db 0b01110000,0,0,0
|
||
|
.db 0b11111111,0,0,0
|
||
|
.db 0b11111111,0,0,0
|
||
|
.db 0b01110000,0,0,0
|
||
|
.db 0b00110000,0,0,0
|
||
|
.db 0b00010000,0,0,0
|
||
|
RIGHT_SP:
|
||
|
.db 0b00001000,0,0,0
|
||
|
.db 0b00001100,0,0,0
|
||
|
.db 0b00001110,0,0,0
|
||
|
.db 0b11111111,0,0,0
|
||
|
.db 0b11111111,0,0,0
|
||
|
.db 0b00001110,0,0,0
|
||
|
.db 0b00001100,0,0,0
|
||
|
.db 0b00001000,0,0,0
|
||
|
UP_SP:
|
||
|
.db 0b00011000,0,0,0
|
||
|
.db 0b00111100,0,0,0
|
||
|
.db 0b01111110,0,0,0
|
||
|
.db 0b11111111,0,0,0
|
||
|
.db 0b00011000,0,0,0
|
||
|
.db 0b00011000,0,0,0
|
||
|
.db 0b00011000,0,0,0
|
||
|
.db 0b00011000,0,0,0
|
||
|
DOWN_SP:
|
||
|
.db 0b00011000,0,0,0
|
||
|
.db 0b00011000,0,0,0
|
||
|
.db 0b00011000,0,0,0
|
||
|
.db 0b00011000,0,0,0
|
||
|
.db 0b11111111,0,0,0
|
||
|
.db 0b01111110,0,0,0
|
||
|
.db 0b00111100,0,0,0
|
||
|
.db 0b00011000,0,0,0
|
||
|
MOVE_SP:
|
||
|
.db 0b00111100,0,0,0
|
||
|
.db 0b01000010,0,0,0
|
||
|
.db 0b10000001,0,0,0
|
||
|
.db 0b10011001,0,0,0
|
||
|
.db 0b10011001,0,0,0
|
||
|
.db 0b10000001,0,0,0
|
||
|
.db 0b01000010,0,0,0
|
||
|
.db 0b00111100,0,0,0
|
||
|
|
||
|
MSEL_COR_TAB:
|
||
|
.db 0,0,1,0,0,1,1,1,2,0,2,1,0,2,1,2
|
||
|
.db 2,2,3,0,3,1,3,2,0,3,1,3,2,3,3,3
|
||
|
.db 4,0,4,1,4,2,4,3,0,4,1,4,2,4,3,4
|
||
|
.db 4,4,5,0,5,1,5,2,5,3,5,4,0,5,1,5
|
||
|
.db 2,5,3,5,4,5,5,5,6,0,6,1,6,2,6,3
|
||
|
.db 6,4,6,5,0,6,1,6,2,6,3,6,4,6,5,6
|
||
|
.db 6,6,7,0,7,1,7,2,7,3,7,4,7,5,7,6
|
||
|
.db 0,7,1,7,2,7,3,7,4,7,5,7,6,7,7,7
|
||
|
|
||
|
.db 8,0,8,1,8,2,8,3,8,4,8,5,8,6,8,7
|
||
|
.db 0,8,1,8,2,8,3,8,4,8,5,8,6,8,7,8,8,8
|
||
|
|
||
|
RADAR_SP:
|
||
|
.db 0b11111111,0b11111111,255,0
|
||
|
.db 0b10000000,0b00000000,1,0
|
||
|
.db 0b10000000,0b00000000,1,0
|
||
|
.db 0b10000000,0b00000000,1,0
|
||
|
.db 0b10000000,0b00000000,1,0
|
||
|
.db 0b10000000,0b00000000,1,0
|
||
|
.db 0b10000000,0b00000000,1,0
|
||
|
.db 0b10000000,0b00000000,1,0
|
||
|
.db 0b10000000,0b00000000,1,0
|
||
|
.db 0b10000000,0b00000000,1,0
|
||
|
.db 0b10000000,0b00000000,1,0
|
||
|
.db 0b10000000,0b00000000,1,0 ; MAX 32 * 32 PUNTJES
|
||
|
.db 0b11111111,0b11111111,255,0
|
||
|
|
||
|
|
||
|
SP0_CMD: .db 36,17 ; REG 36 , 17 BYTES
|
||
|
.dw 768 ; DX
|
||
|
.dw 1023 ; DY
|
||
|
.dw 32 ; NX
|
||
|
.dw 1 ; NY
|
||
|
.db 0,12 ; 0,OPRATIE
|
||
|
.dw 0xFFFF ; COLOR MASK
|
||
|
.db 0,0 ; COLOR
|
||
|
.db 0,0 ;
|
||
|
.db 16 ; OPCODE
|
||
|
|
||
|
SP1_CMD: .db 36,17 ; REG 36 , 17 BYTES
|
||
|
.dw 896 ; DX
|
||
|
.dw 1023 ; DY
|
||
|
.dw 52 ; NX
|
||
|
.dw 1 ; NY
|
||
|
.db 0,12 ; 0,OPRATIE
|
||
|
.dw 0xFFFF ; COLOR MASK
|
||
|
.db 0,0 ; COLOR
|
||
|
.db 0,0 ;
|
||
|
.db 16 ; OPCODE
|
||
|
|
||
|
|
||
|
|
||
|
; DIT IS CODE OM JE SCREERM MEE TE BEKIJKEN
|
||
|
|
||
|
|
||
|
A0:
|
||
|
IN A,(0x65)
|
||
|
AND #64
|
||
|
JR NZ,A0
|
||
|
A1:
|
||
|
IN A,(0x65)
|
||
|
AND #64
|
||
|
JR Z,A1
|
||
|
|
||
|
LD A,#18
|
||
|
OUT (0x64),A
|
||
|
LD A,#1
|
||
|
OUT (0x63),A
|
||
|
XOR A
|
||
|
OUT (0x63),A
|
||
|
|
||
|
LD A,(SELECT-1)
|
||
|
LD B,A
|
||
|
AND #0xF0
|
||
|
LD C,A
|
||
|
|
||
|
LD A,B
|
||
|
SLA A
|
||
|
SLA A
|
||
|
SLA A
|
||
|
AND #0x78
|
||
|
LD B,A
|
||
|
|
||
|
INC C
|
||
|
CALL PUTSPRITE1
|
||
|
|
||
|
EI
|
||
|
HALT
|
||
|
HALT
|
||
|
HALT
|
||
|
HALT
|
||
|
CALL SELECT
|
||
|
|
||
|
A2:
|
||
|
IN A,(0x65)
|
||
|
AND #64
|
||
|
JR NZ,A2
|
||
|
A3:
|
||
|
IN A,(0x65)
|
||
|
AND #64
|
||
|
JR Z,A3
|
||
|
|
||
|
LD A,#18
|
||
|
OUT (0x64),A
|
||
|
XOR A
|
||
|
OUT (0x63),A
|
||
|
LD A,(PAGE)
|
||
|
OUT (0x63),A
|
||
|
|
||
|
LD A,(VIEW_Y)
|
||
|
LD C,A
|
||
|
LD A,(VIEW_X)
|
||
|
ADD A,#192
|
||
|
LD B,A
|
||
|
CALL PUTSPRITE1
|
||
|
|
||
|
EI
|
||
|
HALT
|
||
|
HALT
|
||
|
HALT
|
||
|
HALT
|
||
|
HALT
|
||
|
HALT
|
||
|
|
||
|
LD A,#255
|
||
|
LD (FIRE_BUTTONS),A
|
||
|
|
||
|
RET
|
||
|
|
||
|
|
||
|
.db 0
|
||
|
SELECT:
|
||
|
EI
|
||
|
HALT
|
||
|
LD A,(FIRE_BUTTONS)
|
||
|
BIT 5,A
|
||
|
RET Z
|
||
|
BIT 4,A
|
||
|
JR NZ,SELECT
|
||
|
|
||
|
LD DE,(MOUSEY) ; E=Y
|
||
|
|
||
|
LD A,D
|
||
|
SRL A
|
||
|
SRL A
|
||
|
SRL A
|
||
|
AND #0b00001111
|
||
|
LD B,A
|
||
|
|
||
|
LD A,E
|
||
|
AND #0xF0
|
||
|
OR B
|
||
|
LD (SELECT-1),A
|
||
|
|
||
|
LD A,D
|
||
|
AND #0x78 ; DON'Y USE HISTET BIT X>256
|
||
|
LD B,A
|
||
|
|
||
|
LD A,E
|
||
|
AND #0xF0
|
||
|
LD C,A
|
||
|
|
||
|
INC C
|
||
|
CALL PUTSPRITE1
|
||
|
|
||
|
JR SELECT
|