818 lines
16 KiB
Plaintext
818 lines
16 KiB
Plaintext
TTL "S:GREDIT"
|
|
; S:GREDIT1
|
|
NOG
|
|
;
|
|
ORG = $4000
|
|
OBJ = $800
|
|
;
|
|
; 04/11/85
|
|
; 09/11/85 last mod
|
|
; (removed ESC)
|
|
;
|
|
; Graphic Editor main control
|
|
;
|
|
; The Print Shop Companion Disk
|
|
;
|
|
; by Roland Gustafsson
|
|
;
|
|
XSCRNMAX = 192
|
|
YSCRNMAX = 140
|
|
;
|
|
PICTBUFF = $6000
|
|
;-----------
|
|
ORG ORG
|
|
OBJ OBJ
|
|
;-----------
|
|
START JMP GREDIT
|
|
JMP TILEMAGC
|
|
JMP CRMAKER
|
|
;
|
|
ASC "COPYRIGHT 1985 "
|
|
ASC "ROLAND GUSTAFSSON"
|
|
;
|
|
; Graphic Editor main entry point
|
|
;
|
|
GREDIT JSR SETMAX
|
|
JSR BUFFSAVE
|
|
;
|
|
; Graphic Editor entry point from
|
|
; Tile Magic and Creature Maker
|
|
;
|
|
GREDIT2:
|
|
;
|
|
; Draw Graphic Editor main screen
|
|
;
|
|
MAINSCRN JSR CLSCREEN
|
|
JSR PRINT
|
|
BYT RTOSWITE,0,0,25,16
|
|
BYT PRCNTR,PRINVR
|
|
.DA #PRLOC,88,#4
|
|
.DA #PRSTR,TXTGEDIT,#CR
|
|
BRK
|
|
;
|
|
JSR SHOWGR
|
|
JSR SHOWRITE
|
|
;
|
|
; Main loop
|
|
;
|
|
^0 JSR EDITLOOP
|
|
JSR >1
|
|
BCC <0
|
|
JMP MAINSCRN
|
|
;
|
|
^1 JSR PARSE
|
|
.DA #'L',CMDLINES
|
|
.DA #'R',CMDRAYS
|
|
.DA #'B',CMDBOX
|
|
.DA #'O',CMDOVAL
|
|
.DA #'T',CMDTEXT
|
|
;
|
|
.DA #'S'-$40,CMDSAVE
|
|
.DA #'G'-$40,CMDGET
|
|
.DA #'P'-$40,CMDPRINT
|
|
.DA #'D'-$40,CMDDEVIC
|
|
.DA #'C'-$40,CMDCLEAR
|
|
.DA #'Q'-$40,CMDQUIT
|
|
.DA #'T'-$40,CMDTILES
|
|
.DA #' ',CMDSPACE
|
|
TILEMOD .DA #$FF,ESC4TILE
|
|
CRMOD .DA #$FF,ESC4CR
|
|
BRK
|
|
CLC
|
|
RTS
|
|
;-----------
|
|
;
|
|
; Show graphic tiled
|
|
;
|
|
CMDTILES JSR CLSCREEN
|
|
JSR PRINT
|
|
BYT RTOSWITE,0,0,40,172
|
|
BYT PRINVR
|
|
BYT PRSPC,52
|
|
BYT PRCSPACE,0
|
|
.DA #PRLOC,8,#8
|
|
BYT '@@@',CR
|
|
BYT '@@@',CR
|
|
BYT '@@@',CR,0
|
|
JMP ANYKEY2
|
|
;-----------
|
|
;
|
|
; Save the graphic
|
|
;
|
|
CMDSAVE LDY #EDITBUFF
|
|
LDA /EDITBUFF
|
|
JSR SETADR
|
|
JSR SAVEFILE
|
|
SEC
|
|
^9 RTS
|
|
;-----------
|
|
;
|
|
; Get a graphic
|
|
;
|
|
CMDGET JSR LOADUNDO
|
|
BCS >1
|
|
JSR CHKBUFF
|
|
BEQ >0
|
|
JSR SUPERIMP
|
|
BCS CMDGET
|
|
DEY
|
|
BEQ >0
|
|
JSR CLRBUFF
|
|
^0 JSR ORBUFF
|
|
JSR BUFFSAVE
|
|
^1 LSR SCALING
|
|
SEC
|
|
RTS
|
|
;
|
|
; Ask question about superimposing:
|
|
;
|
|
SUPERIMP JSR GETTEXT
|
|
JSR PRINT
|
|
BYT PRCNTR
|
|
.DA #PRLOC,140,#60
|
|
BYT 'WOULD YOU LIKE TO SUPERIMPOSE',CR
|
|
BYT 'THE '
|
|
.DA #PRSTR,TXTGR,' THAT YOU JUST',#CR
|
|
BYT 'SELECTED OVER THE '
|
|
.DA #PRSTR,TXTGR,#CR
|
|
BYT 'ALREADY IN THE EDIT WINDOW ?',CR
|
|
BYT CR,'NO',CR,'YES',CR,0
|
|
LDY #0
|
|
JSR SELECT
|
|
BYT 17,6,99,2
|
|
ADR >0
|
|
^0 RTS
|
|
;
|
|
; Load the UNDO buffer with graphic
|
|
; that user selects from any of many
|
|
; different places! SEC=ESC pressed
|
|
;
|
|
TXTFRM BYT 'FROM ',0
|
|
LOADUNDO JSR GETTEXT
|
|
JSR PRINT
|
|
BYT PRCNTR
|
|
.DA #PRLOC,140,#52
|
|
BYT 'CHOOSE A '
|
|
.DA #PRSTR,TXTGR,':',#CR
|
|
BYT CR,CR
|
|
.DA #PRSTR,TXTFRM,'PRINT SHOP DISK',#CR
|
|
.DA #PRSTR,TXTFRM,'COMPANION DISK',#CR
|
|
.DA #PRSTR,TXTFRM,'OTHER DISK',#CR
|
|
.DA #PRSTR,TXTFRM,#PRSTR,TXTSCRN,' MEMORY',#CR
|
|
.DA #PRSTR,TXTFRM,#PRSTR,TXTSCRN,' FILE',#CR
|
|
BRK
|
|
^0 LDY #00
|
|
LOADFROM = *-1
|
|
JSR SELECT
|
|
BYT 6,28,75,5
|
|
ADR RTS
|
|
BCS >2
|
|
;
|
|
STY LOADFROM
|
|
JSR >1
|
|
BCC >2
|
|
JMP LOADUNDO
|
|
;
|
|
^1 JSR JMPVECTS
|
|
ADR >3
|
|
ADR GETCDISK
|
|
ADR GETODISK
|
|
ADR FRAMGRAB
|
|
ADR PICTLOAD
|
|
;
|
|
^2 RTS
|
|
;---
|
|
;
|
|
; Get graphic from PS disk
|
|
;
|
|
^3 LDA #00
|
|
LDX #UNDOBUFF
|
|
LDY /UNDOBUFF
|
|
JSR GETPDISK
|
|
BCS >4
|
|
STA <3+1
|
|
LDA #$FF
|
|
STA CRMOD
|
|
^4 RTS
|
|
;---
|
|
;
|
|
; Get graphic from Companion Disk
|
|
; SIDE 2 !!!
|
|
;
|
|
GETCDISK LDA #2
|
|
CLC
|
|
HEX 24
|
|
;
|
|
; Get graphic from other disk
|
|
;
|
|
GETODISK SEC
|
|
PHP
|
|
LDY #UNDOBUFF
|
|
LDA /UNDOBUFF
|
|
JSR SETADR
|
|
PLP
|
|
JMP GETFILE
|
|
;
|
|
; Load a new hires picture file
|
|
;
|
|
PICTLOAD JSR SWAPD000
|
|
;
|
|
JSR SETTYPE
|
|
TXTSCRN BYT 'SCREEN',0
|
|
BYT 'SCREEN',0
|
|
BYT 0
|
|
BYT 34
|
|
^0 ADR PICTBUFF
|
|
ADR $1FF8
|
|
;
|
|
SEC
|
|
JSR GETFILE
|
|
PHP
|
|
JSR SWAPD000
|
|
PLP
|
|
BCS >2
|
|
JMP FRAMGRAB
|
|
;
|
|
; Swap $6000.7FFF with $D000 banks
|
|
;
|
|
SWAPD000 LDY #0
|
|
LDA /PICTBUFF
|
|
STY TMP0
|
|
STA TMP1
|
|
LDX #$03
|
|
JSR >0
|
|
LDX #$0B
|
|
;
|
|
^0 LDA $C080,X
|
|
LDA $C080,X
|
|
STY TMP2
|
|
LDA #$D0
|
|
STA TMP3
|
|
LDX #16
|
|
;
|
|
^1 LDA (TMP0),Y
|
|
PHA
|
|
LDA (TMP2),Y
|
|
STA (TMP0),Y
|
|
PLA
|
|
STA (TMP2),Y
|
|
INY
|
|
BNE <1
|
|
INC TMP1
|
|
INC TMP3
|
|
DEX
|
|
BNE <1
|
|
^2 RTS
|
|
;-----------
|
|
;
|
|
; GET text window
|
|
;
|
|
GETTEXT JSR WITEBORD
|
|
JSR PRINT
|
|
BYT PRINVR,PRRITE
|
|
.DA #PRLOC,149,#4
|
|
.DA #PRSTR,TXTGEDIT
|
|
BYT ':',CR
|
|
BYT PRBIG,PRLEFT
|
|
.DA #PRLOC,160,#1
|
|
BYT 'GET',CR,0
|
|
JMP ESCBACK
|
|
;
|
|
; Set type info with correct
|
|
; address for load/save
|
|
;
|
|
SETADR STY >0+0
|
|
STA >0+1
|
|
JSR SETTYPE
|
|
TXTGR BYT 'GRAPHIC',0
|
|
TXTGEDIT BYT 'GRAPHIC EDITOR+',0
|
|
BYT 0
|
|
BYT 4
|
|
^0 ADR UNDOBUFF
|
|
ADR $240
|
|
RTS
|
|
;-----------
|
|
;
|
|
; Print current EDITBUFF to printer
|
|
;
|
|
CMDPRINT JSR BLAKBOTM
|
|
JSR PRINT
|
|
.DA #PRLOC,140,#185
|
|
BRK
|
|
LDA #'-'
|
|
JSR CHKPRINT
|
|
BCS >0
|
|
JSR PRINT
|
|
BYT PRCNTR
|
|
.DA #PRSTR,TXTPRET
|
|
BYT ' TO PRINT '
|
|
.DA #PRSTR,TXTGR,#CR,#0
|
|
JSR GETKEY
|
|
CMP #CR
|
|
BNE >0
|
|
JSR PRINTGR
|
|
^0 JMP SHOWBOTM
|
|
;-----------
|
|
;
|
|
; Change input device
|
|
;
|
|
CMDDEVIC JSR DEVICECH
|
|
JMP SHOWBOTM
|
|
;-----------
|
|
;
|
|
; Clear buffer
|
|
;
|
|
CMDCLEAR JSR BLAKBOTM
|
|
JSR PRINT
|
|
.DA #PRLOC,140,#185
|
|
BYT PRCNTR
|
|
.DA #PRSTR,TXTRET
|
|
BYT ' TO CLEAR '
|
|
.DA #PRSTR,TXTGR
|
|
BYT ' AREA',CR,0
|
|
JSR GETKEY
|
|
CMP #CR
|
|
BNE >0
|
|
JSR BUFFSAVE
|
|
JSR SETMAX
|
|
JSR SHOWGR
|
|
^0 JMP SHOWBOTM
|
|
;-----------
|
|
;
|
|
; Quit the editor
|
|
;
|
|
CMDQUIT JSR CMDQUIT2
|
|
JSR SHOWBOTM
|
|
QUITRTS RTS
|
|
;
|
|
CMDQUIT2 JSR BLAKBOTM
|
|
JSR PRINT
|
|
.DA #PRLOC,140,#185
|
|
BYT PRCNTR
|
|
.DA #PRSTR,TXTPRET,' TO '
|
|
.DA #PRSTR,TXTGTMM,#NOCR,#0
|
|
JSR GETKEY
|
|
CMP #CR
|
|
BNE QUITRTS
|
|
JMP MAINMENU
|
|
TXTGTMM BYT 'GO TO MAIN MENU',0
|
|
TXTPRET BYT 'PRESS '
|
|
TXTRET BYT '<RETURN>',0
|
|
;-----------
|
|
;
|
|
; Text in graphic
|
|
;
|
|
CMDTEXT LDA #4
|
|
JSR SHAPHELP
|
|
JSR DRAWTEXT
|
|
JMP SHOWRITE
|
|
;-----------
|
|
;
|
|
; Shape handlers
|
|
;
|
|
CMDLINES LDA #0
|
|
HEX 2C
|
|
CMDRAYS LDA #1
|
|
HEX 2C
|
|
CMDBOX LDA #2
|
|
HEX 2C
|
|
CMDOVAL LDA #3
|
|
JSR SHAPHELP
|
|
JSR SHOWCOOR
|
|
;
|
|
LDA SHAPETYP
|
|
AND #7
|
|
STA >0+1
|
|
CLC
|
|
;
|
|
^0 LDX #00
|
|
JSR DOSHAPE
|
|
BCS >1
|
|
LDA #00
|
|
SHAPETYP = *-1
|
|
ASL
|
|
BMI <0
|
|
;
|
|
; Fix up screen when done
|
|
;
|
|
^1 JMP SHOWRITE
|
|
;-----------
|
|
;
|
|
; Print help screen
|
|
;
|
|
HY1 = 2
|
|
HY2 = 36
|
|
HY3 = 105
|
|
HY4 = 164
|
|
;
|
|
HELPTEMP BRK
|
|
;
|
|
SHAPHELP STA TMP0
|
|
ASL
|
|
ADC TMP0
|
|
ASL
|
|
TAX
|
|
LDY SHAPHLP9+0,X
|
|
LDA SHAPHLP9+1,X
|
|
STY >0+1
|
|
STA >0+2
|
|
LDA SHAPHLP9+2,X
|
|
STA SHAPETYP
|
|
;
|
|
LDY SHAPHLP9+3,X
|
|
LDA SHAPHLP9+4,X
|
|
STY >4+1
|
|
STA >4+2
|
|
;
|
|
LDA SHAPHLP9+5,X
|
|
STA HELPTEMP
|
|
;
|
|
JSR SETPLOTX
|
|
JSR BUFFSAVE
|
|
;
|
|
JSR BLAKBOTM
|
|
JSR PRINT
|
|
BYT RTOSBLAK,26,0,14,192
|
|
BYT PRBIG,PRCNTR
|
|
.DA #PRLOC,XCENT,#HY1
|
|
^0 .DA #PRSTR,$FFFF,#NOCR,#0
|
|
;
|
|
LSR HELPTEMP
|
|
BCC >1
|
|
;
|
|
LDX #26
|
|
LDY #HY2
|
|
LDA #0
|
|
JSR SHOWAROW
|
|
JSR PRINT
|
|
.DA #PRLOC,227,#HY2+3
|
|
BYT 'MOVE',CR
|
|
BYT 'CURSOR',CR
|
|
BYT 'TO',CR
|
|
BYT 'DRAW',CR
|
|
.DA #PRLOC,XCENT,#HY2+48
|
|
BYT PRCNTR
|
|
BYT PRCSPACE,1
|
|
.DA 'N ',#PRSTR,TXTNEGA,#CR
|
|
BRK
|
|
;
|
|
^1 LSR HELPTEMP
|
|
BCC >2
|
|
JSR PRINT
|
|
BYT PRCNTR
|
|
.DA #PRLOC,XCENT,#HY2+26
|
|
BYT 'USE',CR
|
|
BYT 'KEYBOARD',CR
|
|
BYT 'TO ENTER',CR,0
|
|
JMP >3
|
|
;
|
|
^2 JSR PRINT
|
|
BYT PRCNTR
|
|
.DA #PRLOC,XCENT,#HY3
|
|
BYT 'PRESS',CR
|
|
.DA #PRSTR,TXTRET,#CR
|
|
BYT 'TO PLACE',CR,0
|
|
;
|
|
^3 JSR PRINT
|
|
BYT PRCNTR
|
|
^4 .DA #PRSTR,$FFFF,#CR
|
|
BYT RTOSWITE,26,HY4-6,14,2
|
|
BYT PRVTAB,HY4
|
|
BYT 'PRESS <ESC>',CR,0
|
|
;
|
|
LSR HELPTEMP
|
|
BCC >5
|
|
JSR PRINT
|
|
BYT PRCNTR
|
|
.DA #PRSTR,TXTWD,#CR,#0
|
|
JMP >6
|
|
;
|
|
^5 JSR PRINT
|
|
BYT PRCNTR
|
|
BYT 'TO GO BACK',CR,0
|
|
;
|
|
^6 RTS
|
|
;
|
|
TXTWD BYT 'WHEN DONE',0
|
|
;
|
|
; 64 means stay in shape routine
|
|
; until ESC is pressed. 128 means
|
|
; don't re-initialize X1,Y1 each time
|
|
; the remaining number is the shape
|
|
; number used by DOSHAPE
|
|
;
|
|
SHAPHLP9 .DA TXTLINES,#0+64
|
|
.DA TXTLINE,#%101
|
|
;
|
|
.DA TXTRAYS,#0+64+128
|
|
.DA TXTLINE,#%101
|
|
;
|
|
.DA TXTBOX,#2
|
|
.DA TXTBOX,#%001
|
|
;
|
|
.DA TXTOVAL,#4
|
|
.DA TXTOVAL,#%001
|
|
;
|
|
.DA TXTTEXT,#0
|
|
.DA TXTTEXT,#%110
|
|
;
|
|
TXTLINE BYT 'LINE',0
|
|
TXTLINES BYT 'LINES',0
|
|
TXTRAYS BYT 'RAYS',0
|
|
TXTBOX BYT 'BOX',0
|
|
TXTOVAL BYT 'OVAL',0
|
|
TXTTEXT BYT 'TEXT',0
|
|
;-----------
|
|
;
|
|
; Show next page
|
|
;
|
|
CMDSPACE INC PAGENUM
|
|
LDA PAGENUM
|
|
EOR #4
|
|
BNE SHOWPAGE
|
|
STA PAGENUM
|
|
;
|
|
; Show help screen
|
|
;
|
|
SHOWPAGE JSR BLAKPAGE
|
|
JSR >0
|
|
CLC
|
|
RTS
|
|
;
|
|
^0 LDY #0
|
|
PAGENUM = *-1
|
|
JSR JMPVECTS
|
|
ADR PAGE1
|
|
ADR PAGE2
|
|
ADR PAGE3
|
|
ADR PAGE4
|
|
;
|
|
XCENT = 231
|
|
XEDGE = 182
|
|
XR1 = 13
|
|
XR2 = 24
|
|
;
|
|
PG1Y = 68
|
|
PAGE1 JSR PRINT
|
|
BYT PRCSPACE,1
|
|
BYT PRSPC,14
|
|
.DA #PRLOC,XEDGE,#PG1Y
|
|
.DA #PRSTR,TXTCTRL,'S',#CR
|
|
.DA #PRSTR,TXTCTRL,'G',#CR
|
|
.DA #PRSTR,TXTCTRL,'P',#CR
|
|
.DA #PRSTR,TXTCTRL,'C',#CR
|
|
.DA #PRSTR,TXTCTRL,'D',#CR
|
|
.DA #PRSTR,TXTCTRL,'Q',#CR
|
|
.DA #PRSTR,TXTCTRL,'L',#CR
|
|
.DA #PRSTR,TXTCTRL,'T',#CR
|
|
.DA #PRLOC,279,#PG1Y
|
|
BYT PRRITE
|
|
BYT 'SAVE',CR
|
|
BYT 'GET',CR
|
|
BYT 'PRINT',CR
|
|
BYT 'CLEAR',CR
|
|
BYT 'DEVICE',CR
|
|
BYT 'QUIT',CR
|
|
BYT 'LOCK',CR
|
|
.DA #PRSTR,TXTTILE,#CR
|
|
BRK
|
|
RTS
|
|
;
|
|
TXTCTRL BYT 'CTRL-',0
|
|
;-----------
|
|
PAGE2 JSR PRINT
|
|
BYT PRSPC,14
|
|
BYT PRCSPACE,1
|
|
.DA #PRLOC,XEDGE,#66
|
|
;
|
|
BYT 'D - DRAW',CR
|
|
BYT 'E',PRRTAB,XR1,'- ERASE',CR
|
|
BYT '1',PRRTAB,XR1,'- INSERT ROW',CR
|
|
BYT '2',PRRTAB,XR1,'- DELETE ROW',CR
|
|
;
|
|
BYT PRSPC,8
|
|
BYT '3',PRRTAB,XR1,'- INSERT',CR
|
|
BYT PRSPC,14,PRRTAB,XR2
|
|
.DA #PRSTR,PAGE2COL,#CR
|
|
;
|
|
BYT PRSPC,8
|
|
BYT '4',PRRTAB,XR1,'- DELETE',CR
|
|
BYT PRSPC,14,PRRTAB,XR2
|
|
.DA #PRSTR,PAGE2COL,#CR
|
|
;
|
|
BYT 'F',PRRTAB,XR1,'- FLOOD FILL',CR
|
|
BRK
|
|
RTS
|
|
;
|
|
PAGE2COL BYT 'COLUMN',0
|
|
;-----------
|
|
P3SPC = 15
|
|
;
|
|
PAGE3 JSR PRINT
|
|
BYT PRCSPACE,1
|
|
.DA #PRLOC,XEDGE,#66
|
|
;
|
|
BYT 'H - FLIP',CR
|
|
BYT PRSPC,P3SPC,PRRTAB,XR2
|
|
BYT 'HORIZONTAL',CR
|
|
;
|
|
BYT PRSPC,8
|
|
BYT 'V',PRRTAB,XR1,'- FLIP',CR
|
|
BYT PRSPC,P3SPC,PRRTAB,XR2
|
|
BYT 'VERTICAL',CR
|
|
;
|
|
BYT 'N',PRRTAB,XR1
|
|
.DA #PRSTR,TXTNEGA,#CR
|
|
;;;;;;;; BYT 'ESC - GO BACK',CR
|
|
BRK
|
|
LDX #26
|
|
LDY #133
|
|
LDA #1
|
|
JSR SHOWAROW
|
|
JSR PRINT
|
|
BYT PRRITE
|
|
.DA #PRLOC,279,#148
|
|
BYT 'SCROLL',CR,0
|
|
RTS
|
|
TXTNEGA BYT '- NEGATIVE',0
|
|
;-----------
|
|
PAGE4Y = 101
|
|
Z1 = 15
|
|
Z2 = PAGE4Y-1
|
|
;
|
|
PAGE4 JSR PRINT
|
|
.DA #PRLOC,XCENT,#66
|
|
BYT PRCNTR
|
|
BYT 'POSITION',CR
|
|
BYT 'CURSOR',CR
|
|
BYT '& PRESS:',CR
|
|
; BYT RTOSWITE,26,92,14,2
|
|
BYT PRLEFT,PRSPC,Z1
|
|
BYT PRVTAB,PAGE4Y
|
|
.DA #PRHTAB,XEDGE
|
|
;
|
|
BYT 'L',PRRTAB,XR1,'- '
|
|
.DA #PRSTR,TXTLINES,#CR
|
|
BYT PRPIC,37,Z2,2,9
|
|
HEX 813E70230F2081208123602018200620
|
|
HEX C13F
|
|
;
|
|
BYT 'R',PRRTAB,XR1,'- '
|
|
.DA #PRSTR,TXTRAYS,#CR
|
|
BYT PRPIC,37,Z2+Z1,2,9
|
|
HEX 218131811181191809064D0135810F81
|
|
HEX C13F
|
|
;
|
|
BYT 'B',PRRTAB,XR1,'- '
|
|
.DA #PRSTR,TXTBOX,#CR
|
|
BYT PRPIC,37,Z2+Z1*2,2,9
|
|
HEX C13F0120012001200120012001200120
|
|
HEX C13F
|
|
;
|
|
BYT 'O',PRRTAB,XR1,'- '
|
|
.DA #PRSTR,TXTOVAL,#CR
|
|
BYT PRPIC,37,Z2+Z1*3,2,9
|
|
HEX 70030C0C021001200120012002100C0C
|
|
HEX 7003
|
|
;
|
|
LISABUG0 = Z2+Z1*4
|
|
BYT 'T',PRRTAB,XR1,'- '
|
|
.DA #PRSTR,TXTTEXT,#CR
|
|
BYT PRPIC,37,LISABUG0-1,2,11
|
|
HEX 1E1F33333F1F3333331F821E1F033303
|
|
HEX 3303331E1F
|
|
BRK
|
|
RTS
|
|
;-----------
|
|
;
|
|
; Erase right side of screen
|
|
;
|
|
BLAKRITE JSR PRINT
|
|
BYT RTOSBLAK,26,0,14,192
|
|
BYT RTOSWITE,26,61,14,2
|
|
BYT RTOSWITE,26,177,14,2,0
|
|
;
|
|
; Erase bottom of screen
|
|
;
|
|
BLAKBOTM JSR PRINT
|
|
BYT RTOSBLAK,0,181,40,11,0
|
|
RTS
|
|
;
|
|
; Erase help page area
|
|
;
|
|
BLAKPAGE JSR PRINT
|
|
BYT RTOSBLAK,26,63,14,114,0
|
|
RTS
|
|
;-----------
|
|
;
|
|
; Show right part of screen
|
|
;
|
|
SHOWRITE JSR BLAKRITE
|
|
LDX #26
|
|
LDY #0
|
|
TYA
|
|
JSR SHOWAROW
|
|
JSR PRINT
|
|
.DA #PRLOC,227,#11
|
|
BYT 'MOVE',CR
|
|
BYT 'CURSOR',CR
|
|
.DA #PRLOC,182,#39
|
|
BYT PRSPC,11
|
|
BYT PRCSPACE,1
|
|
BYT 'P - PATTERN',CR
|
|
BYT 'X',PRRTAB,XR1,'- MIRRORS',CR
|
|
BRK
|
|
JSR SHOWBOXS
|
|
JSR SHOWPAGE
|
|
;
|
|
; Display bottom help stuff
|
|
;
|
|
SHOWBOTM JSR BLAKBOTM
|
|
JSR SHOWCOOR
|
|
JSR PRINT
|
|
.DA #PRHTAB,169
|
|
BYT PRRITE,PRCSPACE,1
|
|
BYT 'U - UNDO',NOCR,0
|
|
;
|
|
LDA #XEDGE/7
|
|
JSR SPACEBAR
|
|
;
|
|
CLC
|
|
RTS
|
|
;-----------
|
|
;
|
|
; Show coordinates X= Y=
|
|
;
|
|
SHOWCOOR JSR PRINT
|
|
.DA #PRLOC,7,#185
|
|
BYT 'X=',NOCR
|
|
.DA #PRHTAB,49
|
|
BYT 'Y=',NOCR,0
|
|
RTS
|
|
;-----------
|
|
;
|
|
; Set parameters for EDIT routines
|
|
; and clear EDITBUFF
|
|
;
|
|
SETMAX LDX #88
|
|
LDY #52
|
|
JSR EDITINIT
|
|
JMP CLRBUFF
|
|
;-----------
|
|
;
|
|
; Save special graphic
|
|
; enter with A: 0=Tile Magic
|
|
; 1=Creature Maker
|
|
;
|
|
SAVESP0 ADR TXTTM
|
|
ADR TXTCMAKE
|
|
SAVESP1 ADR TXTTILE
|
|
ADR TXTCREAT
|
|
;
|
|
TXTTILE BYT 'TILE',0
|
|
TXTCREAT BYT 'CREATURE',0
|
|
;
|
|
SAVESPY0 = 32
|
|
SAVESPY1 = 108
|
|
;
|
|
SAVESPEC ASL
|
|
TAX
|
|
LDA SAVESP0,X
|
|
STA >0+1
|
|
LDA SAVESP0+1,X
|
|
STA >0+2
|
|
LDA SAVESP1,X
|
|
STA >1+1
|
|
LDA SAVESP1+1,X
|
|
STA >1+2
|
|
;
|
|
JSR WITEBORD
|
|
JSR ESCBACK
|
|
JSR PRINT
|
|
BYT PRCNTR,PRBIG,PRINVR
|
|
.DA #PRLOC,140,#1
|
|
^0 .DA #PRSTR,0000,#CR
|
|
BYT RTOSWITE,13,SAVESPY0,14,60
|
|
BYT PRVTAB,SAVESPY0+4
|
|
BYT PRSMAL,'@',CR
|
|
BYT PRVTAB,SAVESPY1
|
|
BYT PRNORM
|
|
BYT 'MAKE A CHOICE:',CR
|
|
BYT CR,CR
|
|
BYT 'SAVE '
|
|
^1 .DA #PRSTR,0000,#CR
|
|
.DA 'GO TO ',#PRSTR,TXTGEDIT,#CR
|
|
.DA #PRSTR,TXTGTMM,#CR
|
|
BRK
|
|
^2 LDY #00
|
|
JSR SELECT
|
|
BYT 6,28,SAVESPY1+23,3
|
|
ADR RTS
|
|
BCS >3
|
|
STY <2+1
|
|
^3 RTS
|
|
;
|
|
;
|
|
;
|
|
ICL "S:GREDIT2"
|