434 lines
7.0 KiB
Plaintext
434 lines
7.0 KiB
Plaintext
;
|
|
; S:GREDIT3
|
|
;
|
|
; Print Shop Companion
|
|
;
|
|
; Tile Magic
|
|
;
|
|
; by Roland Gustafsson
|
|
; Copyright 1985
|
|
;
|
|
TZ EPZ $80
|
|
;
|
|
TMXSTART EPZ TZ
|
|
TMYSTART EPZ TZ+1
|
|
TMXPOS EPZ TZ+2
|
|
TMYPOS EPZ TZ+3
|
|
TMXQTR EPZ TZ+4
|
|
TMYQTR EPZ TZ+5
|
|
TMCOLOR EPZ TZ+6
|
|
TMCOUNT EPZ TZ+7
|
|
TMBCOUNT EPZ TZ+8
|
|
;
|
|
TILEXMAX = 88
|
|
TILEYMAX = 52
|
|
;
|
|
;
|
|
TILEMAGC LDA #ESC
|
|
STA TILEMOD
|
|
JSR SETMAX
|
|
;
|
|
JSR CLSCREEN
|
|
JSR PRINT
|
|
BYT RTOSWITE,0,0,25,16
|
|
BYT PRCNTR,PRINVR
|
|
.DA #PRLOC,88,#4
|
|
.DA #PRSTR,TXTTM
|
|
BYT CR,0
|
|
JSR DOMAGIC
|
|
;
|
|
ESC4TILE LDA #0
|
|
JSR SAVESPEC
|
|
BCC >0
|
|
JMP TILEMAGC
|
|
;
|
|
^0 JSR JMPVECTS
|
|
ADR TILESAVE
|
|
ADR GREDIT2
|
|
ADR MAINMENU
|
|
;-----------
|
|
;
|
|
; Save the Tile
|
|
;
|
|
TILESAVE JSR SETTYPE
|
|
BYT 'GRAPHIC',0
|
|
TXTTM BYT 'TILE MAGIC',0
|
|
BYT 0
|
|
BYT 4
|
|
ADR EDITBUFF
|
|
ADR $240
|
|
JSR SAVEFILE
|
|
JMP ESC4TILE
|
|
;-----------
|
|
;
|
|
; Helpful instructions for our
|
|
; favorite person, the consumer.
|
|
;
|
|
DOMAGIC JSR BLAKRITE
|
|
JSR PRINT
|
|
BYT RTOSWITE,26,0,14,2
|
|
BYT PRBIG,PRCNTR
|
|
BYT PRSPC,16
|
|
.DA #PRLOC,231,#16
|
|
BYT 'TILE',CR
|
|
BYT 'MAGIC',CR,0
|
|
;
|
|
JSR PRINT
|
|
BYT PRCNTR
|
|
.DA #PRLOC,231,#83
|
|
.DA #PRSTR,TXTRET,#CR
|
|
BYT 'TO CHANGE',CR
|
|
BYT 'PATTERN',CR,CR,CR
|
|
BYT '<ESC>',CR
|
|
BYT 'TO "FREEZE"',CR
|
|
BYT 'TILE',CR
|
|
BRK
|
|
;
|
|
; Do the fireworks
|
|
;
|
|
; Same as Kaleidoscope 1 from
|
|
; the original Print Shop.
|
|
;
|
|
JSR BUFFSAVE
|
|
NEXTTILE JSR SETTRP
|
|
JSR CLRBUFF
|
|
JSR SHOWGR
|
|
;
|
|
LTRP LDA #$40
|
|
STA TMXSTART
|
|
LDA #0
|
|
STA TMYSTART
|
|
STA TMCOLOR
|
|
LDA #12
|
|
STA STRTFLAG
|
|
LTRP2 LDA $C05F
|
|
ADC $C059
|
|
ADC $C05D
|
|
ADC TMXSTART
|
|
STA TMXSTART
|
|
STA TMXPOS
|
|
LDA TMYPOS
|
|
ROL
|
|
EOR TMXPOS
|
|
STA TMYPOS
|
|
STA TMYSTART
|
|
DEC TMCOLOR
|
|
LDX #26
|
|
LDA STRTFLAG
|
|
BEQ LTRP2A
|
|
LDX #2
|
|
DEC STRTFLAG
|
|
LTRP2A STX TMCOUNT
|
|
LTRP2B INC TMCOLOR
|
|
LDA TMCOLOR
|
|
AND #3
|
|
CMP #3
|
|
BEQ LTRP2B
|
|
CMP #0
|
|
BNE LTRP2C
|
|
LDA STRTFLAG
|
|
BNE LTRP2B
|
|
LTRP2C DEC TMCOUNT
|
|
BEQ LTRP2
|
|
JSR SETC
|
|
LTRP3 JSR PUT4
|
|
JSR BTNCHK
|
|
BPL LTRP8
|
|
CMP #$0D
|
|
BEQ NEXTTILE
|
|
RTS
|
|
;
|
|
LTRP8 LDA TMYPOS
|
|
;
|
|
YTRIP DFS 6,0
|
|
;
|
|
STA TMYQTR
|
|
LDA TMXPOS
|
|
SEC
|
|
SBC TMYQTR
|
|
STA TMXPOS
|
|
;
|
|
XTRIP DFS 6,0
|
|
;
|
|
CLC
|
|
ADC TMYPOS
|
|
STA TMYPOS
|
|
CMP TMYSTART
|
|
BNE LTRP3
|
|
LDA TMXPOS
|
|
CMP TMXSTART
|
|
BNE LTRP3
|
|
BEQ LTRP2B
|
|
;
|
|
PUT4 LDA TMXPOS
|
|
LSR
|
|
LSR
|
|
TAX
|
|
LDA RANGE44,X
|
|
STA TMXQTR
|
|
;
|
|
LDA TMYPOS
|
|
LSR
|
|
LSR
|
|
LSR
|
|
TAX
|
|
LDA RANGE26,X
|
|
STA TMYQTR
|
|
;
|
|
LDA #TILEXMAX/2
|
|
CLC
|
|
ADC TMXQTR
|
|
TAX
|
|
LDA #TILEYMAX/2
|
|
CLC
|
|
ADC TMYQTR
|
|
TAY
|
|
JSR XYPLOT
|
|
LDA #TILEXMAX/2
|
|
SEC
|
|
SBC TMXQTR
|
|
TAX
|
|
JSR XYPLOT
|
|
LDA #TILEYMAX/2
|
|
SEC
|
|
SBC TMYQTR
|
|
TAY
|
|
JSR XYPLOT
|
|
LDA #TILEXMAX/2
|
|
CLC
|
|
ADC TMXQTR
|
|
TAX
|
|
;
|
|
XYPLOT CPY #TILEYMAX
|
|
BGE XYDONE
|
|
CPX #TILEXMAX
|
|
BGE XYDONE
|
|
;
|
|
STX XCOOR
|
|
STY YCOOR
|
|
TMXYMOD JSR $FFFF
|
|
LDX XCOOR
|
|
LDY YCOOR
|
|
XYDONE RTS
|
|
;-----------
|
|
;
|
|
; Check for CR
|
|
;
|
|
BTNCHK DEC TMBCOUNT
|
|
LDA TMBCOUNT
|
|
AND #$7F
|
|
BNE >0
|
|
JMP POLEBTN
|
|
^0 LDA #0
|
|
RTS
|
|
;
|
|
; Set color
|
|
;
|
|
SETC LDX #SETBIT
|
|
LDY /SETBIT
|
|
LDA TMCOLOR
|
|
AND #2
|
|
BNE >0
|
|
LDX #CLRBIT
|
|
LDY /CLRBIT
|
|
;
|
|
^0 STX TMXYMOD+1
|
|
STY TMXYMOD+2
|
|
RTS
|
|
;
|
|
; Set trip format
|
|
;
|
|
SETTRP LDA TRIPN
|
|
ASL
|
|
ADC TRIPN
|
|
ASL
|
|
TAX
|
|
LDY #0
|
|
^0 LDA XTRPS,X
|
|
STA XTRIP,Y
|
|
LDA YTRPS,X
|
|
STA YTRIP,Y
|
|
INX
|
|
INY
|
|
CPY #6
|
|
BLT <0
|
|
LDX TRIPN
|
|
INX
|
|
CPX #11
|
|
BNE >1
|
|
LDX #0
|
|
^1 STX TRIPN
|
|
RTS
|
|
;X1
|
|
XTRPS LSR
|
|
LSR
|
|
LSR
|
|
NOP
|
|
NOP
|
|
NOP
|
|
;X2
|
|
LSR
|
|
LSR
|
|
NOP
|
|
NOP
|
|
NOP
|
|
NOP
|
|
;X3
|
|
LSR
|
|
NOP
|
|
NOP
|
|
NOP
|
|
NOP
|
|
NOP
|
|
;X4
|
|
LSR
|
|
NOP
|
|
NOP
|
|
NOP
|
|
NOP
|
|
NOP
|
|
;X5
|
|
NOP
|
|
NOP
|
|
NOP
|
|
NOP
|
|
NOP
|
|
NOP
|
|
;X6
|
|
LSR
|
|
LSR
|
|
LSR
|
|
CLC
|
|
ADC TMXPOS
|
|
;X7
|
|
LSR
|
|
LSR
|
|
NOP
|
|
CLC
|
|
ADC TMXPOS
|
|
;X8
|
|
LSR
|
|
NOP
|
|
NOP
|
|
CLC
|
|
ADC TMXPOS
|
|
;X9
|
|
LSR
|
|
LSR
|
|
LSR
|
|
SEC
|
|
SBC TMXPOS
|
|
;X10
|
|
LSR
|
|
LSR
|
|
NOP
|
|
SEC
|
|
SBC TMXPOS
|
|
;X11
|
|
LSR
|
|
NOP
|
|
NOP
|
|
SEC
|
|
SBC TMXPOS
|
|
;Y1
|
|
YTRPS LSR
|
|
LSR
|
|
LSR
|
|
NOP
|
|
NOP
|
|
NOP
|
|
;Y2
|
|
LSR
|
|
LSR
|
|
NOP
|
|
NOP
|
|
NOP
|
|
NOP
|
|
;Y3
|
|
LSR
|
|
NOP
|
|
NOP
|
|
NOP
|
|
NOP
|
|
NOP
|
|
;Y4
|
|
NOP
|
|
NOP
|
|
NOP
|
|
NOP
|
|
NOP
|
|
NOP
|
|
;Y5
|
|
LSR
|
|
NOP
|
|
NOP
|
|
NOP
|
|
NOP
|
|
NOP
|
|
;Y6
|
|
LSR
|
|
LSR
|
|
LSR
|
|
CLC
|
|
ADC TMYPOS
|
|
;Y7
|
|
LSR
|
|
LSR
|
|
NOP
|
|
CLC
|
|
ADC TMYPOS
|
|
;Y8
|
|
LSR
|
|
NOP
|
|
NOP
|
|
CLC
|
|
ADC TMYPOS
|
|
;Y9
|
|
LSR
|
|
LSR
|
|
LSR
|
|
SEC
|
|
SBC TMYPOS
|
|
;Y10
|
|
LSR
|
|
LSR
|
|
NOP
|
|
SEC
|
|
SBC TMYPOS
|
|
;Y11
|
|
LSR
|
|
NOP
|
|
NOP
|
|
SEC
|
|
SBC TMYPOS
|
|
;
|
|
;----------
|
|
;
|
|
TRIPN HEX 03
|
|
STRTFLAG HEX 00
|
|
;
|
|
; Lookup tables for getting
|
|
; range
|
|
;
|
|
; X= 0-44
|
|
;
|
|
RANGE44 HEX 0001010203030405
|
|
HEX 0606070808090A0A
|
|
HEX 0B0C0C0D0E0F0F10
|
|
HEX 1111121313141515
|
|
HEX 16171718191A1A1B
|
|
HEX 1C1C1D1E1E1F2020
|
|
HEX 2122232324252526
|
|
HEX 27272829292A2B2C
|
|
;
|
|
; X= 0-26
|
|
;
|
|
RANGE26 HEX 0001020303040506
|
|
HEX 070808090A0B0C0C
|
|
HEX 0D0E0F1011111213
|
|
HEX 141515161718191A
|
|
;
|
|
;
|
|
;
|
|
ICL "S:GREDIT4"
|