Home » Personal collection » Commodore disks » disk32a_commodore_disk_user_3_7.d64 » screen designer
screen designer
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Personal collection » Commodore disks » disk32a_commodore_disk_user_3_7.d64 |
Filename: | screen designer |
Read OK: | ✔ |
File size: | 192E bytes |
Load address: | 0801 |
Exec address: | 0000 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- Arnold website » magazines_cdu » magazines_cdu_cdu307_cdu307.d64 » screen designer
- Personal collection » Commodore disks » disk32a_commodore_disk_user_3_7.d64 » screen designer
File contents
5 REM"<del><del><del><del><del><del><lf><white> SCREEN DESIGNER BY WILLIAM A CHRISTIE <yellow> 10 ON A GOTO 30,40 20 A=1:LOAD"CRUNCH/DECR.MC",8,1 30 A=2:LOAD"GETCHAR.MC",8,1 40 POKE55,190:POKE56,47:CLR:REM END OF BASIC MEMORY=$3000-64 50 V=53248:POKE2040,191:POKE650,128:POKE53280,6:POKE53281,0 55 POKE1022,0:REM RESET SCREEN MEMORY 60 REM POKE788,52:REM DISABLE RUN/STOP 70 BASE=4096*4:A=BA:GOSUB 1510:BH=HB:BL=LB 80 FORN=12224TON+63:POKEN,0:NEXT 90 FORN=12224TON+23:READS:POKEN,S:NEXT 100 DATA 255,0,0,129,0,0,129,0,0,129,0,0,129,0,0,129,0,0,129,0,0,255,0,0 110 POKEV+21,0:PRINT"<clr><cursor down><cursor down>"TAB(12)"<white>SC<light gray>RE<medium gray>EN <white>DE<light gray>SI<medium gray>GN<dark gray>ER" 115 PRINTTAB(12)"<red>▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔" 116 PRINTTAB(10)"<orange>BY WILLIAM CHRISTIE" 120 PRINTTAB(8)"<cursor down>FOR COMMODORE DISK USER" 130 PRINT"<cursor down><cursor down><cursor down><cursor down>"TAB(7)"<light green>F1 <green>:ALTER BACKGROUND COLOUR" 140 PRINTTAB(7)"<light green>F2 <green>:ALTER FOREGROUND COLOUR" 150 PRINTTAB(7)"<light green>F3 <green>:ALTER CHARACTER COLOUR" 160 PRINTTAB(7)"<light green>F5 <green>:SUBSTITUTE CHARACTER" 170 PRINTTAB(7)"<light green>F7 <green>:MAIN MENU<cursor down><cursor down><cursor down>" 180 TX$="<light blue>SCREEN NUMBER (1-255) ?:<cyan>":X=7:Y=17:GOSUB2000 182 SN=S1:SN$=S1$:SL=S2:GOTO280 280 PRINT"<clr>":POKE251,10:POKE252,10:POKE253,0:POKEV+21,1:SP=35:POKE56325,SP 290 CR=32768:DC=33536:REM CRUNCH/DECR 300 CL=51218:REM CLEARMID4LINES 310 RE=51243:REM RETURNMID4LINES 320 GC=50704:REM GETCHAR 330 RC=51699:REM CHARACTER ROM COPY 340 DS=51755:REM DELETE SCREEN 360 LS=52011:REM LIST SCREEN NUMBERS 362 RN=52126:REM RENUMBER 365 AL=52199:REM ALTER SCREEN NUMBER 370 POKEV+21,1:SYS GC:REM GETCHAR 380 POKE781,10:POKE782,1:POKE783,0:SYS65520:POKEV+21,0 390 PRINT"(";RIGHT$(SN$,SL);") ";"<reverse on>W<rev off>IPE <reverse on>C<rev off>RUNCH <reverse on>G<rev off>ET <reverse on>N<rev off>UM <reverse on>L<rev off> <reverse on>S<rev off> <reverse on>R<rev off>EN"; 391 PRINT"UM <reverse on>X<rev off>Y" 400 PRINT" <reverse on>V<rev off> <reverse on>D<rev off>EL <reverse on>B<rev off>GN <reverse on>M<rev off>EM R<reverse on>A<rev off>M CO<reverse on>P<rev off>Y AL<reverse on>T<rev off> L<reverse on>I<rev off>ST MC<reverse on>O<rev off>L<reverse on>12<rev off>" 410 GETT$:IFT$=""THEN410 420 IF ASC(T$)=136THEN 410 422 IF T$="R" ANDPEEK(1022)=1THEN2200 424 IF T$="T" ANDPEEK(1022)=1THEN2300 425 IF T$="C" THEN POKEV+21,1:GOTO 850 430 IF T$<>"O" THEN 440 431 GOTO 433 432 GETT$:IFT$=""THEN432 433 IFT$="O"ANDPEEK(53270)<>216 THEN POKE53270,216:SYS RE:GOTO435 434 IFT$="O"ANDPEEK(53270)<>200 THEN POKE53270,200:SYS RE 435 IF T$="1" THEN POKE53282,(PEEK(53282)AND15)+1 436 IF T$="2" THEN POKE53283,(PEEK(53283)AND15)+1 437 IF ASC(T$)<>13THEN432 438 GOTO 370 440 IF T$="W" THEN PRINT"<clr>":GOTO370 450 IF T$="N" THEN 610 460 IF T$="G" AND PEEK(1022)=1 THEN 720 470 IF T$="P" THEN SYS RC:GOTO590 480 IF T$="I" AND PEEK(1022)=1 THEN SYSLS:GOSUB1700:PRINT"<clr>":GOTO370 490 IF T$="S" THEN 970 500 IF T$="B" THEN 1550 510 IF T$="L" THEN 1090 520 IF T$="V" AND PEEK(1022)=1THEN 1250 530 IF T$="M" THEN 1630 550 IF T$="D" AND PEEK(1022)=1THEN 1750 555 IF T$="X" THEN 2400 560 IF T$<>"A" THEN 590 570 IFPEEK(53272)=21 THEN POKE53272,31:GOTO590 580 POKE53272,21 590 SYS RE:REM RETURNMIN4LINES 600 GOTO370 609 REM *****SET SCREEN NUMBER** 610 Y=13:X=7:TX$="ENTER SCREEN NUMBER :":GOSUB2000:POKEV+21,1 620 SN=S1:SN$=S1$:SL=S2:SYSRE:GOTO370 699 REM ********GET SCREEN****** 720 TX$="WHICH SCREEN NUMBER ?":X=7:Y=13:GOSUB2000 800 A=S1:GOSUB1510:POKE820,LB:POKE821,HB:SYSRE 810 SYS DC:IF(PEEK(2)AND1)=0THEN 370 820 POKEV+21,0:POKE781,13:POKE782,1:POKE783,0:SYS65520 830 PRINT" SCREEN NOT FOUND! " 840 GOSUB1700:POKEV+21,1:SYSRE:GOTO370 849 REM **********CRUNCH******** 850 IF SN=255 THEN PRINT" NEXT SCREEN NUMBER>255 -ALTER NUMBER":GOTO610 855 SYS RE:REM RETURNMIN4LINES 860 A=SN:GOSUB1500:POKE820,LB:POKE821,HB 880 POKEV+23,1:POKEV+29,1 890 SYSCR:IF(PEEK(2)AND128)=0THEN900 895 POKEV+23,0:POKEV+29,0:SYSCL:PRINTTAB(9)"<reverse on>OUT OF CRUNCH MEMORY" 896 POKEV+21,0:GOTO1630 900 SN=SN+1:SN$=STR$(SN):SL=LEN(SN$)-1:POKEV+23,0:POKEV+29,0:GOTO370 950 : 960 REM *** SAVE **** 970 EL=PEEK(BASE)+1 980 EH=PEEK(BASE+1) 990 IF EL=256THENEL=0:EH=EH+1 1000 GOSUB1170:IF F$=""THEN280 1010 SYS57812F$,D,1:POKE193,BL:POKE194,BH:REM$4000=BASE 1020 POKE174,EL:POKE175,EH:REM END 1030 SYS62957:REM SAVE 1040 INPUT"END (Y/N)";E$ 1050 IF E$="N"THEN280 1060 END 1070 : 1080 REM **** LOAD ***** 1090 GOSUB 1170:IF F$=""THEN280 1091 IF F$="$"THEN1900 1100 POKE147,0:SYS57812F$,D,1:SYS62631 1110 IF T$="T"THEN 1140 1120 OPEN15,8,15:INPUT#15,Z1,Z$,Z2,Z3:CLOSE15 1130 PRINT"<cursor down><cursor left>"Z1;Z$;Z2;Z3:GOSUB1700 1140 POKE1022,1:GOTO280 1150 : 1160 REM ***GET LOAD/SAVE PARAMETERS*** 1170 PRINT"<clr><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><cursor down><reverse on>D<rev off>ISK OR <reverse on>T<rev off>APE :"; 1180 GETT$:IFT$=""THEN1180 1185 IF ASC(T$)=13THENRETURN 1190 D=1:IF T$="D"THEN D=8:GOTO1210 1200 IF T$<>"T"THEN 1180 1210 PRINTT$:INPUT"ENTER FILENAME :<cursor left><cursor left>";F$ 1220 RETURN 1230 : 1240 REM **VIEW ALL/SELECTED SCREENS** 1250 POKE53280,9:POKE53281,9 1270 PRINT"<clr><cursor down><cursor down><cursor down><cursor down>"TAB(6)"<white>VIEW ALL/SELECTED SCREENS" 1280 PRINTTAB(6)"<light gray>🮂🮂🮂🮂🮂🮂🮂🮂🮂🮂🮂🮂🮂🮂🮂🮂🮂🮂🮂🮂🮂🮂🮂🮂🮂<light green>" 1290 TX$="<white>ENTER START SCREEN<yellow> :":X=8:Y=10:GOSUB2000:S=S1 1300 TX$="<white>ENTER END SCREEN<yellow> :":X=8:Y=11:GOSUB2000:E=S1:PRINT 1320 IF S>ETHEN 1290 1330 PRINTTAB(4);:PRINT"<cursor down><white>PRESS 'RETURN' FOR NEXT SCREEN" 1340 PRINTTAB(10);:PRINT"PRESS 'E' TO EXIT<cursor down><cursor down>" 1350 PRINTTAB(6)"<cursor down><cursor down><white>PRESS 'C' FOR FIRST SCREEN" 1360 PRINTTAB(10)"<white>PRESS 'X' TO CORECT" 1370 GETK$:IFK$=""THEN1370 1380 IF K$="C"THEN1410 1390 IF K$="X"THEN1270 1400 GOTO 1370 1410 A=S:AS=SN:PRINT"<clr>" 1420 GOSUB 1510:POKE820,LB:POKE821,HB 1430 SYS DC:IF A=ETHENSN=AS:GOTO370 1440 IF (PEEK(2)AND1)=1THENA=A+1:GOTO1420 1450 GETT$:IFT$=""THEN1450 1460 IF T$="E"THEN SN=AS:GOTO370 1470 IF T$="C"THEN 1450 1480 A=A+1:GOTO 1420 1490 : 1500 REM ****CONVERT TO 2 BYTE VAL**** 1510 HB=INT(A/256):LB=A-(HB*256):RETURN 1520 : 1530 REM **INITIALISE SCREEN POINTER*** 1540 REM *****TO START OF MEMORY******* 1550 PRINTTAB(9)"<cursor up><reverse on>ARE YOU SURE (Y/N)<rev off>" 1560 GETY$:IFY$=""THEN1560 1570 IF Y$="N"THEN SYS RE:GOTO370 1580 IF Y$<>"Y"THEN1560 1590 PRINTTAB(16)"O.K." 1600 GOSUB1700:SYS RE:POKE1022,0:GOTO370 1610 : 1620 REM ****PRINT MEMORY USED**** 1630 IF PEEK(1022)=0THENL=BA:GOTO1650 1640 L=PEEK(BA)+PEEK(BA+1)*256 1650 PRINTTAB(5)"NEXT SCREEN AT"L"($"; 1660 L=L/4096:FORJ=1TO4:L%=L:L$=CHR$(48+L%-(L%>9)*7) 1670 PRINTL$;:L=16*(L-L%):NEXT:PRINT")":GOSUB 1700:SYS RE:GOTO370 1680 : 1690 REM *****WAIT FOR KEYPRESS**** 1700 FORT=1TO500:NEXT:POKE198,0 1710 GETR$:IFR$=""THEN1710 1720 RETURN 1730 : 1740 REM *****DELETE SCREEN**** 1750 X=3:Y=13:TX$="DELETE WHICH SCREEN(S) :":GOSUB2100 1760 A=VAL(A$):IF A=13 OR A=0 THEN SYSRE:GOTO370 1770 LA=LEN(A$):FORN=1TOLA:IF MID$(A$,N,1)="-"THEN1790 1780 NEXT:N1=A:N2=A:GOTO1820 1790 N1=VAL(MID$(A$,1,N-1)) 1800 N2=VAL(MID$(A$,N+1,LEN(A$)-N)) 1810 N=LA:IF N2=0THENN2=SN-1:REM "NUM-" 1820 FORN=N1TON2:A=N:GOSUB1510:POKE820,LB:POKE821,HB:SYSDS:NEXT:SYSRE:GOTO370 1828 : 1898 : 1899 REM ****READ DISK DIRECTORY***** 1900 OPEN1,8,0,"$" 1905 GET#1,Z$,Z$ 1910 GET#1,Z$,Z$,Z$,Z$ 1920 IF ST THEN CLOSE 1:GOSUB1700:GOTO370 1924 GET#1,Z$:IFZ$=""THENPRINT:GOTO1910 1930 IF Z$=CHR$(34)THENQ=NOT Q 1950 IF Q THEN PRINTZ$; 1960 GOTO 1924 1998 : 1999 REM ****GET NUMERIC INPUT***** 2000 POKE781,Y:POKE782,0:POKE783,0:SYS65520:POKEV+21,0:POKE650,0 2010 PRINT" ":TT$="" 2020 POKE781,Y:POKE782,X:POKE783,0:SYS65520:PRINTTX$;:IFF=1THENRETURN 2030 GETT$:IFT$=""THEN2030 2035 IF T$="←"THEN 2000 2040 IF ASC(T$)=13 THEN 2090 2060 IF ASC(T$)<48 OR ASC(T$)>57 THEN2030 2070 IF LEN(TT$)=6 THEN2000 2080 TT$=TT$+T$:PRINTT$;:GOTO2030 2090 S1=VAL(TT$):IF S1>255 OR S1<1 THEN2000 2093 S1$=STR$(S1):S2=LEN(S1$)-1:POKE650,128:RETURN 2098 : 2099 REM *****GET STRING INPUT****** 2100 F=1:A$="":GOSUB 2000 2110 GETT$:IFT$=""THEN2110 2115 T=ASC(T$) 2120 IF T$="←" THEN 2100 2130 IF T=13 THEN F=0:POKE650,128:RETURN 2135 IF T>47 AND T<58 OR T$="-" THEN 2150 2140 GOTO2110 2150 A$=A$+T$:IFLEN(A$)<12THENPRINTT$;:GOTO2110 2160 GOTO2100 2198 : 2199 REM *****RENUMBER***** 2200 TX$="RENUMBER INCREMENT :":X=7:Y=13:GOSUB2000 2210 POKE695,S1:SYSRN:SYSRE:GOTO370 2298 : 2299 REM ****ALTER SCREEN NUMBER*** 2300 TX$="TARGET SCREEN NUMBER :":X=5:Y=12:GOSUB2000:A=S1:GOSUB1510 2310 POKE 820,LB:POKE821,HB 2320 TX$="NEW SCREEN NUMBER :":X=5:Y=13:GOSUB2000:A=S1:GOSUB1510 2330 POKE 695,LB:POKE696,HB 2340 SYS AL:IF(PEEK(2)AND1)=0THENSYSRE:GOTO370 2350 SYSRE:GOTO820 2390 : 2391 REM ****PRINT CRSR CO-ORDS*** 2400 A=1024+PEEK($02B2)+40*PEEK($02B3):GOSUB1510 2405 F=1:TX$="HB=":X=12:Y=12:GOSUB2000:PRINTHB;"LB=";LB 2410 GOSUB1700:SYSRE:F=0:GOTO370
: �"� SCREEN DESIGNER BY WILLIAM A CHRISTIE � J � A � 30,40 h A�1:�"CRUNCH/DECR.MC",8,1 � A�2:�"GETCHAR.MC",8,1 �( �55,190:�56,47:�:� END OF BASIC MEMORY=$3000-64 �2 V�53248:�2040,191:�650,128:�53280,6:�53281,0 7 �1022,0:� RESET SCREEN MEMORY / <