home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Carousel Volume 2 #1
/
carousel.iso
/
comdore
/
64utils
/
chargen
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1988-11-02
|
9KB
|
283 lines
1 IF BO=1ANDDS=2THEN4240
2 IFDS=3ANDBO=0THEN19
3 IF DS=2THEN4240
4 IF DS=5THEN4250
5 IFDS=3ANDBO=1THENBO=0:GOTO4430:POKE252,196:POKE251,32
12 PRINT"[147]":PRINT"[144]":PRINT"":POKE53265,PEEK(53265)AND191
13 S2=1024:GOSUB14000:POKE53265,PEEK(53265)AND239
14 FORI=0TO7:READBI(I):NEXTI
15 FORI=49152TO49204:READML:POKEI,ML:NEXTI:SYS49152
16 FORI=49210TO49262:READNL:POKEI,NL:NEXTI:POKE50174,1
17 FORI=49270TO49324:READOL:POKEI,OL:NEXTI:PRINT"[147]":SYS49270
18 FORI=49330TO49422:READPL:POKEI,PL:NEXTI:PRINT"[147]":SYS49392
19 PRINT"[147]":POKE53265,PEEK(53265)AND239:PRINT"":PRINT"E":CLR:POKE53265,PEEK(53265)AND191
20 POKE52,44:POKE56,44:POKE53272,(PEEK(53272)AND15)OR16
30 CH=64:SA=0:SL=1024+720:S2=1024:MS$="":GOSUB7400:CI=0:SB=0:SM=1064:CC=1
100 REM SCREENMAKER
110 REM COPYRIGHT 1985
120 REM MARK E. BOETTCHER
130 REM
150 GOTO1000
1000 REM MOVE 128 CHARS TO RAM FROM ROM
1080 POKE 53272,(PEEK(53272)AND240)+12
1090 PRINT"":GOSUB8000:GOTO2000
2000 REM SELCHARLOOP
2004 S2=1024:IFMC=1THENMS$="MOVE CHARACTER":GOSUB7400:GOTO2010
2005 MS$="SELECT CHARACTER TO BE MODIFIED":GOSUB7400:POKE53265,PEEK(53265)OR16
2010 SA=CH:SL=SL+40*3
2030 CH=46:POKESL,CH:FORI=1TO20:NEXTI
2040 CH=SA:POKESL,CH:JV=PEEK(56320)
2055 FR=JVAND16:IFFR<>16THENGOSUB3100
2060 JV=15-(JVAND15):TS=840:IFJV=1THENGOSUB3001
2061 IFJV=2THENGOSUB3004
2062 IFJV=4THENGOSUB3006
2063 IFJV=8THENGOSUB3009
2070 GETFU$:IFFU$=CHR$(133)THENGOTO8100
2074 IFFU$=CHR$(134)THENGOSUB4500
2075 IFFU$=CHR$(137)THENGOSUB4100
2077 IFFU$=CHR$(138)THENGOTO4200
2078 IFFU$=CHR$(139)THENGOSUB3078:GOTO19
2090 GOTO2030
3000 REM SELCHARJOY
3001 IF SL<S2+TS+40THENRETURN
3002 SL=SL-40:CH=CH-20:SA=CH:RETURN
3004 IF SL>S2+TS-40+127THENRETURN
3005 SL=SL+40:CH=CH+20:SA=CH:RETURN
3006 IF SL<S2+TS+2THENRETURN
3007 SL=SL-2:CH=CH-1:SA=CH:RETURN
3009 IF SL>S2+TS+125THENRETURN
3010 SL=SL+2:CH=CH+1:SA=CH:RETURN
3078 MS$="T[146]OP OR B[146]OTTOM":GOSUB7400:INPUTRT$
3079 IFRT$="T"THENPOKE50174,0
3080 IFRT$="B"THENPOKE50174,1
3081 RETURN
3100 REM CHAR-GRID
3101 IFMC=1THENMC=0:GOTO4600
3115 LI=40:CT=0:RESTORE:FORI=0TO7:READBI(I):NEXTI
3130 FORI=0TO7:LO=PEEK(CH*8+12288+CT)ANDBI(I)
3140 IFLO=BI(I)THENPOKE1024+I+LI,81
3150 IFLO<>BI(I)THENPOKE1024+I+LI,46
3160 NEXTI
3170 LI=LI+40:CT=CT+1:IFCT<8THEN3130
4000 REM DRWCHARLP
4005 MS$="MODIFY CHARACTER":GOSUB7400
4010 SB=0:CT=0:SI=0:CS=PEEK(SM)
4030 CI=32:POKESM,CI:FORI=1TO10:NEXTI
4040 CI=CS:POKESM,CI:FORI=1TO5:NEXTI
4052 JV=PEEK(56320):FR=JVAND16:IFFR=16THEN4056
4053 IFCS=46THENPOKESM,81:CS=81:GOSUB6000:GOTO4056
4054 IFCS=81THENPOKESM,46:CS=46:GOSUB6000:GOTO4056
4056 JV=15-(JVAND15):IFJV=1THENGOSUB5001
4061 IFJV=2THENGOSUB5004
4062 IFJV=4THENGOSUB5006
4063 IFJV=8THENGOSUB5009
4075 GETFU$: IFFU$=CHR$(133)THENGOTO19
4076 IFFU$=CHR$(134)THENGOTO4500
4080 GOTO4030
4100 MS$="SAVE-S[146]CREEN, C[146]HARS, B[146]OTH":GOSUB7400:INPUTS1$:IFS1$=""THEN19
4101 IFS1$="SIGONELLA"THENMS$="HI WILL MCKEE!":GOSUB7400:FORI=1TO1000:NEXTI
4102 IFS1$="S"THEN4109
4103 IFS1$="C"THEN4300
4104 IFS1$="B"THENBO=1:GOTO4109
4105 GOTO19
4109 MS$="SCREEN FILENAME TO SAVE":GOSUB7400
4110 INPUTS1$:IFS1$=""THEN19
4115 IFS1$="SIGONELLA"THENMS$="HI WILL MCKEE!":GOSUB7400:FORI=1TO1000:NEXTI
4120 S2$="@0:"+S1$+".SCR,S,W":S3=1000:S4=51199:GOSUB4160
4121 S2$="@0:"+S1$+".COL,S,W":S3=1000:S4=50175:GOSUB4160
4123 IFBO=1THENBO=0:GOTO4320
4124 RETURN
4160 OPEN8,8,8,S2$:FORI=1TOS3:S5$=CHR$(PEEK(S4+I)):PRINT# 8,S5$;:NEXTI:CLOSE8
4161 RETURN
4165 OPEN8,8,8,S2$:FORI=1TOS3:GET# 8,S5$:S6=ASC(S5$+CHR$(0)):POKES4+I,S6:NEXTI
4166 CLOSE8:RETURN
4200 MS$="LOAD-S[146]CREEN, C[146]HARS, B[146]OTH":GOSUB7400:INPUTS1$:IFS1$=""THEN19
4201 IFS1$="S"THEN4209
4202 IFS1$="C"THEN4400
4203 IFS1$="B"THENBO=1:GOTO4209
4209 MS$="SCREEN FILENAME TO LOAD":GOSUB7400:INPUTS1$:IFS1$=""THEN19
4230 S2$=S1$+".SCR,S,R":S3=1000:S4=51199:GOSUB4165:FORJ=1TO1000:NEXTJ
4231 S2$=S1$+".BGD,S,R":S3=5:S4=53280:GOSUB4165
4232 S2$=S1$+".COL,S,R":S3=1000:S4=50175:GOSUB4165
4233 IFBO=1THENBO=0:GOTO4430
4234 GOTO19
4300 MS$="CHARS FILENAME TO SAVE":GOSUB7400:INPUTS1$:IFS1$=""THEN19
4320 S2$="@0:"+S1$+".CHR,S,W":S3=512:S4=12287:GOSUB4160
4321 S2$="@0:"+S1$+".BGD,S,W":S3=5:S4=53280:GOSUB4160:RETURN
4400 MS$="CHARS FILENAME TO LOAD":GOSUB7400:INPUTS1$:IFS1$=""THEN19
4430 S2$=S1$+".CHR,S,R":S3=512:S4=12287:GOSUB4165:GOTO19
4500 MS$="C[146]LEAR SCREEN, I[146]NVERSE, M[146]OVE CHAR":GOSUB7400
4510 INPUTS4$:IFS4$="I"THEN5100
4520 IFS4$="M"THENMC=1:TC=CH:GOTO30
4530 IFS4$="C"THENPRINT"[147]":SYS49392:GOTO19
4550 RETURN
4600 FORI=0TO7:POKE12288+I+CH*8,PEEK(12288+I+TC*8):NEXTI
4605 MS$="SELECT CHARACTER TO BE MODIFIED":GOSUB7400:RETURN
5000 REM JOYSTICK IN DOT SELECTION
5001 IF SM<1023+80THENRETURN
5002 POKESM,CS:SM=SM-40:CS=PEEK(SM):CT=CT-1:RETURN
5004 IF SM>S2-1+8*40THENRETURN
5005 POKESM,CS:SM=SM+40:CS=PEEK(SM):CT=CT+1:RETURN
5006 IF SB<1THENRETURN
5007 POKESM,CS:SM=SM-1:CS=PEEK(SM):SB=SB-1:SI=SI-1:RETURN
5009 IF SB>6THENRETURN
5010 POKESM,CS:SM=SM+1:CS=PEEK(SM):SB=SB+1:SI=SI+1:RETURN
5099 REM REVERSE
5100 FORI=0TO7:POKE12288+CH*8+I,255-(PEEK(12288+CH*8+I)):NEXTI:GOTO3100
6000 REM MOVE GRID TO CHAR
6025 LO=(CH*8+12288+CT)
6030 IFPEEK(S2+SI+CT*40+40)=81THENPOKELO,PEEK(LO)ORBI(SI)
6040 IFPEEK(S2+SI+CT*40+40)=46THENPOKELO,PEEK(LO)ANDNOTBI(SI)
6080 RETURN
6100 REM CHAR-GRID
6130 LI=40:CT=0:IFLO=BI(SI)THENPOKES2+SI+LI,81
6140 IFLO<>BI(SI)THENPOKES2+SI+LI,46
6150 LO=PEEK(CH*8+12288+CT)ANDBI(SI)
6170 LI=LI+40:CT=CT+1:IFCT<8THEN3120
6180 RETURN
7000 REM SAVECHARS
7030 GOSUB 7400
7040 RETURN
7400 REM MESSAGES
7402 PRINT"":FORI=1TO18:PRINT:NEXTI:PRINT" "
7405 PRINT"":FORI=1TO18:PRINT:NEXTI:PRINTMS$;:RETURN
7500 REM ROUTINE TO GO TO EXT BKGD COL
7510 POKE 53265,PEEK(53265)OR64
7560 RETURN
8000 PRINT"":PRINT"[154]........ [207][183][183][183][183][183][183][183][208] [207][183][183][183][183][183][183][183][208]"
8005 PRINT"........ [180]F1 [170] [180]F2 [170]"
8007 PRINT"........ [180]SW MODE[170] [180] SAVE [170]"
8008 PRINT"........ [204][175][175][175][175][175][175][175][186] [204][175][175][175][175][175][175][175][186]"
8010 PRINT"........ [207][183][183][183][183][183][183][183][208] [207][183][183][183][183][183][183][183][208]"
8015 PRINT"........ [180]F3 [170] [180]F4 [170]"
8017 PRINT"........ [180]SPECIAL[170] [180] LOAD [170]"
8018 PRINT"........ [204][175][175][175][175][175][175][175][186] [204][175][175][175][175][175][175][175][186]"
8020 PRINT" [207][183][183][183][183][183][183][183][208] [207][183][183][183][183][183][183][183][208]"
8025 PRINT" [180]F5 [170] [180]F6 [170]"
8027 PRINT" [180]BGCOLOR[170] [180]CHARLOC[170]"
8028 PRINT" [204][175][175][175][175][175][175][175][186] [204][175][175][175][175][175][175][175][186]"
8030 PRINT" [207][183][183][183][183][183][183][183][208] [207][183][183][183][183][183][183][183][208]"
8035 PRINT" [180]F7 [170] [180]F8 [170]"
8037 PRINT" [180]FGCOLOR[170] [180] [170]"
8038 PRINT" [204][175][175][175][175][175][175][175][186] [204][175][175][175][175][175][175][175][186]"
8040 PRINT"[152]"
8050 L1$="[152][192] [193] [194] [195] [196] [197] [198] [199] [200] [201] [202] [203] [204] [205] [206] [207] [208] [209] [210] [211]"
8051 L2$="[165] [213] [214] [215] [216] [217] [218] [219] [220] [221] [255] [223] [160] [161] [162] [163] [164] [165] [166] [167]"
8052 L3$="[152][168] [169] [170] [171] [172] [173] [174] [175] [176] [177] [178] [179] [180] [181] [182] [183] [184] [185] [186] [187]"
8053 L4$="[188] [189] [190] [191]"
8060 PRINT:PRINT:PRINT:PRINTL1$:PRINTL2$:PRINTL3$:PRINTL4$
8061 POKE53281,0:POKE53280,0
8070 RETURN
8100 REM SCREEN MODE
8106 IFPEEK(50174)=0THENTS=0:GOTO8110
8107 TS=840
8110 S2=11264:POKE53272,(PEEK(53272)AND15)OR176
8120 GOSUB7500
8130 SYS49210:SYS49330:SYS49361
8150 POKE53272,(PEEK(53272)AND240)OR14
8180 PRINT"":FORI=0TO127STEP2:POKEI+S2+TS,I/2:POKE55296+I+TS,1:NEXTI
8190 POKES2+132+TS,96:POKES2+133+TS,96
8191 POKES2+135+TS,160:POKES2+136+TS,160
8192 POKES2+138+TS,224:POKES2+139+TS,224
8200 CH=0:SA=CH:SL=S2+TS
8210 POKESL,46:FORI=1TO5:NEXTI
8215 POKESL,47:FORI=1TO5:NEXTI
8225 POKESL,SA:POKE56320,PEEK(56320)OR16
8230 JV=PEEK(56320)
8240 FR=JVAND16:IFFR<>16THENGOTO 8400
8250 JV=15-(JVAND15)
8260 IFJV=1THENGOSUB3001
8270 IFJV=2THENGOSUB3004
8280 IFJV=4THENGOSUB3006
8290 IFJV=8THENGOSUB3009
8300 GOSUB8495
8350 GOTO8210
8400 REM SCRNMOVCHAR
8401 FORI=1TO200:NEXTI
8405 SL=S2+40*12:BA=PEEK(SL)
8410 CH=32:POKESL,CH:POKESL-S2+55296,CC:CH=33:POKESL,CH:CH=SA:POKESL,CH
8425 C2=SL-S2+55296:JV=PEEK(56320):FR=JVAND16:IFFR<>16THENGOSUB8600
8460 JV=15-(JVAND15):IFJV=1THENGOSUB9004:GOTO8410
8470 IFJV=2THENGOSUB9015:GOTO8410
8480 IFJV=4THENGOSUB9025:GOTO8410
8490 IFJV=8THENGOSUB9035:GOTO8410
8493 GOSUB8495:GOTO8410
8495 GETFU$:IFFU$=""THENRETURN
8496 IFFU$=CHR$(133)THENGOTO19
8497 IFFU$=CHR$(135)THENGOSUB9100
8498 IFFU$=CHR$(136)THENGOSUB9300
8500 IFFU$=CHR$(49)THENPOKE53281,(PEEK(53281)+1)AND15
8501 IFFU$=CHR$(50)THENPOKE53282,(PEEK(53282)+1)AND15
8502 IFFU$=CHR$(51)THENPOKE53283,(PEEK(53283)+1)AND15
8503 IFFU$=CHR$(52)THENPOKE53284,(PEEK(53284)+1)AND15
8550 RETURN
8600 BA=SA:POKESL-S2+50176,CC:OC=CC:POKESL-S2+55296,OC:POKESL-S2+51200,SA:RETURN
9000 REM JOYSCRNPUT
9004 IFTS=0ANDSL<S2+40*5THENPOKESL,BA:GOTO8200
9005 IF SL<S2+40THENRETURN
9010 POKEC2,OC:POKESL,BA:SL=SL-40:BA=PEEK(SL):OC=PEEK(SL-S2+55296):RETURN
9015 IF SL>S2+40*20ANDTS=840THENPOKESL,BA:GOTO8200
9016 IFSL>S2+40*24-1THENRETURN
9020 POKEC2,OC:POKESL,BA:SL=SL+40:BA=PEEK(SL):OC=PEEK(SL-S2+55296):RETURN
9024 IF SL<S2+1ANDTS=840THENRETURN
9025 IF SL<S2+40*4ANDTS=0THENRETURN
9030 POKEC2,OC:POKESL,BA:SL=SL-1:BA=PEEK(SL):OC=PEEK(SL-S2+55296):RETURN
9035 IF SL>S2+40*21-2ANDTS=840THENRETURN
9036 IF SL>S2+40*25-2ANDTS=0THENRETURN
9040 POKEC2,OC:POKESL,BA:SL=SL+1:BA=PEEK(SL):OC=PEEK(SL-S2+55296):RETURN
9100 IF(SAAND192)=192THEN9200
9110 IF(SAAND128)=128THEN9210
9120 IF(SAAND64)=64THEN9220
9130 SA=SAOR64:RETURN
9200 SA=(SAAND63):RETURN
9210 SA=SAOR64:RETURN
9220 SA=(SAAND191)OR128:RETURN
9299 CC=1:GOTO9305
9300 CC=CC+1:IFCC=16THEN9299
9305 POKE50176+SL-11264,CC
9306 POKE55296+SL-11264,CC:OC=CC: RETURN
10000 DATA 128,64,32,16,8,4,2,1
10005 DATA 120,165,1,72,41,251,133,1,169,208,133,3
10010 DATA 169,48,133,5,160,0,132,2,132,4,162,32
10040 DATA 177,2,145,4,200,208,249,230,3,230,5,202
10050 DATA 208,242,104,133,1,173,24,208,41,241,9,12
10060 DATA 141,24,208,88,96
11005 DATA 120,165,1,72,41,251,133,1,169,50,133,3
11010 DATA 169,56,133,5,160,0,132,2,132,4,162,32
11040 DATA 177,2,145,4,200,208,249,230,3,230,5,202
11050 DATA 208,242,104,133,1,173,24,208,41,241,9,12
11060 DATA 141,24,208,88,96
12000 REM CLS 1ST
12005 DATA 120,165,1,72,41,251,133,1,169,4,133,3
12010 DATA 169,44,133,5,160,4,132,4,160,0,132,2,162,4
12040 DATA 177,2,145,4,200,208,249,230,3,230,5,202
12050 DATA 208,242,104,133,1,173,24,208,41,241,9,12
12060 DATA 141,24,208,88,96
13000 REM RESCOL
13005 DATA 169,196,133,3
13010 DATA 169,216,133,5,160,0,132,2,132,4,162,4
13040 DATA 177,2,145,4,200,208,249,230,3,230,5,202,208,242,96
13100 REM RESSCRN
13105 DATA 169,200,133,3
13110 DATA 169,44,133,5,160,0,132,2,132,4,162,4
13140 DATA 177,2,145,4,200,208,249,230,3,230,5,202,208,242,96
13200 REM CLRSCRNBUFF
13205 DATA 169,4,133,3
13210 DATA 169,200,133,5,160,0,132,2,132,4,162,4
13240 DATA 177,2,145,4,200,208,249,230,3,230,5,202,208,242,96
14000 FORI=1TO3:PRINT:NEXTI
14010 POKE53281,0:POKE53280,0:PRINT""
14020 PRINT" SCREENMAKER"
14030 PRINT:PRINT"":PRINT" COPYRIGHT 1985"
14040 PRINT:PRINT" BY"
14050 PRINT:PRINT" MARK E. BOETTCHER"
14060 FORI=1TO40STEP2:POKE50175+40*21+I,12:NEXTI
14061 FORI=1TO40STEP2:POKE50175+40*22+I,1:NEXTI
14062 FORI=1TO40STEP2:POKE50175+40*23+I,12:NEXTI
14063 FORI=1TO10STEP2:POKE50175+40*24+I,1:NEXTI
14065 MS$=" PRESS ANY KEY TO BEGIN":GOSUB 7400
14070 GETWA$:IFWA$=""THEN14070
14080 POKE53281,0:POKE53280,0:POKE53282,2:POKE53283,5:POKE53284,6
14090 RETURN
16000 REM PRINT FRE(0)-(SGN(FRE(0))<0)*65535