-
Notifications
You must be signed in to change notification settings - Fork 1
/
chars-r38.bas
28 lines (28 loc) · 1.01 KB
/
chars-r38.bas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
1 REM HUGE CHARACTER DEMO (C) 2022 MIKAEL O. BONNIER, LUND, SWEDEN. LIC. GPLV3.
2 GOTO 1000:REM COMMANDER X16 R38
4 F=F+I:F=F-I6*INT(F/I6):IF F=6 OR F=. OR F=11 OR F=9 THEN COLOR 7:RETURN
5 COLOR F:RETURN
6 POKE X,R-1:POKE Y,C-1:POKE SU,.:SYS PLOT:RETURN
1000 I=1:I6=16:E=8:Z=256:A=780:X=A+I:Y=X+I:SU=Y+I:W=$7E:W1=W+I:FETCH=$FF74:B=6
1001 PLOT=$FFF0
1002 DIM C$(I):C$(.)=" ":C$(I)=CHR$($12)+" "+CHR$($92)
1004 F=RND(-TI):F=INT(I6*RND(I)):GOSUB 4:CLS
1010 M=56:MC=80:T=$D17F
1014 R=I:C=I:S=.
1020 FOR P=$C000 TO T
1030 H=INT(P/Z):L=P-Z*H
1040 POKE W,L:POKE W1,H:POKE A,W:POKE X,B:POKE Y,.:SYS FETCH:G=PEEK(A)
1050 REM G$=BIN$(G)
1060 REM FOR N=I TO E
1070 REM V$=V$+C$(ABS(MID$(G$,N,I)="1"))
1110 REM NEXT
1114 D=Z:FOR N=. TO 6:D=D/2:H=INT(G/D):V$=V$+C$(H):G=G-H*D:NEXT N:V$=V$+C$(G)
1116 GOSUB 6:REM LOCATE R,C
1120 PRINT V$
1130 V$=""
1132 S=S+I:R=R+I
1134 IF S=E THEN GOSUB 4:S=.:R=R-E:C=C+E:IF C>MC THEN C=I:R=R+E:IF R>M THEN R=I
1140 NEXT
1150 SCREEN $FF:PRINT CHR$(7)
1160 IF M=56 THEN M=24:MC=40:T=$D067:GOTO 1020
1170 GOTO 1010