home *** CD-ROM | disk | FTP | other *** search
/ Carousel Volume 2 #1 / carousel.iso / comdore / 64utils / chargen (.txt) < prev    next >
Commodore BASIC  |  1988-11-02  |  9KB  |  283 lines

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