1 REM ******************************** 2 REM * * 3 REM * 'SCREENMAKER 64' (C) 1985 * 4 REM * * 5 REM * DOUG SMOAK * 6 REM * 303 HEYWARD ST. * 7 REM * COLUMBIA, S.C. 29201 * 8 REM * * 9 REM ******************************** 10 BO=53280:BG=BO+1:POKE56296,12:POKE56297,12 20 POKEBO,12:POKEBG,12:PRINT"[147][151]SETTING UP";:DIMB$(63) 30 READA:IFA>-1THENPOKE680+I,A:I=I+1:PRINT".";:GOTO30 40 PRINT"[147]":POKE252,4:POKE254,192:SYS680 50 GOSUB1980 60 DN$="":BL$=" " 70 DN$=DN$+BL$+DN$:NL$=CHR$(0) 80 MN$="[221] [221]" 90 T1$="[147][151] SCREENMAKER 64 [146]" 100 PRINTT1$ 110 POKEBO,12:POKEBG,12 120 PRINT"CHOOSE ONE:" 130 PRINT"C_CREATE A SCREEN" 140 PRINT"L_LOAD/EDIT A SCREEN" 150 PRINT"E_END" 160 GETG$ 170 IFG$="C"THEN240 180 IFG$="L"THEN1510 190 IFG$="E"THENPRINT"[147]":END 200 GOTO160 210 : 220 REM -------- CREATE MENU ----------- 230 : 240 PRINT"[147][151] CREATE A SCREEN [146]" 250 POKEBO,12:POKEBG,12 260 PRINT"CHOOSE ONE:" 270 PRINT"C_CUSTOM SCREEN MODE" 280 PRINT"L_LARGE TEXT MODE" 290 PRINT"V_VIEW MENU" 300 PRINT"M_MAIN MENU" 310 GETG$ 320 IFG$="V"THEN370 330 IFG$="M"THEN100 340 IFG$="C"THENGOSUB790:GOTO570 350 IFG$="L"THENGOSUB790:GOTO1750 360 GOTO310 370 PRINT"[147][151] VIEW MENU [146]" 380 POKEBO,12:POKEBG,12 390 PRINT"V_ VIEW CURRENT SCREEN" 400 PRINT"C_ RETURN TO CREATE MENU" 410 PRINT"M_ RETURN TO MAIN MENU" 420 PRINT"[176][192][192][192][192][192][151] AVAILABLE FROM VIEW MODE[151] [192][192][192][192][192][174]":PRINTMN$ 430 PRINT"[221] F1[155]_ CHANGE CHARACTER COLOR [151] [221]":PRINTMN$ 440 PRINT"[221] F3[155]_ CHANGE BACKGROUND COLOR[151] [221]":PRINTMN$ 450 PRINT"[221] F5[155]_ CHANGE BORDER COLOR [151] [221]":PRINTMN$ 460 PRINT"[221] F7[155]_ 1X PRINTOUT [151]F8[155]_ 2X PRINTOUT[151] [221]":PRINTMN$ 470 PRINT"[221] S[155] _ SAVE CURRENT SCREEN [151] [221]" 480 PRINT"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]" 490 GETG$ 500 IFG$="V"THENGOSUB790:GOSUB930:GOTO370 510 IFG$="M"THEN100 520 IFG$="C"THEN240 530 GOTO490 540 : 550 REM -------- CURSOR ROUTINE -------- 560 : 570 PRINT""; 580 P=1024+PEEK(214)*40+PEEK(211)+(PEEK(211)>39)*40 590 CH=PEEK(P):K=128*(CH>127)-128*(CH<128) 600 POKEP,CH+K:POKEP+54272,PEEK(646):T=TI+2 610 IFTI>TTHENK=-128*(K=0)*(CH>127)+128*(K=0)*(CH<128):GOTO600 620 GETZ$:IFZ$=""THEN610 630 IFZ$="\"THENPOKEP,CH:GOSUB860:GOTO240 640 POKEP,CH:PRINTZ$; 650 IFZ$=CHR$(34)THENPOKE212,0 660 IFZ$="[148]"THENPOKE216,0 670 GOTO580 680 : 690 REM ------- ERROR CHANNEL READ ----- 700 : 710 OPEN15,8,15 720 INPUT#15,A,B$,C,D:CLOSE15 730 RETURN 740 GETA$:IFA$=""THEN740 750 RETURN 760 : 770 REM ---------- GET SCREEN ---------- 780 : 790 POKE252,192:POKE254,4:SYS680 800 POKE252,196:POKE254,216:SYS680 810 POKEBO,PEEK(56296):POKEBG,PEEK(56297) 820 RETURN 830 : 840 REM ---------- PUT SCREEN ---------- 850 : 860 POKE252,4:POKE254,192:SYS680 870 POKE56296,PEEK(BO):POKE56297,PEEK(BG) 880 POKE252,216:POKE254,196:SYS680 890 RETURN 900 : 910 REM -------- VIEW OPTIONS ---------- 920 : 930 GETG$:IFG$=""THEN930 940 IFG$="S"THENGOSUB860:GOTO1040 950 IFG$="[133]"THENSYS703:GOTO930 960 IFG$="[134]"THENPOKEBG,(PEEK(BG)+1)AND15:POKE56297,PEEK(BG):GOTO930 970 IFG$="[135]"THENPOKEBO,(PEEK(BO)+1)AND15:POKE56296,PEEK(BO):GOTO930 980 IFG$="[136]"THENTX$=CHR$(15):GOSUB1190 990 IFG$="[140]"THENTX$=CHR$(14):GOSUB1190 1000 GOSUB860:RETURN 1010 : 1020 REM --------- SAVE SCREEN --------- 1030 : 1040 F1$="":F2$="":POKEBO,12:POKEBG,12 1050 OPEN15,8,15,"UI":CLOSE15 1060 PRINT"[147][151]SCREEN NAME"; 1070 INPUTF1$:IFF1$=""THENRETURN 1080 IFLEN(F1$)>14THEN1060 1090 PRINT"SAVE COLOR TOO? [Y/N]" 1100 GETA$:IFA$<>"Y"ANDA$<>"N"THEN1100 1110 GOSUB790 1120 FS=1:IFA$="Y"THENFS=2:F2$=F1$+".C" 1130 F$=F1$:S=1024:E=2024:GOSUB1330:GOSUB1390:IFATHENRETURN 1140 IFFS=2THENF$=F2$:S=55296:E=56298:GOSUB1330:GOSUB1390 1150 RETURN 1160 : 1170 REM --------- SCREEN DUMP --------- 1180 : 1190 R$=CHR$(145):V$=CHR$(146):OPEN4,4:CMD4:G=PEEK(648)*256 1200 PRINTR$+TX$; 1210 FORP=GTOG+999 1220 C=PEEK(P):C$="" 1230 IF(P-G)/40=INT((P-G)/40)THENPRINTCHR$(8)+CHR$(13)+TX$; 1240 IFC>128THENC=C-128:C$=CHR$(18) 1250 IFC<32ORC>95THENC=C+64:GOTO1270 1260 IFC>63ANDC<96THENC=C+128 1270 C$=C$+CHR$(C):IFLEN(C$)>1THENC$=C$+V$+R$ 1280 PRINTC$;:NEXT:PRINT#4:CLOSE4 1290 RETURN 1300 : 1310 REM -------- PUT FILENAME --------- 1320 : 1330 FORI=1TOLEN(F$):POKE749+I,ASC(MID$(F$,I,1)):NEXT 1340 POKE183,LEN(F$):POKE187,238:POKE188,2:POKE186,8:POKE185,1 1350 RETURN 1360 : 1370 REM --------- SAVE SUB ------------ 1380 : 1390 SH=INT(S/256):SL=S-SH*256 1400 EH=INT(E/256):EL=E-EH*256 1410 POKE251,SL:POKE252,SH 1420 POKE780,251:POKE781,EL:POKE782,EH 1430 SYS65496 1440 GOSUB710:IFA=0THENRETURN 1450 PRINT"[147]"DN$"DISK ERROR "A;B$"" 1460 GOSUB740 1470 RETURN 1480 : 1490 REM --------- LOAD SCREEN --------- 1500 : 1510 F1$="":F2$="" 1520 PRINT"[147]EXACT SCREEN NAME"; 1530 INPUTF1$:IFF1$=""THEN100 1540 IFLEN(F1$)>14THEN1520 1550 PRINT"LOAD COLOR TOO? [Y/N]" 1560 GETA$:IFA$<>"Y"ANDA$<>"N"THEN1560 1570 FS=1:IFA$="Y"THENFS=2:F2$=F1$+".C" 1580 F$=F1$:GOSUB1330:POKE780,0:SYS65493 1590 GOSUB710:IFA=0THEN1630 1600 PRINTDN$"DISK ERROR"A;B$"" 1610 GOSUB740 1620 GOTO100 1630 IFFS=2THENF$=F2$:GOSUB1330:POKE780,0:SYS65493 1640 GOSUB710:IFA=0THEN1690 1650 GOSUB860 1660 PRINTDN$"COLOR FILE NOT LOADED" 1670 GOSUB740 1680 GOTO370 1690 POKEBO,PEEK(56296):POKEBG,PEEK(56297) 1700 GOSUB860 1710 GOTO370 1720 : 1730 REM ------- LARGE TEXT ------------ 1740 : 1750 PRINT""; 1760 GOSUB1910 1770 IFLEFT$(M$,1)="\"THENGOSUB860:GOTO240 1780 IFLEFT$(M$,1)="_"THENM$=RIGHT$(M$,LEN(M$)-1):GOTO1810 1790 ML=(40-LEN(M$)*4)/2 1800 IFML>0THENFORI=1TOML:PRINT"";:NEXT 1810 FORI=1TOLEN(M$) 1820 A$=MID$(M$,I,1) 1830 A=ASC(A$+NL$)+64*(ASC(A$+NL$)>63) 1840 PRINTB$(A);:NEXT:PRINT"" 1850 GETG$:IFG$=""THEN1850 1860 IFG$="\"THENGOSUB860:GOTO240 1870 PRINT:GOTO1760 1880 : 1890 REM ------- GET TEXT LINE --------- 1900 : 1910 M$="":PRINTDN$"[166][157]"; 1920 GETG$:IFG$=""THEN1920 1930 IFASC(G$)>31ANDASC(G$)<96THENM$=M$+G$ 1940 IFG$=CHR$(20)ORG$=CHR$(157)THENM$=LEFT$(M$,LEN(M$)+1*(LEN(M$)>0)) 1950 IFG$<>CHR$(13)THENPRINT" [157]"G$"[166][157]";:GOTO1920 1960 IFM$=""THENM$=" " 1970 PRINTDN$"[145]":RETURN 1980 B$(0)="" 1990 B$(1)="[169] [223][157][157][157]  [157][157][157] [162] [157][157][157]  [145][145][145]" 2000 B$(2)=" [223][157][157][157]  [157][157][157] [162] [157][157][157] [146][162] [145][145][145]" 2010 B$(3)=" [157][157][157] [162][157][157][157] [157] [146][162] [145][145][145]" 2020 B$(4)=" [223][157][157][157]  [157][157][157]  [157][157][157] [146][162] [145][145][145]" 2030 B$(5)=" [157][157][157] [157][157] [162][157][157] [146][162][162][145][145][145]" 2040 B$(6)=" [157][157][157] [157][157] [162][157][157] [146] [145][145][145]" 2050 B$(7)=" [157][157][157] [162][157][157][157] [146][172][162][157][157][157] [146][162] [145][145][145]" 2060 B$(8)="  [157][157][157]  [157][157][157] [162] [157][157][157]  [145][145][145]" 2070 B$(9)="[161][146][161][157][157][161][146][161][157][157][161][146][161][157][157][161][146][161][145][145][145]" 2080 B$(10)=" [157] [157] [157][157][157] [146][162] [145][145][145]" 2090 B$(11)="  [157][157][157] [169][146][169][157][157][157] [146][223][223][157][157][157]  [145][145][145]" 2100 B$(12)=" [157] [157][157] [157] [146][162][162][145][145][145]" 2110 B$(13)=" [223][169] [157][157][157][157] [146][223][169] [157][157][157][157]  [157][157][157][157]  [145][145][145]" 2120 B$(14)=" [223] [157][157][157] [146][223] [157][157][157]  [157][157][157]  [145][145][145]" 2130 B$(15)=" [157][157][157]  [157][157][157]  [157][157][157] [146][162] [146][145][145][145]" 2140 B$(16)=" [157][157][157]  [157][157][157] [162][162][157][157][157] [145][145][145]" 2150 B$(17)=" [157][157][157]  [157][157][157]  [157][157][157] [190] [146][187][145][145][145]" 2160 B$(18)=" [157][157][157]  [157][157][157] [162][188][157][157][157]  [145][145][145]" 2170 B$(19)=" [157][157][157] [162][157][157][157][162][162] [157][157][157] [146][162] [145][145][145]" 2180 B$(20)=" [157][157] [157][157] [157] [146][145][145][145]" 2190 B$(21)="  [157][157][157]  [157][157][157]  [157][157][157] [146][162] [145][145][145]" 2200 B$(22)="  [157][157][157]  [157][157][157]  [157][157][157][146][223][162][169][145][145][145]" 2210 B$(23)="  [157][157][157][157]  [157][157][157][157] [169][223] [157][157][157][157] [146][169][223] [145][145][145]" 2220 B$(24)="  [157][157][157]  [157][157][157][190][162][188][157][157][157]  [145][145][145]" 2230 B$(25)="  [157][157][157]  [157][157][157][162] [162][157][157] [146][145][145][145]" 2240 B$(26)=" [157][157][169][146][169][157][157][157][169][146][169][157][157] [146][162][162][145][145][145]" 2250 B$(32)="" 2260 B$(33)=" [157] [157][162][157][146][209][145][145][145]" 2270 B$(39)="[169][146][169]" 2280 B$(42)="" 2290 B$(43)="[175] [146][175][157][157][157][183] [146][183][145][145]" 2300 B$(44)="[183][157][146][188][145][145][145][145]" 2310 B$(45)="[146][175][175][175][157][157][157][183][183][183][145][145]" 2320 B$(46)="[146][209][145][145][145]" 2330 B$(47)="[169][146][169][157][157][157][169][146][169][157][157][157][169][146][169][157][157][157][169][146][169][145][145][145]" 2340 B$(48)=" [175] [157][157][157] [146][172] [157][157][157] [146][190] [157][157][157] [146][162] [145][145][145][146]" 2350 B$(49)="[146][172] [157] [157] [157][157][146][172] [146][187][145][145][145]" 2360 B$(50)=" [175] [157][157][169][146][169][157][157][157][169][146][169][157][157] [146][162][162][145][145][145]" 2370 B$(51)=" [175] [157][157][169][146][169][157][157][162] [157][157][157] [146][162] [146][145][145][145]" 2380 B$(52)="[169] [157][157][157][169][146][169] [157][157][157][162][162] [146][190][157][157] [145][145][145][146]" 2390 B$(53)=" [175][175][157][157][157] [157][162][162] [157][157][157] [146][162] [146][145][145][145]" 2400 B$(54)=" [175] [157][157][157] [157] [162] [157][157][157] [146][162] [146][145][145][145]" 2410 B$(55)=" [175] [157][157][169][146][169][157][157] [157] [146][145][145][145]" 2420 B$(56)=" [175] [157][157][157]  [157][157][157] [162] [157][157][157] [146][162] [146][145][145][145]" 2430 B$(57)=" [175] [157][157][157]  [157][157][157][162][162] [157][157][157] [146][162] [146][145][145][145]" 2440 B$(61)="[185][185][185][157][157][157][185][185][185][145][145]" 2450 B$(63)="[169][175][223][157][157][169][146][169][157][157] [157][146][162][145][145][145]" 2460 RETURN 2470 DATA162,4,160,0,132,251,132,253,177,251 2480 DATA145,253,200,208,249,230,252,230,254,202 2490 DATA208,242,96 2500 DATA172,0,216,136,152,41,15,162,0,157 2510 DATA0,216,157,0,217,157,0,218,157,0 2520 DATA219,232,208,241,141,134,2,96,-1