2642 lines
30 KiB
ArmAsm
2642 lines
30 KiB
ArmAsm
LST OFF
|
|
*
|
|
ORG $9500
|
|
OBJ $8500
|
|
*
|
|
* CONSTANTS
|
|
*
|
|
POLYGON EQU 1
|
|
BPOLYGON EQU 2
|
|
LIBOBJ EQU 3
|
|
*
|
|
* TEMPS
|
|
*
|
|
PARAM EQU $00
|
|
TEMP EQU $07
|
|
XTEMP EQU TEMP+1
|
|
YTEMP EQU XTEMP+1
|
|
TEMP2 EQU YTEMP+1
|
|
*
|
|
* DRAWBITS
|
|
*
|
|
B1 EQU $10
|
|
B2 EQU B1+2
|
|
*
|
|
* MAIN PROGRAM
|
|
*
|
|
C EQU $80
|
|
CY EQU C+2
|
|
CXD7 EQU CY+1
|
|
CXM7 EQU CXD7+1
|
|
LASTITEM EQU CXM7+11
|
|
*
|
|
* OBJECTS
|
|
*
|
|
OBJ EQU LASTITEM+2
|
|
NEXTOBJ EQU OBJ+2
|
|
OBJCOUNT EQU NEXTOBJ+1
|
|
PLYPTRX EQU OBJCOUNT+1
|
|
PLYPTRY EQU PLYPTRX+2
|
|
OBJID EQU PLYPTRY+2
|
|
FILLCOLOR EQU OBJID+1
|
|
VRTXCOUNT EQU FILLCOLOR+1
|
|
LB EQU VRTXCOUNT+1
|
|
SCANMODE EQU LB+2
|
|
MEMBTM EQU SCANMODE+1
|
|
MIDBTM EQU MEMBTM+2
|
|
MIDTOP EQU MIDBTM+2
|
|
MIDY EQU MIDTOP+2
|
|
*
|
|
* EDITOR
|
|
*
|
|
COLOR EQU MIDY+1
|
|
CX EQU COLOR+1
|
|
EDITMODE EQU CX+1
|
|
OBJ2 EQU EDITMODE+1
|
|
MAXX EQU OBJ2+2
|
|
MAXY EQU MAXX+1
|
|
MINX EQU MAXY+1
|
|
MINY EQU MINX+1
|
|
LFTSTOP EQU MINY+1
|
|
RTSTOP EQU LFTSTOP+1
|
|
TOPSTOP EQU RTSTOP+1
|
|
BTMSTOP EQU TOPSTOP+1
|
|
DELX EQU BTMSTOP+1
|
|
DELY EQU DELX+1
|
|
DRAGX EQU DELY+1
|
|
DRAGY EQU DRAGX+1
|
|
MINPT EQU MINY+1
|
|
MINDIST EQU MINPT+1
|
|
MINPOLY EQU MINDIST+1
|
|
*
|
|
* MAGNIFIER, WORLD
|
|
*
|
|
VERTA EQU B2+2
|
|
D7A EQU VERTA+1
|
|
M7A EQU D7A+1
|
|
VERTB EQU M7A+1
|
|
D7B EQU VERTB+1
|
|
M7B EQU D7B+1
|
|
BYTE2 EQU M7B+1
|
|
DRCNT EQU BYTE2+1
|
|
ZONE EQU DRCNT+1
|
|
NEXTZONE EQU ZONE+1
|
|
*
|
|
COLBW EQU $C0
|
|
GRIDON EQU COLBW+1
|
|
MCOLOR EQU GRIDON+1
|
|
XDIR EQU MCOLOR+1
|
|
YDIR EQU XDIR+1
|
|
VR EQU YDIR+1
|
|
VRY EQU VR
|
|
VRXD7 EQU VRY+1
|
|
VRXM7 EQU VRXD7+1
|
|
* NEXT EQU VR+6
|
|
*
|
|
SLB EQU $C0
|
|
SLOLD EQU SLB+2
|
|
SLNEW EQU SLOLD+1
|
|
*
|
|
COLORBAR EQU $200
|
|
*
|
|
* PBDB
|
|
*
|
|
LOGIC EQU $4000
|
|
WSET EQU $4018
|
|
PBDATA EQU $401C
|
|
OBJDX EQU PBDATA+1
|
|
PBDX EQU $6F40
|
|
*
|
|
* EXTERNALS
|
|
*
|
|
D7 EQU $1400
|
|
M7 EQU D7+$100
|
|
LO EQU M7+$100
|
|
HI EQU LO+$C0
|
|
SETMODE EQU HI+$10F
|
|
DRAWB EQU SETMODE+$25
|
|
XOFFDRAW EQU DRAWB+$3D
|
|
MASKS EQU XOFFDRAW+$9A
|
|
HLINE EQU MASKS+$F
|
|
VLINE EQU HLINE+$20
|
|
FRAMER EQU VLINE+$58
|
|
DRAWR EQU FRAMER+$28
|
|
INR EQU DRAWR+$10
|
|
GETB EQU INR+$2D
|
|
INITC EQU GETB+$7
|
|
XDRAWC EQU INITC+$1B
|
|
UPDATEC EQU XDRAWC+$7
|
|
DOCX EQU UPDATEC+$1E
|
|
GETCX EQU DOCX+$45
|
|
DOCY EQU GETCX+$16
|
|
JSCTRL EQU DOCY+$4D
|
|
CINR EQU JSCTRL+$21
|
|
DOMENU EQU CINR+$13
|
|
SELECT EQU DOMENU+$54
|
|
INIT EQU SELECT+$40
|
|
MOVEUP EQU INIT+$35
|
|
MOVEDOWN EQU MOVEUP+$3B
|
|
ADDIYX EQU MOVEDOWN+$39
|
|
ADDYX EQU ADDIYX+$E
|
|
SUBIYX EQU ADDYX+$10
|
|
SUBYX EQU SUBIYX+$12
|
|
CMPYX EQU SUBYX+$10
|
|
CHARTO EQU CMPYX+$F
|
|
PRCHAR EQU CHARTO+$A
|
|
PRINT EQU PRCHAR+$38
|
|
*
|
|
* PPAK
|
|
*
|
|
DRAWDISPLAY EQU $8E20
|
|
GETOBJ EQU DRAWDISPLAY+$3E
|
|
GETNEXTOBJ EQU GETOBJ+$C
|
|
GETINFO EQU GETNEXTOBJ+$1B
|
|
DRAWOBJ EQU GETINFO+$3E
|
|
SETCOLOR EQU DRAWOBJ+$14
|
|
SCANPOLY EQU SETCOLOR+$25
|
|
ALIGNPOLY EQU SCANPOLY+$404
|
|
GETSCAN EQU ALIGNPOLY+$39
|
|
MAKEHOLE EQU GETSCAN+$57
|
|
SELECTPOLY EQU MAKEHOLE+$4A
|
|
POLYPOINTS EQU SELECTPOLY+$33
|
|
REMOVEPOLY EQU POLYPOINTS+$37
|
|
GETBOUNDS EQU REMOVEPOLY+$6E
|
|
*
|
|
* RUNTIME
|
|
*
|
|
PLAYSTART EQU $8854
|
|
POLY EQU PLAYSTART+$16E
|
|
LAUNCHER EQU POLY+$B
|
|
LEFTFLIPPER EQU LAUNCHER+$1B
|
|
RIGHTFLIPPER EQU LEFTFLIPPER+$1B
|
|
BALL EQU RIGHTFLIPPER+$1B
|
|
BMP1 EQU BALL+$1B
|
|
BMP2 EQU BMP1+$23
|
|
BMP3 EQU BMP2+$23
|
|
BMP4 EQU BMP3+$1B
|
|
BMP5 EQU BMP4+$1B
|
|
BMP6 EQU BMP5+$1B
|
|
LKICK EQU BMP6+$1B
|
|
RKICK EQU LKICK+$1D
|
|
KICK1 EQU RKICK+$1D
|
|
KICK2 EQU KICK1+$1B
|
|
ROLL1 EQU KICK2+$1B
|
|
ROLL2 EQU ROLL1+$1B
|
|
ROLL3 EQU ROLL2+$1B
|
|
TARG1 EQU ROLL3+$1B
|
|
TARG2 EQU TARG1+$1B
|
|
TARG3 EQU TARG2+$1B
|
|
TARG4 EQU TARG3+$1B
|
|
TARG5 EQU TARG4+$1B
|
|
TARG6 EQU TARG5+$1B
|
|
LFLIP2 EQU TARG6+$1B
|
|
RFLIP2 EQU LFLIP2+$1B
|
|
POLY1 EQU RFLIP2+$1B
|
|
POLY2 EQU POLY1+$B
|
|
POLY3 EQU POLY2+$B
|
|
POLY4 EQU POLY3+$B
|
|
LANE1 EQU POLY4+$B
|
|
LANE2 EQU LANE1+$1B
|
|
LANE3 EQU LANE2+$1B
|
|
GATE1 EQU LANE3+$1B
|
|
GATE2 EQU GATE1+$1B
|
|
GATE3 EQU GATE2+$1B
|
|
GATE4 EQU GATE3+$1B
|
|
DROP1 EQU GATE4+$1B
|
|
DROP2 EQU DROP1+$1C
|
|
CATCH1 EQU DROP2+$1C
|
|
CATCH2 EQU CATCH1+$1D
|
|
SPIN EQU CATCH2+$1B
|
|
MGNT EQU SPIN+$1B
|
|
*
|
|
SWAPWIRE EQU $1E08
|
|
SWAPDISK EQU $1E10
|
|
*
|
|
START JSR INIT
|
|
LDA #0
|
|
STA CY
|
|
STA CXD7
|
|
STA CXM7
|
|
STA SCANMODE
|
|
JSR DRAWDISPLAY
|
|
JSR SAVELOGO
|
|
*
|
|
DRAWKIT JSR CLEARKIT
|
|
LDA #6
|
|
STA COLOR
|
|
LDY #0
|
|
STY EDITMODE
|
|
*
|
|
SETUP STY YTEMP
|
|
LDA ICONS,Y
|
|
LDX ICONS+1,Y
|
|
JSR XOFFDRAW
|
|
LDY YTEMP
|
|
INY
|
|
INY
|
|
CPY #108
|
|
BNE SETUP
|
|
*
|
|
LDA #$80
|
|
STA SCANMODE
|
|
LDY #0
|
|
SETUP2 STY NEXTOBJ
|
|
LDA POLYS,Y
|
|
STA OBJ
|
|
LDA POLYS+1,Y
|
|
STA OBJ+1
|
|
JSR GETINFO
|
|
JSR DRAWOBJ
|
|
LDY NEXTOBJ
|
|
INY
|
|
INY
|
|
CPY #8
|
|
BNE SETUP2
|
|
*
|
|
LDA #<HAND
|
|
LDX #>HAND
|
|
JSR INITC
|
|
*
|
|
MAIN JSR JSCTRL
|
|
JSR UPDATEC
|
|
JSR GETB
|
|
BPL MAIN
|
|
*
|
|
LDA #<TABLEB
|
|
LDX #>TABLEB
|
|
JSR CINR
|
|
BCC MAIN2
|
|
JSR MODE0
|
|
JMP MAIN
|
|
*
|
|
MODE0 LDA EDITMODE
|
|
BNE MODE80
|
|
JMP DRAGOBJ
|
|
MODE80 CMP #$80
|
|
BNE MODE81
|
|
JMP DRAGPOINT
|
|
MODE81 CMP #$81
|
|
BNE MODE82
|
|
JMP CUTPOINT
|
|
MODE82 CMP #$82
|
|
BNE MODE4
|
|
JMP PASTEPOINT
|
|
MODE4 JMP PAINTOBJ
|
|
*
|
|
MAIN2 LDA #<TOOLB
|
|
LDX #>TOOLB
|
|
JSR CINR
|
|
BCC MAIN3
|
|
LDA #0
|
|
STA LASTITEM+1
|
|
JMP DOCMD
|
|
*
|
|
MAIN3 LDA EDITMODE
|
|
BNE MAIN6
|
|
LDY #0
|
|
MAIN4 LDA BOXLO,Y
|
|
LDX BOXHI,Y
|
|
STY YTEMP
|
|
JSR CINR
|
|
LDY YTEMP
|
|
BCC MAIN5
|
|
LDA OBJADDRHI,Y
|
|
STA TEMP
|
|
LDA OBJLEN,Y
|
|
LDX OBJADDRLO,Y
|
|
LDY TEMP
|
|
JSR ADDOBJ
|
|
JMP MAIN
|
|
*
|
|
MAIN5 INY
|
|
CPY #43
|
|
BCC MAIN4
|
|
MAIN6 JMP MAIN
|
|
*
|
|
DOCMD LDA #<CMDMENU
|
|
LDX #>CMDMENU
|
|
JSR DOMENU
|
|
MAIN8 JMP MAIN
|
|
*
|
|
HAND DA *+7
|
|
HEX 0225010C02
|
|
HEX 030006000C00180C
|
|
HEX 34067C067E077E07
|
|
HEX 7C0B780D70060003
|
|
*
|
|
POINTER DA *+7
|
|
HEX 1125030701
|
|
HEX 1F0F0F1F397060
|
|
*
|
|
SCISSOR DA *+7
|
|
HEX 1B25020B02
|
|
HEX 10003100330036002C001800
|
|
HEX 30034C04520412030C00
|
|
*
|
|
HAMMER DA *+7
|
|
HEX 2925020B02
|
|
HEX 7B005B010001180018001800
|
|
HEX 18001800180018001800
|
|
*
|
|
BRUSH DA *+7
|
|
HEX 3725030801
|
|
HEX 3F7C780030303030
|
|
*
|
|
INITHAND JSR POINTSOFF
|
|
LDA #<HAND
|
|
LDX #>HAND
|
|
LDY #0
|
|
SETEDMODE STY EDITMODE
|
|
JMP INITC
|
|
*
|
|
INITPOINTER JSR POINTSON
|
|
LDA #<POINTER
|
|
LDX #>POINTER
|
|
LDY #$80
|
|
BNE SETEDMODE
|
|
*
|
|
INITSCISSOR JSR POINTSON
|
|
LDA #<SCISSOR
|
|
LDX #>SCISSOR
|
|
LDY #$81
|
|
BNE SETEDMODE
|
|
*
|
|
INITHAMMER JSR POINTSON
|
|
LDA #<HAMMER
|
|
LDX #>HAMMER
|
|
LDY #$82
|
|
BNE SETEDMODE
|
|
*
|
|
INITBRUSH JSR POINTSOFF
|
|
LDA #<BRUSH
|
|
LDX #>BRUSH
|
|
LDY #1
|
|
BNE SETEDMODE
|
|
*
|
|
POINTSON BIT EDITMODE
|
|
BMI POINTS3
|
|
BPL POINTS2
|
|
POINTSOFF BIT EDITMODE
|
|
BPL *+5
|
|
POINTS2 JSR DRAWPOINTS
|
|
POINTS3 JMP XDRAWC
|
|
*
|
|
DRAWLOGO LDA #<LOGO
|
|
LDX #>LOGO
|
|
JMP DRAWB
|
|
*
|
|
SAVELOGO LDY #1
|
|
JSR SETMODE
|
|
LDA #<LOGO
|
|
LDX #>LOGO
|
|
JMP DRAWB
|
|
*
|
|
LOGO DA $380
|
|
HEX 0016004012
|
|
*
|
|
WHITE LDY #6
|
|
SETCLR STY COLOR
|
|
JMP SETCOLOR
|
|
*
|
|
GREEN LDY #2
|
|
BNE SETCLR
|
|
*
|
|
VIOLET LDY #4
|
|
BNE SETCLR
|
|
*
|
|
RED LDY #10
|
|
BNE SETCLR
|
|
*
|
|
BLUE LDY #12
|
|
BNE SETCLR
|
|
*
|
|
CLEARKIT LDY #3
|
|
JSR SETMODE
|
|
LDA #<KITB
|
|
LDX #>KITB
|
|
JSR DRAWR
|
|
LDY #2
|
|
JMP SETMODE
|
|
*
|
|
PLAY JSR POINTSOFF
|
|
JSR CLEARKIT
|
|
JSR DRAWLOGO
|
|
JSR PLAYSTART
|
|
REEDIT JSR SAVELOGO
|
|
JMP DRAWKIT
|
|
*
|
|
MAGPAINT JSR POINTSOFF
|
|
JSR CLEARKIT
|
|
JSR DRAWLOGO
|
|
JSR MAGSTART
|
|
JMP REEDIT
|
|
*
|
|
SETWORLD JSR POINTSOFF
|
|
JSR CLEARKIT
|
|
JSR WORLDSTART
|
|
JMP DRAWKIT
|
|
*
|
|
WIREKIT JSR POINTSOFF
|
|
JSR CLEARKIT
|
|
JSR SWAPWIRE
|
|
JMP DRAWKIT
|
|
*
|
|
DISKIO JSR POINTSOFF
|
|
JSR CLEARKIT
|
|
JSR DRAWLOGO
|
|
JSR SWAPDISK
|
|
JMP REEDIT
|
|
*
|
|
DRAGOBJ JSR SELECTPOLY
|
|
BCS DRAGO2
|
|
RTS
|
|
*
|
|
DRAGO2 LDX #$80
|
|
STX SCANMODE ;NO MERGE
|
|
TAY
|
|
JSR GETOBJ
|
|
*
|
|
DRAGO4 JSR REMOVEPOLY
|
|
*
|
|
DRAGOBJ2 JSR XDRAWC
|
|
JSR GETBOUNDS
|
|
LDX PARAM+3
|
|
LDA D7,X
|
|
STA CXD7
|
|
LDA M7,X
|
|
STA CXM7
|
|
JSR XDRAWC
|
|
*
|
|
LDY #0
|
|
STY RTSTOP
|
|
STY BTMSTOP
|
|
LDA #$FF
|
|
STA LFTSTOP
|
|
STA TOPSTOP
|
|
DRAGO5 LDA (PLYPTRX),Y
|
|
CMP LFTSTOP
|
|
BCS *+4
|
|
STA LFTSTOP
|
|
CMP RTSTOP
|
|
BCC *+4
|
|
STA RTSTOP
|
|
LDA (PLYPTRY),Y
|
|
CMP TOPSTOP
|
|
BCS *+4
|
|
STA TOPSTOP
|
|
CMP BTMSTOP
|
|
BCC *+4
|
|
STA BTMSTOP
|
|
INY
|
|
CPY VRTXCOUNT
|
|
BNE DRAGO5
|
|
*
|
|
JSR GETCX
|
|
STA DRAGX
|
|
SEC
|
|
SBC LFTSTOP
|
|
CLC
|
|
ADC #1
|
|
STA LFTSTOP
|
|
LDA #255
|
|
SEC
|
|
SBC RTSTOP
|
|
CLC
|
|
ADC DRAGX
|
|
SEC
|
|
SBC #1
|
|
STA RTSTOP
|
|
*
|
|
LDA CY
|
|
STA DRAGY
|
|
SEC
|
|
SBC TOPSTOP
|
|
CLC
|
|
ADC #1
|
|
STA TOPSTOP
|
|
LDA #191
|
|
SEC
|
|
SBC BTMSTOP
|
|
CLC
|
|
ADC CY
|
|
SEC
|
|
SBC #1
|
|
STA BTMSTOP
|
|
*
|
|
DRAGO6 JSR DRAWOBJ
|
|
*
|
|
JSR GETCX
|
|
CMP LFTSTOP
|
|
BCS *+4
|
|
LDA LFTSTOP
|
|
CMP RTSTOP
|
|
BCC *+4
|
|
LDA RTSTOP
|
|
TAX
|
|
SEC
|
|
SBC DRAGX
|
|
*
|
|
CMP #$10
|
|
BCC *+6
|
|
CMP #$F0
|
|
BCC DRAGO8
|
|
STA DELX
|
|
STX DRAGX
|
|
*
|
|
LDA CY
|
|
CMP TOPSTOP
|
|
BCS *+4
|
|
LDA TOPSTOP
|
|
CMP BTMSTOP
|
|
BCC *+4
|
|
LDA BTMSTOP
|
|
TAX
|
|
SEC
|
|
SBC DRAGY
|
|
STA DELY
|
|
STX DRAGY
|
|
*
|
|
LDY #0
|
|
DRAGO7 LDA (PLYPTRX),Y
|
|
CLC
|
|
ADC DELX
|
|
STA (PLYPTRX),Y
|
|
LDA (PLYPTRY),Y
|
|
CLC
|
|
ADC DELY
|
|
STA (PLYPTRY),Y
|
|
INY
|
|
CPY VRTXCOUNT
|
|
BNE DRAGO7
|
|
*
|
|
LDA OBJID
|
|
CMP #<LIBOBJ
|
|
BCC DRAGO8
|
|
*
|
|
LDY #2
|
|
LDA (LB),Y
|
|
CLC
|
|
ADC DELY
|
|
STA (LB),Y
|
|
INY
|
|
LDA (LB),Y
|
|
STA TEMP
|
|
ASL
|
|
ASL
|
|
ASL
|
|
SEC
|
|
SBC TEMP
|
|
INY
|
|
CLC
|
|
ADC (LB),Y
|
|
CLC
|
|
ADC DELX
|
|
TAX
|
|
LDA M7,X
|
|
STA (LB),Y
|
|
DEY
|
|
LDA D7,X
|
|
STA (LB),Y
|
|
*
|
|
DRAGO8 JSR GETB
|
|
BPL DRAGO9
|
|
*
|
|
JSR DRAWOBJ
|
|
JSR UPDATEC
|
|
JMP DRAGO6
|
|
*
|
|
DRAGO9 LDA #<TABLEB
|
|
LDX #>TABLEB
|
|
JSR CINR
|
|
BCC DELETEOBJ
|
|
LDA SCANMODE
|
|
AND #$7F ;MERGE
|
|
STA SCANMODE
|
|
JSR DRAWOBJ
|
|
BCC RTS1
|
|
*
|
|
JSR REMOVEPOLY
|
|
JSR DRAWOBJ
|
|
JSR REMOVEPOLY
|
|
JMP DELETEOBJ
|
|
RTS1 RTS
|
|
*
|
|
DELETEOBJ LDY NEXTOBJ
|
|
LDA OBJDX,Y
|
|
STA YTEMP
|
|
TYA
|
|
CLC
|
|
ADC #<OBJDX
|
|
STA TEMP
|
|
LDA #0
|
|
ADC #>OBJDX
|
|
STA TEMP+1
|
|
LDA #1
|
|
LDY #<TEMP
|
|
LDX #<OBJ2
|
|
JSR ADDIYX
|
|
LDA #<OBJ
|
|
LDX #<OBJ2
|
|
LDY #<TEMP
|
|
JSR MOVEDOWN
|
|
*
|
|
LDA YTEMP
|
|
LDY #<OBJ
|
|
LDX #<OBJ2
|
|
JSR ADDIYX
|
|
LDA #1
|
|
LDY #<OBJ
|
|
LDX #<OBJ
|
|
JSR SUBIYX
|
|
LDA #<MIDBTM
|
|
LDX #<OBJ2
|
|
LDY #<OBJ
|
|
JSR MOVEDOWN
|
|
*
|
|
DEC OBJCOUNT
|
|
DEC PBDATA
|
|
LDX YTEMP
|
|
INX
|
|
TXA
|
|
STA TEMP
|
|
LDY #<MEMBTM
|
|
LDX #<MEMBTM
|
|
JSR SUBIYX
|
|
LDA TEMP
|
|
LDY #<MIDBTM
|
|
LDX #<MIDBTM
|
|
JSR SUBIYX
|
|
*
|
|
LDY #1
|
|
JSR MAKEHOLE
|
|
*
|
|
LDA MIDTOP
|
|
STA B1
|
|
LDA MIDTOP+1
|
|
STA B1+1
|
|
LDY #1
|
|
DELOBJ2 LDA (B1),Y
|
|
CMP NEXTOBJ
|
|
BCC DELOBJ3
|
|
SBC #1
|
|
STA (B1),Y
|
|
DELOBJ3 LDX B1+1
|
|
LDA B1
|
|
CLC
|
|
ADC #4
|
|
STA B1
|
|
BCC *+3
|
|
INX
|
|
STX B1+1
|
|
CMP #<PBDX
|
|
BNE DELOBJ2
|
|
CPX #>PBDX
|
|
BNE DELOBJ2
|
|
*
|
|
LDY #0
|
|
DELOBJ4 JSR FIXINDX
|
|
INY
|
|
JSR FIXINDX
|
|
INY
|
|
JSR FIXINDX
|
|
INY
|
|
INY
|
|
CPY #24
|
|
BCC DELOBJ4
|
|
RTS
|
|
*
|
|
FIXINDX LDA LOGIC,Y
|
|
CMP NEXTOBJ
|
|
BCC FIXIN2
|
|
BNE *+4
|
|
LDA #1
|
|
SBC #1
|
|
STA LOGIC,Y
|
|
FIXIN2 RTS
|
|
*
|
|
ADDOBJ STX OBJ2
|
|
STY OBJ2+1
|
|
STA YTEMP ;SIZE + 1
|
|
*
|
|
LDX OBJCOUNT
|
|
INX
|
|
BMI ABORTAO
|
|
LDA MIDTOP
|
|
SEC
|
|
SBC MIDBTM
|
|
TAX
|
|
LDA MIDTOP+1
|
|
SBC MIDBTM+1
|
|
BNE ADDOBJ1
|
|
TXA
|
|
CMP #32
|
|
BCS ADDOBJ1
|
|
ABORTAO RTS
|
|
*
|
|
ADDOBJ1 LDA YTEMP
|
|
LDY #<MIDBTM
|
|
LDX #<TEMP
|
|
JSR ADDIYX
|
|
INC TEMP
|
|
BNE *+4
|
|
INC TEMP+1
|
|
LDA #<MIDBTM
|
|
LDX #<MEMBTM
|
|
LDY #<TEMP
|
|
JSR MOVEUP
|
|
LDA TEMP
|
|
STA MIDBTM
|
|
LDA TEMP+1
|
|
STA MIDBTM+1
|
|
*
|
|
LDY #0
|
|
JSR GETOBJ
|
|
LDA #1
|
|
LDY #<MEMBTM
|
|
LDX #<TEMP
|
|
JSR ADDIYX
|
|
LDA #<MEMBTM
|
|
LDX #<OBJ
|
|
LDY #<TEMP
|
|
JSR MOVEUP
|
|
*
|
|
INC MEMBTM
|
|
BNE *+4
|
|
INC MEMBTM+1
|
|
LDY #0
|
|
ADDOBJ2 LDA (OBJ2),Y
|
|
STA (MEMBTM),Y
|
|
INY
|
|
CPY YTEMP
|
|
BNE ADDOBJ2
|
|
*
|
|
INC OBJCOUNT
|
|
INC PBDATA
|
|
LDY OBJCOUNT
|
|
LDA YTEMP
|
|
STA PBDATA,Y
|
|
LDX #<MEMBTM
|
|
LDY #<MEMBTM
|
|
JSR ADDIYX
|
|
LDA #$80
|
|
STA SCANMODE
|
|
LDY OBJCOUNT
|
|
DEY
|
|
JSR GETOBJ
|
|
JSR DRAWOBJ
|
|
BCC ADDOBJ3
|
|
JSR REMOVEPOLY
|
|
JSR DRAWOBJ
|
|
JMP DELETEOBJ
|
|
*
|
|
ADDOBJ3 JMP DRAGOBJ2
|
|
*
|
|
DRAGPOINT JSR SELECTPOINT
|
|
BCC *+3
|
|
RTS
|
|
*
|
|
JSR REMOVEPOLY
|
|
*
|
|
LDA #$80 ;NO MERGE
|
|
ORA SCANMODE
|
|
STA SCANMODE
|
|
LDA FILLCOLOR
|
|
BEQ *+5
|
|
JSR POLYPOINTS
|
|
DRAGP2 JSR DRAWOBJ
|
|
LDY MINPT
|
|
LDA (PLYPTRX),Y
|
|
STA DRAGX
|
|
LDA (PLYPTRY),Y
|
|
STA DRAGY
|
|
JSR GETCX
|
|
BNE *+4
|
|
LDA #1
|
|
CMP #152 ;22*7-2
|
|
BCC *+4
|
|
LDA #152
|
|
STA (PLYPTRX),Y
|
|
*
|
|
LDA CY
|
|
BNE *+4
|
|
LDA #1
|
|
CMP #190 ;192-2
|
|
BCC *+4
|
|
LDA #190
|
|
STA (PLYPTRY),Y
|
|
*
|
|
DRAGP3 JSR ALIGNPOLY
|
|
PHP
|
|
LDA MINPT
|
|
SEC
|
|
SBC YTEMP ;ALIGN DISP
|
|
BCS *+4
|
|
ADC VRTXCOUNT
|
|
STA MINPT
|
|
PLP
|
|
BCC DRAGP4
|
|
TAY
|
|
LDA DRAGX
|
|
STA (PLYPTRX),Y
|
|
LDA DRAGY
|
|
STA (PLYPTRY),Y
|
|
JSR ALIGNPOLY
|
|
*
|
|
DRAGP4 JSR GETB
|
|
BPL ENDPTEDIT
|
|
JSR DRAWOBJ
|
|
BCS CUTPOINT3
|
|
JSR UPDATEC
|
|
JMP DRAGP2
|
|
*
|
|
ENDPTEDIT LDA SCANMODE
|
|
AND #$7F ;MERGE
|
|
STA SCANMODE
|
|
LDA FILLCOLOR
|
|
BEQ *+5
|
|
JSR POLYPOINTS
|
|
JSR DRAWOBJ
|
|
BCC RTS2
|
|
*
|
|
JSR REMOVEPOLY
|
|
LDA FILLCOLOR
|
|
BEQ *+5
|
|
JSR POLYPOINTS
|
|
JSR DRAWOBJ
|
|
JSR REMOVEPOLY
|
|
JMP CUTPOINT4
|
|
*
|
|
CUTPOINT JSR SELECTPOINT
|
|
BCC *+3
|
|
RTS2 RTS
|
|
*
|
|
CUTPOINT2 JSR REMOVEPOLY
|
|
*
|
|
LDA SCANMODE
|
|
ORA #$80
|
|
STA SCANMODE
|
|
LDA FILLCOLOR
|
|
BEQ *+5
|
|
JSR POLYPOINTS
|
|
*
|
|
CUTPOINT3 JSR DRAWOBJ
|
|
*
|
|
CUTPOINT4 LDX VRTXCOUNT
|
|
CPX #4
|
|
BCS *+9
|
|
LDA NEXTOBJ
|
|
BEQ ENDPTEDIT
|
|
JMP DELETEOBJ
|
|
DEX
|
|
TXA
|
|
LDY #2
|
|
STA (OBJ),Y
|
|
*
|
|
LDA MINPT ;CHANGE POLY
|
|
LDY #<PLYPTRX
|
|
LDX #<PLYPTRX
|
|
JSR ADDIYX
|
|
LDA #1
|
|
LDY #<PLYPTRX
|
|
LDX #<TEMP
|
|
JSR ADDIYX
|
|
LDA MINPT
|
|
LDY #<PLYPTRY
|
|
LDX #<PLYPTRY
|
|
JSR ADDIYX
|
|
LDA #<PLYPTRY
|
|
LDX #<TEMP
|
|
LDY #<PLYPTRX
|
|
JSR MOVEDOWN
|
|
*
|
|
LDA #1
|
|
LDY #<PLYPTRY
|
|
LDX #<PLYPTRY
|
|
JSR SUBIYX
|
|
LDA #2
|
|
LDY #<PLYPTRY
|
|
LDX #<TEMP
|
|
JSR ADDIYX
|
|
LDA #<MIDBTM
|
|
LDX #<TEMP
|
|
LDY #<PLYPTRY
|
|
JSR MOVEDOWN
|
|
*
|
|
LDA #2
|
|
LDX #<MEMBTM
|
|
LDY #<MEMBTM
|
|
JSR SUBIYX
|
|
LDA #2
|
|
LDX #<MIDBTM
|
|
LDY #<MIDBTM
|
|
JSR SUBIYX
|
|
*
|
|
LDY NEXTOBJ
|
|
LDA PBDATA+1,Y
|
|
SEC
|
|
SBC #2
|
|
STA PBDATA+1,Y
|
|
LDY NEXTOBJ
|
|
JSR GETOBJ
|
|
JSR ALIGNPOLY
|
|
BCC CUTP2
|
|
JMP DELETEOBJ
|
|
*
|
|
CUTP2 JSR GETB
|
|
BMI CUTP2
|
|
JMP ENDPTEDIT
|
|
*
|
|
PASTEPOINT JSR SELECTPOINT
|
|
BCC *+3
|
|
RTS
|
|
*
|
|
LDX VRTXCOUNT
|
|
CPX #63
|
|
BCS ABORTPP
|
|
LDA MIDTOP
|
|
SEC
|
|
SBC MIDBTM
|
|
TAX
|
|
LDA MIDTOP+1
|
|
SBC MIDBTM+1
|
|
BNE PASTEP2
|
|
TXA
|
|
CMP #$20
|
|
BCS PASTEP2
|
|
ABORTPP RTS
|
|
*
|
|
PASTEP2 JSR REMOVEPOLY
|
|
*
|
|
LDA #$80 ;ODDS, NO MERGE
|
|
ORA SCANMODE
|
|
STA SCANMODE
|
|
LDA FILLCOLOR
|
|
BEQ *+5
|
|
JSR POLYPOINTS
|
|
*
|
|
JSR DRAWOBJ
|
|
LDX VRTXCOUNT
|
|
INX
|
|
TXA
|
|
LDY #2
|
|
STA (OBJ),Y
|
|
*
|
|
LDA MINPT
|
|
LDY #<PLYPTRY
|
|
LDX #<PLYPTRY
|
|
JSR ADDIYX
|
|
LDA #2
|
|
LDY #<MIDBTM
|
|
LDX #<TEMP
|
|
JSR ADDIYX
|
|
LDA #<MIDBTM
|
|
LDX #<PLYPTRY
|
|
LDY #<TEMP
|
|
JSR MOVEUP
|
|
*
|
|
LDA MINPT
|
|
LDY #<PLYPTRX
|
|
LDX #<PLYPTRX
|
|
JSR ADDIYX
|
|
LDA #1
|
|
LDY #<PLYPTRY
|
|
LDX #<TEMP
|
|
JSR ADDIYX
|
|
LDA #<PLYPTRY
|
|
LDX #<PLYPTRX
|
|
LDY #<TEMP
|
|
JSR MOVEUP
|
|
*
|
|
LDY NEXTOBJ
|
|
JSR GETOBJ
|
|
LDY MINPT
|
|
LDA MINX
|
|
STA (PLYPTRX),Y
|
|
LDA MINY
|
|
STA (PLYPTRY),Y
|
|
*
|
|
LDA #2
|
|
LDX #<MEMBTM
|
|
LDY #<MEMBTM
|
|
JSR ADDIYX
|
|
LDA #2
|
|
LDX #<MIDBTM
|
|
LDY #<MIDBTM
|
|
JSR ADDIYX
|
|
LDY NEXTOBJ
|
|
LDA PBDATA+1,Y
|
|
CLC
|
|
ADC #2
|
|
STA PBDATA+1,Y
|
|
JMP DRAGP3
|
|
*
|
|
DRAWPOINTS LDY #0
|
|
JSR GETOBJ
|
|
DRAWPTS2 LDA OBJID
|
|
CMP #<POLYGON
|
|
BNE DRAWPTS4
|
|
DRAWPTS3 LDA FILLCOLOR
|
|
BEQ *+5
|
|
JSR POLYPOINTS
|
|
JMP DRAWPTS5
|
|
DRAWPTS4 CMP #<BPOLYGON
|
|
BEQ DRAWPTS3
|
|
DRAWPTS5 INC NEXTOBJ
|
|
LDY NEXTOBJ
|
|
JSR GETNEXTOBJ
|
|
LDY NEXTOBJ
|
|
CPY OBJCOUNT
|
|
BNE DRAWPTS2
|
|
RTS
|
|
*
|
|
SELECTPOINT JSR GETCX
|
|
STA CX
|
|
LDA #$FF
|
|
STA MINDIST
|
|
LDY #0
|
|
JSR GETOBJ
|
|
SELPNT2 LDA OBJID
|
|
CMP #<POLYGON
|
|
BEQ SELPNT3
|
|
CMP #<BPOLYGON
|
|
BEQ SELPNT3
|
|
JMP SELPNT7
|
|
*
|
|
SELPNT3 LDY #0
|
|
SELPNT4 LDA (PLYPTRX),Y
|
|
STA XTEMP
|
|
LDA (PLYPTRY),Y
|
|
STA YTEMP
|
|
LDA EDITMODE
|
|
CMP #$82 ;PASTE POINT MODE?
|
|
BNE SELPNT5
|
|
*
|
|
STY TEMP
|
|
DEY
|
|
BPL *+5
|
|
LDY VRTXCOUNT
|
|
DEY
|
|
LDA (PLYPTRX),Y
|
|
CLC
|
|
ADC XTEMP
|
|
ROR
|
|
STA XTEMP
|
|
LDA (PLYPTRY),Y
|
|
CLC
|
|
ADC YTEMP
|
|
ROR
|
|
STA YTEMP
|
|
LDY TEMP
|
|
*
|
|
SELPNT5 LDA XTEMP
|
|
SEC
|
|
SBC CX
|
|
BPL *+7
|
|
EOR #$FF
|
|
CLC
|
|
ADC #1
|
|
CMP #8
|
|
BCS SELPNT6
|
|
STA TEMP
|
|
*
|
|
LDA YTEMP
|
|
SEC
|
|
SBC CY
|
|
BPL *+7
|
|
EOR #$FF
|
|
CLC
|
|
ADC #1
|
|
CMP #8
|
|
BCS SELPNT6
|
|
*
|
|
ADC TEMP
|
|
CMP MINDIST
|
|
BCS SELPNT6
|
|
STA MINDIST
|
|
STY MINPT
|
|
LDA XTEMP
|
|
STA MINX
|
|
LDA YTEMP
|
|
STA MINY
|
|
LDA NEXTOBJ
|
|
STA MINPOLY
|
|
*
|
|
SELPNT6 INY
|
|
CPY VRTXCOUNT
|
|
BNE SELPNT4
|
|
*
|
|
SELPNT7 INC NEXTOBJ
|
|
LDY NEXTOBJ
|
|
JSR GETNEXTOBJ
|
|
LDY NEXTOBJ
|
|
CPY OBJCOUNT
|
|
BEQ *+5
|
|
JMP SELPNT2
|
|
*
|
|
LDA MINDIST
|
|
CMP #$FF
|
|
BCC *+3
|
|
RTS
|
|
LDY MINPOLY
|
|
STY NEXTOBJ
|
|
JSR GETOBJ
|
|
CLC
|
|
RTS
|
|
*
|
|
PAINTOBJ JSR XDRAWC
|
|
JSR SELECTPOLY
|
|
BCS PAINTO2
|
|
LDA #0
|
|
PAINTO2 TAY
|
|
JSR GETOBJ
|
|
*
|
|
LDA OBJID
|
|
CMP #<LIBOBJ
|
|
BEQ PAINTO4
|
|
*
|
|
LDA SCANMODE
|
|
ORA #$80
|
|
STA SCANMODE
|
|
LDA FILLCOLOR
|
|
BEQ *+6
|
|
EOR COLOR
|
|
BNE *+5
|
|
JSR POLYPOINTS
|
|
LDA COLOR
|
|
CMP FILLCOLOR
|
|
BNE *+4
|
|
LDA #0 ;BLACK
|
|
LDY #1
|
|
STA (OBJ),Y
|
|
EOR FILLCOLOR
|
|
BEQ PAINTO3
|
|
STA FILLCOLOR
|
|
JSR DRAWOBJ
|
|
*
|
|
PAINTO3 JSR GETB
|
|
BMI PAINTO3
|
|
PAINTO4 JMP XDRAWC
|
|
*
|
|
CMDMENU DA HANDB
|
|
DA INITHAND
|
|
DA POINTERB
|
|
DA INITPOINTER
|
|
DA SCISSORB
|
|
DA INITSCISSOR
|
|
DA HAMMERB
|
|
DA INITHAMMER
|
|
DA BRUSHB
|
|
DA INITBRUSH
|
|
DA WHITEB
|
|
DA WHITE
|
|
DA GREENB
|
|
DA GREEN
|
|
DA VIOLETB
|
|
DA VIOLET
|
|
DA REDB
|
|
DA RED
|
|
DA BLUEB
|
|
DA BLUE
|
|
DA PLAYB
|
|
DA PLAY
|
|
DA MAGNB
|
|
DA MAGPAINT
|
|
DA WORLDB
|
|
DA SETWORLD
|
|
DA WIREB
|
|
DA WIREKIT
|
|
DA DISKB
|
|
DA DISKIO
|
|
HEX 00
|
|
*
|
|
BOXLO DA <POLYB
|
|
DA <LAUNCHERB
|
|
DA <LFLIPB
|
|
DA <RFLIPB
|
|
DA <BALLB
|
|
DA <BMP1B
|
|
DA <BMP2B
|
|
DA <BMP3B
|
|
DA <BMP4B
|
|
DA <BMP5B
|
|
DA <BMP6B
|
|
DA <LKICKB
|
|
DA <RKICKB
|
|
DA <KICK1B
|
|
DA <KICK2B
|
|
DA <ROLL1B
|
|
DA <ROLL2B
|
|
DA <ROLL3B
|
|
DA <TARG1B
|
|
DA <TARG2B
|
|
DA <TARG3B
|
|
DA <TARG4B
|
|
DA <TARG5B
|
|
DA <TARG6B
|
|
DA <LFLIP2B
|
|
DA <RFLIP2B
|
|
DA <POLY1B
|
|
DA <POLY2B
|
|
DA <POLY3B
|
|
DA <POLY4B
|
|
DA <LANE1B
|
|
DA <LANE2B
|
|
DA <LANE3B
|
|
DA <GATE1B
|
|
DA <GATE2B
|
|
DA <GATE3B
|
|
DA <GATE4B
|
|
DA <DROP1B
|
|
DA <DROP2B
|
|
DA <CATCH1B
|
|
DA <CATCH2B
|
|
DA <SPINB
|
|
DA <MGNTB
|
|
*
|
|
BOXHI DA >POLYB
|
|
DA >LAUNCHERB
|
|
DA >LFLIPB
|
|
DA >RFLIPB
|
|
DA >BALLB
|
|
DA >BMP1B
|
|
DA >BMP2B
|
|
DA >BMP3B
|
|
DA >BMP4B
|
|
DA >BMP5B
|
|
DA >BMP6B
|
|
DA >LKICKB
|
|
DA >RKICKB
|
|
DA >KICK1B
|
|
DA >KICK2B
|
|
DA >ROLL1B
|
|
DA >ROLL2B
|
|
DA >ROLL3B
|
|
DA >TARG1B
|
|
DA >TARG2B
|
|
DA >TARG3B
|
|
DA >TARG4B
|
|
DA >TARG5B
|
|
DA >TARG6B
|
|
DA >LFLIP2B
|
|
DA >RFLIP2B
|
|
DA >POLY1B
|
|
DA >POLY2B
|
|
DA >POLY3B
|
|
DA >POLY4B
|
|
DA >LANE1B
|
|
DA >LANE2B
|
|
DA >LANE3B
|
|
DA >GATE1B
|
|
DA >GATE2B
|
|
DA >GATE3B
|
|
DA >GATE4B
|
|
DA >DROP1B
|
|
DA >DROP2B
|
|
DA >CATCH1B
|
|
DA >CATCH2B
|
|
DA >SPINB
|
|
DA >MGNTB
|
|
*
|
|
OBJLEN HEX 0B1B1B1B222323
|
|
HEX 1B1B1B1B1D1D1B1B1B
|
|
HEX 1B1B1B1B1B1B1B1B1B
|
|
HEX 1B0B0B0B0B1B1B1B1B
|
|
HEX 1B1B1B1C1C1E1B1C1B
|
|
*
|
|
OBJADDRLO DA <POLY
|
|
DA <LAUNCHER
|
|
DA <LEFTFLIPPER
|
|
DA <RIGHTFLIPPER
|
|
DA <BALL
|
|
DA <BMP1
|
|
DA <BMP2
|
|
DA <BMP3
|
|
DA <BMP4
|
|
DA <BMP5
|
|
DA <BMP6
|
|
DA <LKICK
|
|
DA <RKICK
|
|
DA <KICK1
|
|
DA <KICK2
|
|
DA <ROLL1
|
|
DA <ROLL2
|
|
DA <ROLL3
|
|
DA <TARG1
|
|
DA <TARG2
|
|
DA <TARG3
|
|
DA <TARG4
|
|
DA <TARG5
|
|
DA <TARG6
|
|
DA <LFLIP2
|
|
DA <RFLIP2
|
|
DA <POLY1
|
|
DA <POLY2
|
|
DA <POLY3
|
|
DA <POLY4
|
|
DA <LANE1
|
|
DA <LANE2
|
|
DA <LANE3
|
|
DA <GATE1
|
|
DA <GATE2
|
|
DA <GATE3
|
|
DA <GATE4
|
|
DA <DROP1
|
|
DA <DROP2
|
|
DA <CATCH1
|
|
DA <CATCH2
|
|
DA <SPIN
|
|
DA <MGNT
|
|
*
|
|
OBJADDRHI DA >POLY
|
|
DA >LAUNCHER
|
|
DA >LEFTFLIPPER
|
|
DA >RIGHTFLIPPER
|
|
DA >BALL
|
|
DA >BMP1
|
|
DA >BMP2
|
|
DA >BMP3
|
|
DA >BMP4
|
|
DA >BMP5
|
|
DA >BMP6
|
|
DA >LKICK
|
|
DA >RKICK
|
|
DA >KICK1
|
|
DA >KICK2
|
|
DA >ROLL1
|
|
DA >ROLL2
|
|
DA >ROLL3
|
|
DA >TARG1
|
|
DA >TARG2
|
|
DA >TARG3
|
|
DA >TARG4
|
|
DA >TARG5
|
|
DA >TARG6
|
|
DA >LFLIP2
|
|
DA >RFLIP2
|
|
DA >POLY1
|
|
DA >POLY2
|
|
DA >POLY3
|
|
DA >POLY4
|
|
DA >LANE1
|
|
DA >LANE2
|
|
DA >LANE3
|
|
DA >GATE1
|
|
DA >GATE2
|
|
DA >GATE3
|
|
DA >GATE4
|
|
DA >DROP1
|
|
DA >DROP2
|
|
DA >CATCH1
|
|
DA >CATCH2
|
|
DA >SPIN
|
|
DA >MGNT
|
|
*
|
|
TABLEB HEX 000000BF1506
|
|
*
|
|
KITB HEX 001600BF1106
|
|
*
|
|
TOOLB HEX 002400BF0306
|
|
*
|
|
HANDB HEX 0024000E0306
|
|
*
|
|
POINTERB HEX 0F2400090306
|
|
*
|
|
SCISSORB HEX 1924000D0306
|
|
*
|
|
HAMMERB HEX 2724000D0306
|
|
*
|
|
BRUSHB HEX 3524000A0306
|
|
*
|
|
WHITEB HEX 402400090306
|
|
*
|
|
GREENB HEX 4A2400090306
|
|
*
|
|
REDB HEX 542400090306
|
|
*
|
|
VIOLETB HEX 5E2400090306
|
|
*
|
|
BLUEB HEX 682400090306
|
|
*
|
|
PLAYB HEX 7324000C0306
|
|
*
|
|
MAGNB HEX 8124000C0306
|
|
*
|
|
WORLDB HEX 8F24000C0306
|
|
*
|
|
WIREB HEX 9D24000C0306
|
|
*
|
|
DISKB HEX AB24000D0306
|
|
*
|
|
POLYB HEX 1B1705100202
|
|
*
|
|
LAUNCHERB HEX 4922020C0006
|
|
*
|
|
LFLIPB HEX 021C06100204
|
|
*
|
|
RFLIPB HEX 021F01100204
|
|
*
|
|
BALLB HEX 052206050005
|
|
*
|
|
BMP1B HEX 301705110203
|
|
*
|
|
BMP2B HEX 311A020A0106
|
|
*
|
|
BMP3B HEX 301C04100004
|
|
*
|
|
BMP4B HEX 351D05050204
|
|
*
|
|
BMP5B HEX 3020030D0105
|
|
*
|
|
BMP6B HEX 3022030D0105
|
|
*
|
|
LKICKB HEX 4417051A0204
|
|
*
|
|
RKICKB HEX 441B011A0204
|
|
*
|
|
KICK1B HEX 4A1E030D0005
|
|
*
|
|
KICK2B HEX 4E1F06060104
|
|
*
|
|
ROLL1B HEX A01801050004
|
|
*
|
|
ROLL2B HEX A01901050004
|
|
*
|
|
ROLL3B HEX A01A01050004
|
|
*
|
|
TARG1B HEX A01B03030006
|
|
*
|
|
TARG2B HEX A01D00030006
|
|
*
|
|
TARG3B HEX A01E04030006
|
|
*
|
|
TARG4B HEX A02003070002
|
|
*
|
|
TARG5B HEX A02103070002
|
|
*
|
|
TARG6B HEX A02203070002
|
|
*
|
|
LFLIP2B HEX 0517050A0105
|
|
*
|
|
RFLIP2B HEX 0519040A0105
|
|
*
|
|
POLY1B HEX 1B1C02120001
|
|
*
|
|
POLY2B HEX 201D010D0001
|
|
*
|
|
POLY3B HEX 251E000A0405
|
|
*
|
|
POLY4B HEX 161E000A0405
|
|
*
|
|
LANE1B HEX 9018010A0004
|
|
*
|
|
LANE2B HEX 901904080004
|
|
*
|
|
LANE3B HEX 901B00050004
|
|
*
|
|
GATE1B HEX 901C05090006
|
|
*
|
|
GATE2B HEX 901E05090006
|
|
*
|
|
GATE3B HEX 902005090006
|
|
*
|
|
GATE4B HEX 902205090006
|
|
*
|
|
DROP1B HEX 641A00040403
|
|
*
|
|
DROP2B HEX 641800200005
|
|
*
|
|
CATCH1B HEX 6C1A04130103
|
|
*
|
|
CATCH2B HEX 701D00090103
|
|
*
|
|
SPINB HEX 642006050006
|
|
*
|
|
MGNTB HEX 742006070102
|
|
*
|
|
ICONS DA HAND
|
|
DA POINTER
|
|
DA SCISSOR
|
|
DA HAMMER
|
|
DA BRUSH
|
|
DA WHITEPAINT
|
|
DA GREENPAINT
|
|
DA VIOLETPAINT
|
|
DA REDPAINT
|
|
DA BLUEPAINT
|
|
DA PLAYICON
|
|
DA MAGNIFIER
|
|
DA WORLD
|
|
DA ANDG
|
|
DA DISK
|
|
DA POLYICON
|
|
DA LAUNCHER+$B
|
|
DA LEFTFLIPPER+$B
|
|
DA RIGHTFLIPPER+$B
|
|
DA BALL+$B
|
|
DA BMP1+$13
|
|
DA BMP2+$13
|
|
DA BMP3+$B
|
|
DA BMP4+$B
|
|
DA BMP5+$B
|
|
DA BMP6+$B
|
|
DA LKICK+$D
|
|
DA RKICK+$D
|
|
DA KICK1+$B
|
|
DA KICK2+$B
|
|
DA ROLL1+$B
|
|
DA ROLL2+$B
|
|
DA ROLL3+$B
|
|
DA TARG1+$B
|
|
DA TARG2+$B
|
|
DA TARG3+$B
|
|
DA TARG4+$B
|
|
DA TARG5+$B
|
|
DA TARG6+$B
|
|
DA LFLIP2+$B
|
|
DA RFLIP2+$B
|
|
DA LANE1+$B
|
|
DA LANE2+$B
|
|
DA LANE3+$B
|
|
DA GATE1+$B
|
|
DA GATE2+$B
|
|
DA GATE3+$B
|
|
DA GATE4+$B
|
|
DA DROP1+$B
|
|
DA DROP2+$B
|
|
DA CATCH1+$D
|
|
DA CATCH2+$B
|
|
DA SPIN+$B
|
|
DA MGNT+$B
|
|
*
|
|
POLYS DA POLY1
|
|
DA POLY2
|
|
DA POLY3
|
|
DA POLY4
|
|
*
|
|
WHITEPAINT DA *+7
|
|
HEX 4225010702
|
|
HEX 7F077F0700007F077F077F077F07
|
|
*
|
|
GREENPAINT DA *+7
|
|
HEX 4C25010702
|
|
HEX 7F077F0700002A052A052A052A05
|
|
*
|
|
VIOLETPAINT DA *+7
|
|
HEX 6025010702
|
|
HEX FE0FFE0F0000540A540A540A540A
|
|
*
|
|
REDPAINT DA *+7
|
|
HEX 5625010702
|
|
HEX FE0FFE0F0000AA85AA85AA85AA85
|
|
*
|
|
BLUEPAINT DA *+7
|
|
HEX 6A25010702
|
|
HEX FE8FFE8F0000D48AD48AD48AD48A
|
|
*
|
|
PLAYICON DA *+7
|
|
HEX 7525000A02
|
|
HEX 1E383F7C7F7C7F7D7E3B7807600F001F003C0030
|
|
*
|
|
MAGNIFIER DA *+7
|
|
HEX 8325000A02
|
|
HEX 78010606030C030C030C060678030007000E000C
|
|
*
|
|
WORLD DA *+7
|
|
HEX 9124060A02
|
|
HEX 70075C0A562A572A572A572A572A562A5C0A7007
|
|
*
|
|
ANDG DA *+7
|
|
HEX 9F24060A03
|
|
HEX 730F00333800306000304001334031334031304001306000333800730F00
|
|
*
|
|
DISK DA *+7
|
|
HEX AD24060B02
|
|
HEX 7F3F0120612171237123712361210120412041207F3F
|
|
*
|
|
POLYICON DA *+7
|
|
HEX 1917051003
|
|
HEX 07001C777F1D07001C000000
|
|
HEX 020008020008020008020008
|
|
HEX 020008020008020008020008
|
|
HEX 00000007001C777F1D07001C
|
|
*
|
|
MAGSTART LDA #<ICON1
|
|
LDX #>ICON1
|
|
JSR XOFFDRAW
|
|
JSR DRAWQUIT
|
|
LDA #<ICON2
|
|
LDX #>ICON2
|
|
JSR XOFFDRAW
|
|
*
|
|
JSR INITMAG
|
|
LDA #<BRUSH
|
|
LDX #>BRUSH
|
|
JSR INITC
|
|
*
|
|
MMAIN JSR JSCTRL
|
|
JSR UPDATEC
|
|
JSR GETB
|
|
BPL MMAIN
|
|
*
|
|
LDA #<VR
|
|
LDX #>VR
|
|
JSR CINR
|
|
BCC MMAIN3
|
|
MMAIN2 JSR DRAG
|
|
JMP MMAIN
|
|
*
|
|
MMAIN3 LDA #<MAGB
|
|
LDX #>MAGB
|
|
JSR CINR
|
|
BCC MMAIN4
|
|
LDA #<MAG
|
|
LDX #>MAG
|
|
JSR CINR
|
|
BCC *+8
|
|
JSR PLOT
|
|
JMP MMAIN
|
|
JSR SLIDEMAG
|
|
JMP MMAIN
|
|
*
|
|
MMAIN4 LDA #<MCMDB
|
|
LDX #>MCMDB
|
|
JSR CINR
|
|
BCC MMAIN2
|
|
LDA #0
|
|
STA LASTITEM+1
|
|
JMP MDOCMD
|
|
*
|
|
MDOCMD LDA #<MCMDMENU
|
|
LDX #>MCMDMENU
|
|
JSR DOMENU
|
|
JMP MMAIN
|
|
*
|
|
MCMDMENU DA COLBWB
|
|
DA SWITCHCOLBW
|
|
DA GRIDB
|
|
DA GRIDTOGL
|
|
DA MQUITB
|
|
DA MQUIT
|
|
DA MWHTB
|
|
DA MWHITE
|
|
DA MGRNB
|
|
DA MGREEN
|
|
DA MVLTB
|
|
DA MVIOLET
|
|
DA MREDB
|
|
DA MRED
|
|
DA MBLUB
|
|
DA MBLUE
|
|
HEX 00
|
|
*
|
|
MQUIT JSR DRAWVIEWR
|
|
WQUIT PLA
|
|
PLA
|
|
RTS
|
|
*
|
|
DRAWQUIT LDA #3
|
|
LDX #26
|
|
LDY #178
|
|
JSR CHARTO
|
|
LDA #<QUITMSG
|
|
LDX #>QUITMSG
|
|
JMP PRINT
|
|
QUITMSG HEX 1A1E129D
|
|
*
|
|
MWHITE LDY #6
|
|
MSETCLR BIT COLBW
|
|
BMI MSETCLR2
|
|
STY MCOLOR
|
|
JMP SETCOLOR
|
|
MSETCLR2 RTS
|
|
*
|
|
MGREEN LDY #2
|
|
BNE MSETCLR
|
|
*
|
|
MVIOLET LDY #4
|
|
BNE MSETCLR
|
|
*
|
|
MRED LDY #10
|
|
BNE MSETCLR
|
|
*
|
|
MBLUE LDY #12
|
|
BNE MSETCLR
|
|
*
|
|
PLOT JSR DRAWVIEWR
|
|
LDA MCOLOR
|
|
JSR INSQR
|
|
STX XTEMP
|
|
STY YTEMP
|
|
STA TEMP
|
|
JSR INMAG
|
|
BCS PLOT6
|
|
JSR HPLOT
|
|
BCC PLOT2
|
|
LDA MCOLOR
|
|
BCS PLOT3
|
|
PLOT2 LDA MCOLOR
|
|
AND #$08
|
|
PLOT3 TAY
|
|
JSR SETCOLOR
|
|
LDX XTEMP
|
|
LDY YTEMP
|
|
LDA TEMP
|
|
JSR HPLOT
|
|
JMP PLOT5
|
|
*
|
|
PLOT4 JSR INSQR
|
|
BCC PLOT6
|
|
STX XTEMP
|
|
STY YTEMP
|
|
STA TEMP
|
|
JSR INMAG
|
|
BCS PLOT6
|
|
JSR HPLOT
|
|
BCC PLOT6
|
|
PLOT5 JSR DISPLAYPLOT
|
|
PLOT6 JSR UPDATEC
|
|
JSR GETB
|
|
BMI PLOT4
|
|
LDY MCOLOR
|
|
JSR SETCOLOR
|
|
JMP DRAWVIEWR
|
|
*
|
|
DISPLAYPLOT JSR XDRAWC
|
|
LDY CY
|
|
LDX D7-71,Y ;64+7
|
|
TXA
|
|
CLC
|
|
ADC VRY
|
|
STA VERTA
|
|
LDA MUL7,X
|
|
CLC
|
|
ADC #71
|
|
STA VERTB
|
|
*
|
|
LDA VRXD7
|
|
STA D7A
|
|
LDA VRXM7
|
|
STA M7A
|
|
JSR DOROW
|
|
JMP XDRAWC
|
|
*
|
|
INMAG STX PARAM+3
|
|
STA PARAM+4
|
|
STY PARAM+5
|
|
LDA #<MCMDB
|
|
LDX #>MCMDB
|
|
JSR INR
|
|
LDA TEMP
|
|
LDX XTEMP
|
|
LDY YTEMP
|
|
RTS
|
|
*
|
|
HPLOT LDA LO,Y
|
|
STA B1
|
|
LDA HI,Y
|
|
STA B1+1
|
|
*
|
|
BIT COLBW
|
|
BPL HPLOT2
|
|
*
|
|
LDY TEMP
|
|
LDA MASK,Y
|
|
STA TEMP2
|
|
TXA
|
|
TAY
|
|
LDA $C062
|
|
AND #$80
|
|
ORA COLORBAR,Y
|
|
EOR (B1),Y
|
|
AND TEMP2
|
|
EOR (B1),Y
|
|
CMP #$80
|
|
BNE *+4
|
|
LDA #0
|
|
CMP (B1),Y
|
|
SEC
|
|
BNE *+3
|
|
CLC
|
|
STA (B1),Y
|
|
RTS
|
|
*
|
|
HPLOT2 TXA
|
|
LSR
|
|
PHP
|
|
ASL
|
|
TAY
|
|
LDA TEMP
|
|
PLP
|
|
BCC *+4
|
|
ADC #6 ;ADD 7
|
|
AND #$FE
|
|
TAX
|
|
LDA CLRMASK,X
|
|
STA TEMP2
|
|
LDA CLRMASK+1,X
|
|
STA TEMP2+1
|
|
LDA COLORBAR,Y
|
|
EOR (B1),Y
|
|
AND TEMP2
|
|
EOR (B1),Y
|
|
CMP #$80
|
|
BNE *+4
|
|
LDA #0
|
|
CMP (B1),Y
|
|
SEC
|
|
BNE *+3
|
|
CLC
|
|
STA (B1),Y
|
|
INY
|
|
LDA COLORBAR,Y
|
|
EOR (B1),Y
|
|
AND TEMP2+1
|
|
EOR (B1),Y
|
|
PHP
|
|
CMP #$80
|
|
BNE *+4
|
|
LDA #0
|
|
PLP
|
|
BCS HPLOT3
|
|
CMP (B1),Y
|
|
SEC
|
|
BNE *+3
|
|
CLC
|
|
HPLOT3 STA (B1),Y
|
|
RTS
|
|
*
|
|
MASK HEX 8182848890A0C0
|
|
*
|
|
CLRMASK HEX 83008C00B000C0810086009800E0
|
|
*
|
|
MUL7 HEX 00070E151C232A
|
|
HEX 31383F464D545B
|
|
HEX 626970777E858C
|
|
HEX 939AA1A8AFB6BD
|
|
HEX C4CBD2D9E0E7EE
|
|
HEX F5FC
|
|
*
|
|
MCMDB HEX 4016007F1106
|
|
*
|
|
COLBWB HEX B016000B0106
|
|
*
|
|
GRIDB HEX B018000B0106
|
|
*
|
|
MQUITB HEX B01A000B0401
|
|
*
|
|
MWHTB HEX B01E020B0105
|
|
*
|
|
MGRNB HEX B020010B0105
|
|
*
|
|
MVLTB HEX B022000B0105
|
|
*
|
|
MREDB HEX B023060B0105
|
|
*
|
|
MBLUB HEX B025050B0105
|
|
*
|
|
ICON1 DA *+7
|
|
HEX B116000A04
|
|
HEX 7E3F3E1F7E303E1F7E303E1F7E303E1F
|
|
HEX 7E3000007E303E1F7E303E1F7E303E1F
|
|
HEX 7E303E1F7E3F0000
|
|
*
|
|
ICON2 DA *+7
|
|
HEX B11E000A0A
|
|
HEX 703F781F7C0FFE87FF83
|
|
HEX 703F781F7C0FFE87FF83
|
|
HEX 00000000000000000000
|
|
HEX 703F2815540AAA85D582
|
|
HEX 703F2815540AAA85D582
|
|
HEX 703F2815540AAA85D582
|
|
HEX 703F2815540AAA85D582
|
|
HEX 703F2815540AAA85D582
|
|
HEX 703F2815540AAA85D582
|
|
HEX 703F2815540AAA85D582
|
|
*
|
|
INITMAG LDY #4
|
|
JSR SETMODE
|
|
*
|
|
LDA #<MBAR1
|
|
LDX #>MBAR1
|
|
JSR DRAWR
|
|
LDA #<MBAR2
|
|
LDX #>MBAR2
|
|
JSR DRAWR
|
|
LDA #<MBAR3
|
|
LDX #>MBAR3
|
|
JSR DRAWR
|
|
LDA #<MBAR4
|
|
LDX #>MBAR4
|
|
JSR DRAWR
|
|
*
|
|
LDA #$00
|
|
STA COLBW
|
|
STA GRIDON
|
|
LDY #6
|
|
STY MCOLOR
|
|
JSR SETCOLOR
|
|
*
|
|
LDA #0
|
|
STA VRY
|
|
STA VRXD7
|
|
STA VRXM7
|
|
LDA #13
|
|
STA VR+3
|
|
LDA #2
|
|
STA VR+4
|
|
LDA #1
|
|
STA VR+5
|
|
JSR BLOWUP
|
|
*
|
|
LDY #2
|
|
JSR SETMODE
|
|
*
|
|
DRAWVIEWR LDA #<VR
|
|
LDX #>VR
|
|
JMP FRAMER
|
|
*
|
|
SWITCHCOLBW LDA COLBW
|
|
EOR #$80
|
|
STA COLBW
|
|
LDY #6
|
|
STY MCOLOR
|
|
JSR SETCOLOR
|
|
DOCMDOUT JMP MAGNIFY
|
|
*
|
|
GRIDTOGL LDA GRIDON
|
|
EOR #$80
|
|
STA GRIDON
|
|
BMI GRIDTGL2
|
|
*
|
|
LDA #$7F
|
|
STA GMOD1
|
|
STA GMOD2
|
|
STA GMOD3
|
|
STA GMOD4
|
|
LDA #$2A
|
|
STA GMOD5
|
|
LDA #$AA
|
|
STA GMOD6
|
|
LDA #$55
|
|
STA GM7
|
|
LDA #$D5
|
|
STA GMOD8
|
|
BNE DOCMDOUT
|
|
*
|
|
GRIDTGL2 LDA #$3F
|
|
STA GMOD1
|
|
STA GMOD3
|
|
STA GMOD4
|
|
LDA #$77
|
|
STA GMOD2
|
|
LDA #$0A
|
|
STA GMOD5
|
|
LDA #$8A
|
|
STA GMOD6
|
|
LDA #$15
|
|
STA GM7
|
|
LDA #$95
|
|
STA GMOD8
|
|
BNE DOCMDOUT
|
|
*
|
|
INSQR LDA #<MAG
|
|
LDX #>MAG
|
|
JSR CINR
|
|
PHP
|
|
LDY CY
|
|
LDA D7-71,Y
|
|
CLC
|
|
ADC VRY
|
|
TAY
|
|
LDA CXD7
|
|
SEC
|
|
SBC #23
|
|
CLC
|
|
ADC VRXM7
|
|
LDX VRXD7
|
|
INSQR2 CMP #7
|
|
BCC INSQR3
|
|
SBC #7
|
|
INX
|
|
BCS INSQR2
|
|
INSQR3 PLP
|
|
RTS
|
|
*
|
|
SLIDEMAG LDA #0
|
|
STA XDIR
|
|
STA YDIR
|
|
*
|
|
LDA #<MBAR1
|
|
LDX #>MBAR1
|
|
JSR CINR
|
|
BCC SLIDEM2
|
|
LDY #$FE
|
|
STY YDIR
|
|
BNE SLIDEM3
|
|
*
|
|
SLIDEM2 LDA #<MBAR4
|
|
LDX #>MBAR4
|
|
JSR CINR
|
|
BCC SLIDEM3
|
|
LDY #2
|
|
STY YDIR
|
|
*
|
|
SLIDEM3 LDA #<MBAR2
|
|
LDX #>MBAR2
|
|
JSR CINR
|
|
BCC SLIDEM4
|
|
LDX #$FE
|
|
STX XDIR
|
|
BNE SLIDEM5
|
|
*
|
|
SLIDEM4 LDA #<MBAR3
|
|
LDX #>MBAR3
|
|
JSR CINR
|
|
BCC SLIDEM5
|
|
LDX #2
|
|
STX XDIR
|
|
*
|
|
SLIDEM5 JSR XDRAWC
|
|
JSR SLIDEVIEWR
|
|
JSR XDRAWC
|
|
RTS
|
|
*
|
|
SLIDEVIEWR JSR DRAWVIEWR
|
|
*
|
|
CLC
|
|
LDX VRXD7
|
|
LDA XDIR
|
|
BMI SLIDEVWR2
|
|
ADC VRXM7
|
|
CMP #7
|
|
BCC *+5
|
|
SBC #7
|
|
INX
|
|
CPX #37
|
|
BCC SLIDEVWR3
|
|
BNE SLIDEVWR4
|
|
CMP #6
|
|
BCC SLIDEVWR3
|
|
BCS SLIDEVWR4
|
|
*
|
|
SLIDEVWR2 ADC VRXM7
|
|
BPL *+5
|
|
ADC #7
|
|
DEX
|
|
BMI SLIDEVWR4
|
|
*
|
|
SLIDEVWR3 STX VRXD7
|
|
STA VRXM7
|
|
*
|
|
SLIDEVWR4 CLC
|
|
LDA YDIR
|
|
BMI SLIDEVWR5
|
|
ADC VRY
|
|
CMP #179
|
|
BCS SLIDEVWR7
|
|
BCC SLIDEVWR6
|
|
SLIDEVWR5 ADC VRY
|
|
BCC SLIDEVWR7
|
|
SLIDEVWR6 STA VRY
|
|
*
|
|
SLIDEVWR7 JSR BLOWUP
|
|
JSR DRAWVIEWR
|
|
*
|
|
LDA #50
|
|
JSR $FCA8
|
|
JSR GETB
|
|
BPL *+5
|
|
JMP SLIDEVIEWR
|
|
RTS
|
|
*
|
|
DRAG JSR XDRAWC
|
|
DRAG2 JSR DRAWVIEWR
|
|
*
|
|
JSR DOCX
|
|
STX CXD7
|
|
STA CXM7
|
|
JSR DOCY
|
|
STA CY
|
|
*
|
|
CMP #178
|
|
BCC *+4
|
|
LDA #178
|
|
STA VRY
|
|
*
|
|
LDX CXD7
|
|
TXA
|
|
LSR
|
|
LDA CXM7
|
|
BCS DRAG3
|
|
AND #$FE
|
|
BCC DRAG4
|
|
DRAG3 ORA #$01
|
|
CMP #7
|
|
BCC *+5
|
|
LDA #0
|
|
INX
|
|
*
|
|
DRAG4 CPX #37
|
|
BCC DRAG6
|
|
BNE DRAG5
|
|
CMP #5
|
|
BCC DRAG6
|
|
DRAG5 LDX #37
|
|
LDA #5
|
|
*
|
|
DRAG6 STX VRXD7
|
|
STA VRXM7
|
|
*
|
|
JSR BLOWUP
|
|
JSR DRAWVIEWR
|
|
*
|
|
LDA #80
|
|
JSR $FCA8
|
|
JSR GETB
|
|
BMI DRAG2
|
|
JSR XDRAWC
|
|
RTS
|
|
*
|
|
MAGNIFY JSR DRAWVIEWR
|
|
JSR BLOWUP
|
|
JMP DRAWVIEWR
|
|
*
|
|
BLOWUP LDA #71
|
|
STA VERTB
|
|
LDA VRY
|
|
STA VERTA
|
|
LDA VRXD7
|
|
STA D7A
|
|
LDA VRXM7
|
|
STA M7A
|
|
*
|
|
BLOWUP2 JSR DOROW
|
|
INC VERTA
|
|
LDA VERTB
|
|
CLC
|
|
ADC #7
|
|
STA VERTB
|
|
CMP #169
|
|
BCC BLOWUP2
|
|
RTS
|
|
*
|
|
DOROW LDY VERTA
|
|
LDA LO,Y
|
|
STA B1
|
|
LDA HI,Y
|
|
STA B1+1
|
|
*
|
|
LDY VERTB
|
|
LDX #0
|
|
BIT COLBW
|
|
BPL DOROWCLR
|
|
*
|
|
DOROWBW LDA LO,Y
|
|
STA UNWND1,X
|
|
LDA HI,Y
|
|
STA UNWND1+1,X
|
|
INY
|
|
INX
|
|
INX
|
|
INX
|
|
CPX #18
|
|
BCC DOROWBW
|
|
*
|
|
JSR INITROW
|
|
LDX #16
|
|
STX DRCNT
|
|
LDX #23
|
|
*
|
|
DODOTBW PHP
|
|
LSR
|
|
BNE DODOTBW2
|
|
INY
|
|
LDA (B1),Y
|
|
STA ZONE
|
|
ORA #$80
|
|
LSR
|
|
*
|
|
DODOTBW2 BCC DODOTBW5
|
|
BIT ZONE
|
|
BMI DODOTBW3
|
|
*
|
|
PLP
|
|
PHA
|
|
SEC
|
|
GMOD1 EQU *+1
|
|
LDA #$7F
|
|
BNE ZAPBW
|
|
*
|
|
DODOTBW3 PLP
|
|
PHA
|
|
BCC DODOTBW4
|
|
*
|
|
GMOD2 EQU *+1
|
|
LDA #$7F
|
|
BNE ZAPBW
|
|
*
|
|
DODOTBW4 SEC
|
|
LDA #$70
|
|
BNE ZAPBW
|
|
*
|
|
DODOTBW5 BIT ZONE
|
|
BMI DODOTBW6
|
|
*
|
|
PLP
|
|
PHA
|
|
CLC
|
|
LDA #$00
|
|
BCC ZAPBW
|
|
*
|
|
DODOTBW6 PLP
|
|
PHA
|
|
BCC DODOTBW7
|
|
*
|
|
CLC
|
|
LDA #$0F
|
|
BNE ZAPBW
|
|
*
|
|
DODOTBW7 LDA #$00
|
|
*
|
|
UNWND1 EQU *+1
|
|
ZAPBW STA $FFFF,X
|
|
STA $FFFF,X
|
|
STA $FFFF,X
|
|
STA $FFFF,X
|
|
STA $FFFF,X
|
|
STA $FFFF,X
|
|
INX
|
|
PLA
|
|
*
|
|
DEC DRCNT
|
|
BNE DODOTBW
|
|
RTS
|
|
*
|
|
DOROWCLR LDA LO,Y
|
|
STA UNWND2A,X
|
|
STA UNWND2B,X
|
|
LDA HI,Y
|
|
STA UNWND2A+1,X
|
|
STA UNWND2B+1,X
|
|
INY
|
|
INX
|
|
INX
|
|
INX
|
|
CPX #18
|
|
BCC DOROWCLR
|
|
*
|
|
JSR INITROW
|
|
LDX #8
|
|
STX DRCNT
|
|
LDX #23
|
|
*
|
|
DODOTCLR PHP
|
|
LSR
|
|
BNE DODOTCLR2
|
|
INY
|
|
LDA (B1),Y
|
|
STA ZONE
|
|
STA NEXTZONE
|
|
ORA #$80
|
|
LSR
|
|
*
|
|
DODOTCLR2 PHP
|
|
LSR
|
|
BNE DODOTCLR3
|
|
INY
|
|
LDA (B1),Y
|
|
STA NEXTZONE
|
|
ORA #$80
|
|
LSR
|
|
*
|
|
DODOTCLR3 BCC DODOTCLR6
|
|
PLP
|
|
BCC DODOTCLR4
|
|
*
|
|
PLP
|
|
PHA
|
|
SEC
|
|
GMOD3 EQU *+1
|
|
LDA #$7F
|
|
STA BYTE2
|
|
LDA #$7F
|
|
BNE ZAPCLR
|
|
*
|
|
DODOTCLR4 PLP
|
|
PHA
|
|
LSR
|
|
BNE *+7
|
|
INY
|
|
LDA (B1),Y
|
|
LSR
|
|
DEY
|
|
BCC DODOTCLR5
|
|
*
|
|
SEC
|
|
GMOD4 EQU *+1
|
|
LDA #$7F
|
|
STA BYTE2
|
|
LDA #$00
|
|
BCS ZAPCLR
|
|
*
|
|
DODOTCLR5 SEC
|
|
BIT NEXTZONE
|
|
BMI *+10
|
|
GMOD5 EQU *+1
|
|
LDA #$2A
|
|
STA BYTE2
|
|
LDA #$55
|
|
BNE ZAPCLR
|
|
GMOD6 EQU *+1
|
|
LDA #$AA
|
|
STA BYTE2
|
|
LDA #$D5
|
|
BNE ZAPCLR
|
|
*
|
|
DODOTCLR6 PLP
|
|
BCC DODOTCLR8
|
|
PLP
|
|
PHA
|
|
BCC DODOTCLR7
|
|
*
|
|
CLC
|
|
LDA #$00
|
|
STA BYTE2
|
|
LDA #$7F
|
|
BNE ZAPCLR
|
|
*
|
|
DODOTCLR7 CLC
|
|
BIT ZONE
|
|
BMI *+10
|
|
GM7 EQU *+1
|
|
LDA #$55
|
|
STA BYTE2
|
|
LDA #$2A
|
|
BNE ZAPCLR
|
|
GMOD8 EQU *+1
|
|
LDA #$D5
|
|
STA BYTE2
|
|
LDA #$AA
|
|
BNE ZAPCLR
|
|
*
|
|
DODOTCLR8 PLP
|
|
PHA
|
|
CLC
|
|
LDA #$00
|
|
STA BYTE2
|
|
*
|
|
UNWND2A EQU *+1
|
|
ZAPCLR STA $FFFF,X
|
|
STA $FFFF,X
|
|
STA $FFFF,X
|
|
STA $FFFF,X
|
|
STA $FFFF,X
|
|
STA $FFFF,X
|
|
INX
|
|
LDA BYTE2
|
|
UNWND2B EQU *+1
|
|
STA $FFFF,X
|
|
STA $FFFF,X
|
|
STA $FFFF,X
|
|
STA $FFFF,X
|
|
STA $FFFF,X
|
|
STA $FFFF,X
|
|
*
|
|
LDA NEXTZONE
|
|
STA ZONE
|
|
*
|
|
PLA
|
|
INX
|
|
DEC DRCNT
|
|
BEQ *+5
|
|
JMP DODOTCLR
|
|
RTS
|
|
*
|
|
INITROW LDY D7A
|
|
LDX M7A
|
|
BNE INITROW2
|
|
CLC
|
|
DEY
|
|
BMI INITROW2
|
|
LDA (B1),Y
|
|
ROL
|
|
ROL
|
|
INY
|
|
LDA (B1),Y
|
|
STA ZONE
|
|
STA NEXTZONE
|
|
ORA #$80
|
|
BNE INITROW4
|
|
*
|
|
INITROW2 LDA (B1),Y
|
|
STA ZONE
|
|
STA NEXTZONE
|
|
ORA #$80
|
|
INITROW3 LSR
|
|
DEX
|
|
BNE INITROW3
|
|
INITROW4 RTS
|
|
*
|
|
MAGB HEX 4016006F1106
|
|
*
|
|
MAG HEX 471700610F06
|
|
*
|
|
MBAR1 HEX 401600061106
|
|
*
|
|
MBAR2 HEX 4016006F0006
|
|
*
|
|
MBAR3 HEX 4027006F0006
|
|
*
|
|
MBAR4 HEX A91600061106
|
|
*
|
|
WORLDSTART JSR DRAWQUIT
|
|
*
|
|
LDY #0
|
|
WSTRT2 STY YTEMP
|
|
LDA SLIDESLO,Y
|
|
LDX SLIDESHI,Y
|
|
JSR XOFFDRAW
|
|
LDY YTEMP
|
|
JSR INITSLIDE
|
|
INY
|
|
CPY #4
|
|
BNE WSTRT2
|
|
*
|
|
LDA #0
|
|
LDX #24
|
|
LDY #6
|
|
JSR CHARTO
|
|
LDA #<HEAD1
|
|
LDX #>HEAD1
|
|
JSR PRINT
|
|
LDA #2
|
|
LDX #33
|
|
LDY #6
|
|
JSR CHARTO
|
|
LDA #<HEAD2
|
|
LDX #>HEAD2
|
|
JSR PRINT
|
|
LDA #2
|
|
LDX #25
|
|
LDY #70
|
|
JSR CHARTO
|
|
LDA #<HEAD3
|
|
LDX #>HEAD3
|
|
JSR PRINT
|
|
LDA #0
|
|
LDX #31
|
|
LDY #70
|
|
JSR CHARTO
|
|
LDA #<HEAD4
|
|
LDX #>HEAD4
|
|
JSR PRINT
|
|
*
|
|
LDA #<HAND
|
|
LDX #>HAND
|
|
JSR INITC
|
|
*
|
|
WMAIN JSR JSCTRL
|
|
JSR UPDATEC
|
|
JSR GETB
|
|
BPL WMAIN
|
|
*
|
|
WMAIN2 LDY #0
|
|
WMAIN3 LDA SLBLO,Y
|
|
LDX SLBHI,Y
|
|
STY YTEMP
|
|
JSR CINR
|
|
LDY YTEMP
|
|
BCC WMAIN4
|
|
JSR DOSLIDE
|
|
JMP WMAIN
|
|
WMAIN4 INY
|
|
CPY #4
|
|
BNE WMAIN3
|
|
*
|
|
LDA #<MCMDB
|
|
LDX #>MCMDB
|
|
JSR CINR
|
|
BCC WMAIN
|
|
LDA #0
|
|
STA LASTITEM+1
|
|
JMP WDOCMD
|
|
*
|
|
WDOCMD LDA #<WCMDMENU
|
|
LDX #>WCMDMENU
|
|
JSR DOMENU
|
|
JMP WMAIN
|
|
*
|
|
WCMDMENU DA MQUITB
|
|
DA WQUIT
|
|
HEX 00
|
|
*
|
|
DOSLIDE LDA SLIDESLO,Y
|
|
STA SLB
|
|
LDA SLIDESHI,Y
|
|
STA SLB+1
|
|
DOSL2 LDA WSET,Y
|
|
STA SLOLD
|
|
LDA CY
|
|
SEC
|
|
LDY #2
|
|
SBC (SLB),Y
|
|
BCS DOSL3
|
|
LDY #0
|
|
BEQ DOSL5
|
|
*
|
|
DOSL3 LDY #7
|
|
DOSL4 CMP SLDXDY,Y
|
|
BCS DOSL5
|
|
DEY
|
|
BNE DOSL4
|
|
DOSL5 STY SLNEW
|
|
TYA
|
|
LDY YTEMP
|
|
STA WSET,Y
|
|
JSR MOVESLIDE
|
|
JSR UPDATEC
|
|
LDY YTEMP
|
|
JSR GETB
|
|
BMI DOSL2
|
|
RTS
|
|
*
|
|
INITSLIDE LDA SLIDESLO,Y
|
|
STA SLB
|
|
LDA SLIDESHI,Y
|
|
STA SLB+1
|
|
LDA #0
|
|
STA SLOLD
|
|
LDA WSET,Y
|
|
STA SLNEW
|
|
*
|
|
MOVESLIDE LDY #2
|
|
LDA (SLB),Y
|
|
STA TEMP
|
|
INY
|
|
LDA (SLB),Y
|
|
STA SLDX+3
|
|
*
|
|
MOVESL2 LDY SLOLD
|
|
CPY SLNEW
|
|
BEQ MOVESL5
|
|
BCS MOVESL3
|
|
*
|
|
INC SLOLD
|
|
LDA SLDXDY,Y
|
|
BNE MOVESL4
|
|
*
|
|
MOVESL3 DEC SLOLD
|
|
LDA SLDXDY-1,Y
|
|
MOVESL4 CLC
|
|
ADC TEMP
|
|
STA SLDX+2
|
|
LDA #<SLDX
|
|
LDX #>SLDX
|
|
JSR XOFFDRAW
|
|
JMP MOVESL2
|
|
MOVESL5 LDY YTEMP
|
|
RTS
|
|
*
|
|
SLDXDY HEX 0205080B0E111417
|
|
SLDX DA *+7
|
|
HEX 0000000602
|
|
HEX 300330033003300330033003
|
|
SLBLO DA <SL1B
|
|
DA <SL2B
|
|
DA <SL3B
|
|
DA <SL4B
|
|
SLBHI DA >SL1B
|
|
DA >SL2B
|
|
DA >SL3B
|
|
DA >SL4B
|
|
SL1B HEX 101A001C0106
|
|
SL2B HEX 1022001C0106
|
|
SL3B HEX 501A001C0106
|
|
SL4B HEX 5022001C0106
|
|
*
|
|
SLIDESLO DA <SLIDE1
|
|
DA <SLIDE2
|
|
DA <SLIDE3
|
|
DA <SLIDE4
|
|
SLIDESHI DA >SLIDE1
|
|
DA >SLIDE2
|
|
DA >SLIDE3
|
|
DA >SLIDE4
|
|
SLIDE1 DA SLIDEBITS
|
|
HEX 101A001C02
|
|
SLIDE2 DA SLIDEBITS
|
|
HEX 1022001C02
|
|
SLIDE3 DA SLIDEBITS
|
|
HEX 501A001C02
|
|
SLIDE4 DA SLIDEBITS
|
|
HEX 5022001C02
|
|
SLIDEBITS HEX 7F3F03307333773B733343304738
|
|
HEX 4330433047384330433047384330
|
|
HEX 4330473843304330473843304330
|
|
HEX 4738433043304738433003307F3F
|
|
*
|
|
HEAD1 HEX 101B0A1F121DA2
|
|
HEAD2 HEX 1C190E0E8D
|
|
HEAD3 HEX 14120C94
|
|
HEAD4 HEX 0E150A1C1D120C121DA2
|