PrintShopCompanion-Apple-II/PSC Source Disk 2 - Editors.../S_BOEDIT1.txt

460 lines
9.4 KiB
Plaintext

TTL "S:BOEDIT"
; S:BOEDIT1
NOG
ORG = $4000
;
; 06/03/85
; 07/24/85 last mod
;
; The Print Shop COMPANION
;
; Border Editor
;
; Copyright 1985
; by Roland Gustafsson
;
DAT EPZ $00
;
BORDER EPZ DAT
XCOOR EPZ DAT+2
YCOOR EPZ DAT+3
SECTION EPZ DAT+4
BUTTON EPZ DAT+5
OLDXCOOR EPZ DAT+6
OLDYCOOR EPZ DAT+7
MINICNT EPZ DAT+8
CNSTRAIN EPZ DAT+9
;
; Temporary z-page for use within
; subroutines
;
HIRES1 EPZ $40
HIRES2 EPZ $42
HIRES3 EPZ $44
;
; Absolute references:
;
BORDBASE = $7800
BORDLEN = $94
UNDOBUFF = $7900
FFBUFFER = $7A00
FFSTACK = $7B00
;
; Constants:
;
XMAX = 23
YMAX = 14
;
XOFFSET = 5
YOFFSET = 45
;
MINIX1 = 1
MINIY1 = 23
MINIW1 = 11
MINIH1 = 11
;
MINIX2 = 28
MINIY2 = 79
MINIW2 = 4
MINIH2 = 4
;
INFO1Y = 123
;
XCENT = 223
XEDGE = 170
XEDGEB = XEDGE/7
XR1 = 13
XR2 = 24
;
LOCKX = 37
LOCKY = 9
;-----------
ORG ORG
OBJ $800
;-----------
JSR SETTYPE
TXTBORD BYT 'BORDER',0
BETEXT BYT 'BORDER EDITOR',0
BYT 'BORD.',0
BYT 2
ADR BORDBASE
ADR BORDLEN
;
JSR ZEROBORD
LDA #0
STA MINICNT
;-----------------------
;
; Draw Border Editor main screen
;
JSR SCREEN1
JSR BUFFSAVE
JMP MAINLOOP
;
ASC "(C) 1985"
ASC "R GUSTAFSSON"
;---
TXTCTRL BYT 'CTRL-',0
TXTEB BYT 'EDIT BOX',0
;-----------
;
; Get a border
;
BRGET JSR GETTEXT
JSR PRINT
BYT PRCNTR
.DA #PRLOC,140,#60
.DA #PRSTR,CABTEXT,#CR
BYT CR,CR
BYT 'FROM PRINT SHOP DISK',CR
BYT 'FROM COMPANION DISK',CR
BYT 'FROM OTHER DISK',CR,0
;
^0 LDY #00
JSR SELECT
BYT 6,28,83,3
ADR RTS
BCS >1
;
STY <0+1
JSR >2
BCS BRGET
JSR BUFFSAVE
^1 JMP SCREEN1
;
^2 JSR JMPVECTS
ADR GETPSDSK
ADR GETCPDSK
ADR GETOTDSK
;
CABTEXT BYT 'CHOOSE A BORDER:',0
;
GETCPDSK LDA #0
CLC
HEX 24
GETOTDSK SEC
JMP GETFILE
;-----------
;
; "GET" text window
;
GETTEXT JSR WITEBORD
JSR PRINT
BYT PRINVR,PRRITE
.DA #PRLOC,149,#4
.DA #PRSTR,BETEXT
BYT ':',CR
BYT PRBIG,PRLEFT
.DA #PRLOC,160,#1
BYT 'GET',CR,0
JMP ESCBACK
;-----------
;
; Save a border
;
BRSAVE JSR SAVEFILE
JMP SCREEN1
;-----------
;
; Print the border
;
BRPRINT 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,TXTBORD,#CR,#0
JSR GETKEY
CMP #CR
BNE >0
JSR PRINTBR
^0 JMP SHOWBOTM
;-----------
;
; Clear the border
;
CMDCLEAR JSR BLAKBOTM
JSR PRINT
BYT PRCNTR
.DA #PRLOC,140,#185
.DA #PRSTR,TXTRET
BYT ' TO CLEAR '
.DA #PRSTR,TXTBORD
BYT CR,0
JSR GETKEY
CMP #CR
BNE >0
JSR BUFFSAVE
JSR BRINIT
JSR MINITURE
^0 JMP SHOWBOTM
;-----------
;
; Quit?
;
QUIT JSR BLAKBOTM
JSR PRINT
.DA #PRLOC,140,#185
BYT PRCNTR
.DA #PRSTR,TXTPRET
BYT ' TO '
BYT 'GO TO MAIN MENU',NOCR,0
JSR GETKEY
CMP #CR
BEQ >0
JMP SHOWBOTM
^0 JMP MAINMENU
;
TXTPRET BYT 'PRESS '
TXTRET BYT '<RETURN>',0
;-----------
;
; Draw starup screen
;
SCREEN1 JSR CLSCREEN
JSR PRINT
BYT RTOSWITE,0,0,24,16
BYT PRINVR,PRCNTR
.DA #PRLOC,84,#4
.DA #PRSTR,BETEXT,#CR
;
BYT RTOSANY,$70,MINIX1-1,MINIY1-3
BYT 1,6+14*MINIH1
BYT RTOSWITE,MINIX1,MINIY1-3
BYT 2*MINIW1,6+14*MINIH1
BYT RTOSANY,$07,MINIX1+2*MINIW1,MINIY1-3
BYT 1,6+14*MINIH1
BRK
;
; Draw border window
;
MX1 = XOFFSET*7
MY1 = YOFFSET
;
JSR LINES
BYT 'H'
; BYT BLAK,MX1-4,MY1-4,102,BLAK,MX1-4,MY1-3,102
BYT GRAY,MX1-2,MY1-2,98,GRAY,MX1-2,MY1-1,98
BYT GRAY,MX1-2,MY1+42,98,GRAY,MX1-2,MY1+43,98
; BYT BLAK,MX1+48,MY1+44,50,BLAK,MX1+48,MY1+45,50
BYT GRAY,MX1-2,MY1+86,48,GRAY,MX1-2,MY1+87,48
; BYT BLAK,MX1-4,MY1+88,54,BLAK,MX1-4,MY1+89,54
BYT 1
;
JSR LINES
BYT 'V'
; BYT BLAK,MX1-4,MY1-4,94,BLAK,MX1-3,MY1-4,94
BYT GRAY,MX1-2,MY1-2,90,GRAY,MX1-1,MY1-2,90
BYT GRAY,MX1+46,MY1-2,90,GRAY,MX1+47,MY1-2,90
; BYT BLAK,MX1+48,MY1+44,46,BLAK,MX1+49,MY1+44,46
BYT GRAY,MX1+94,MY1-2,46,GRAY,MX1+95,MY1-2,46
; BYT BLAK,MX1+96,MY1-4,50,BLAK,MX1+97,MY1-4,50
BYT 1
;
JSR PRINT
BYT PRINVR
BYT PRSPC,44
.DA #PRLOC,MX1-9,#MY1+17
BYT '1',NOCR
BYT PRRTAB2,107
BYT '2',CR
.DA #PRHTAB,MX1-10
BYT '3',NOCR
BRK
;
; Draw miniature greeting card border
;
JSR MINITURE
JSR SHOWRITE
JMP BRCENTER
;-----------
BLAKRITE JSR PRINT
BYT RTOSBLAK,XEDGEB,0,40-XEDGEB,192
BYT RTOSWITE,XEDGEB,61,40-XEDGEB,2
BYT RTOSWITE,XEDGEB,177,40-XEDGEB,2
BRK
RTS
;
BLAKBOTM JSR PRINT
BYT RTOSBLAK,0,181,40,11,0
RTS
;
BLAKPAGE JSR PRINT
BYT RTOSBLAK,XEDGEB,63,40-XEDGEB,114,0
RTS
;-----------
;
; Display help info on right side
; of screen
;
SHOWRITE JSR BLAKRITE
LDX #XEDGEB
LDY #0
TYA
JSR SHOWAROW
JSR PRINT
.DA #PRLOC,XEDGE+45,#11
BYT 'MOVE',CR
BYT 'CURSOR',CR
.DA #PRLOC,XCENT,#41
BYT PRCNTR
BYT PRCSPACE,1
BYT 'USE 1, 2 OR 3 TO',CR
BYT 'SELECT '
.DA #PRSTR,TXTEB,#CR
;
BRK
;
JSR SHOWPAGE
;
; Display bottom
;
SHOWBOTM JSR BLAKBOTM
JSR SHOWCOOR
JSR PRINT
.DA #PRHTAB,164
BYT PRRITE,PRCSPACE,1
BYT 'U - UNDO',NOCR
BRK
LDA #XEDGEB+1
JSR SPACEBAR
CLC
RTS
;-----------
;
; Show coor X= Y=
;
SHOWCOOR JSR PRINT
.DA #PRLOC,7,#185
BYT 'X=',NOCR
BYT PRRTAB,42
BYT 'Y=',NOCR,0
RTS
;-----------
;
; Show next help page
;
CMDSPACE INC PAGENUM
LDA PAGENUM
EOR #4
BNE SHOWPAGE
STA PAGENUM
;
; Show current help page
;
SHOWPAGE JSR BLAKPAGE
JSR >0
CLC
RTS
;
^0 LDY #00
PAGENUM = *-1
JSR JMPVECTS
ADR PAGE1
ADR PAGE2
ADR PAGE3
ADR PAGE4
;-----------
PAGE1 JSR PRINT
BYT PRSPC,15
.DA #PRLOC,XEDGE,#71
.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 #PRLOC,277,#71
BYT PRRITE
BYT 'SAVE',CR
BYT 'GET',CR
BYT 'PRINT',CR
BYT 'CLEAR',CR
BYT 'DEVICE',CR
BYT 'QUIT',CR
BYT 'LOCK',CR
BRK
RTS
;-----------
P2SPC = 11
;
PAGE2 JSR PRINT
BYT PRCSPACE,1
BYT PRSPC,P2SPC
.DA #PRLOC,XEDGE,#67
BYT 'D - DRAW',CR
BYT 'E',PRRTAB,XR1,'- ERASE',CR
;
BYT PRSPC,8
BYT 'H - FLIP',CR
BYT PRSPC,P2SPC,PRRTAB,XR2
BYT 'HORIZONTAL',CR
;
BYT PRSPC,8
BYT 'V',PRRTAB,XR1,'- FLIP',CR
BYT PRSPC,P2SPC,PRRTAB,XR2
BYT 'VERTICAL',CR
;
BYT 'N',PRRTAB,XR1,'- NEGATIVE',CR
BRK
LDX #XEDGEB
LDY #136
LDA #1
JSR SHOWAROW
JSR PRINT
.DA #PRLOC,XEDGE+45,#151
BYT 'SCROLL',CR
BRK
RTS
;-----------
P3Y = 66
PAGE3 JSR PRINT
.DA #PRLOC,XCENT,#P3Y
BYT PRCNTR,PRCSPACE,1
.DA #PRSTR,TXTBORD
BYT ' LAYOUT:',CR
BYT PRLEFT
.DA #PRLOC,XEDGE,#MINIY2+6+MINIH2*14
BYT 'B - FLIP BOTTOM',CR
BYT 'R - FLIP RIGHT',CR
BYT 'T',PRRTAB,XR1,'- TILE',CR
BYT PRRTAB,XR2,'BOUNDARY',CR
BRK
JMP PAG3DIAG
;-----------
P4Y = 83
;
FFXLOC = 37
FFYLOC = 131
;
PAGE4 JSR PRINT
.DA #PRLOC,XEDGE,#P4Y
BYT 'C',PRRTAB,XR1,'-',PRRTAB,XR2,'COPY THE',CR
BYT PRRTAB2,XR2
BYT 'CURRENT',CR
.DA #PRSTR,TXTEB,' TO',#CR
BYT 'THE OTHER',CR
.DA #PRSTR,TXTEB,'ES',#CR
BYT CR
.DA #PRHTAB,XEDGE
BYT 'P',PRRTAB,XR1,'-',PRRTAB,XR2,'PATTERN',CR
BYT RTOSANY,$70,FFXLOC,FFYLOC-1,1,10
BYT RTOSWITE,FFXLOC+1,FFYLOC-1,1,10
BYT RTOSANY,$03,FFXLOC+2,FFYLOC-1,1,10
BYT CR
BYT 'F',PRRTAB,XR1,'-',PRRTAB,XR2,'FLOOD FILL',CR
BRK
JMP SHOWFILL
;-----------
;
;
;
ICL "S:BOEDIT2"