REM ***************************************************************
REM
REM Kazuki's キャラクターメーカー
REM vre 0.97 2021.08.22
REM キャラクター番号選択 ok
REM サイズ選択・既存 32*32
REM ペイント完成 反転取り組む
REM ペイントアンドー機能追加
REM ローテイトサブ追加
REM itiouno bug tori
REM ノートにアップできるまでの試みだー
REM dmode [on][off]
REM **************************************************************
REM
!' meno_sab
FUNCTION title2(a)
PRINT "**************************"
PRINT " kazuhito char makere "
PRINT " 32*32ver 100seat "
PRINT " copy right 2021.8.20 "
PRINT " ver 9.03 "
PRINT "**************************"
END FUNCTION
FUNCTION title(void)
PRINT " z char "
PRINT " x color "
PRINT " 0 dot "
PRINT " d draw "
PRINT " → r 右 "
PRINT " ← l 左 "
PRINT " t tool (option) "
PRINT " sc 左右コピー:sh 左右反転"
PRINT " jc 上下コピー:jh 上下反転"
PRINT " - copylight"
END FUNCTION
OPTION BASE 0
DIM ban(100,128,128)
DIM ban_0(80,40)
DIM ban_1(80,40)
DIM ban_2(80,40)
DIM ban_3(80,40)
DIM ban_4(80,40)
DIM ban_5(80,40)
DIM ban_6(80,40)
DIM ban_7(80,40)
DIM l_1(2,2)
DIM l_2(2,2)
DIM memo(3)
DIM memo_text$(10)
LET memo_text$(0)="sex"
DIM color_d(2,2)
SET ECHO "off"
LET draw_mode=0
REM 初期設定
INPUT PROMPT "新規 y:":s$
IF s$="y" THEN
CALL sinki_shori(ban,mi,hx,hy,file_name$)
GOTO 2000
END IF
REM kizon
ASK DIRECTORY s$
FILE GETNAME s2$
PRINT s2$
LET file_name$=s2$
OPEN
INPUT
INPUT
INPUT
PRINT mi;hx;hy
FOR k=0 TO mi-1
FOR y=0 TO hy-1
FOR x=0 TO hx-1
INPUT
LET ban(k,y,x)=a
PRINT ".";
NEXT x
PRINT
NEXT y
NEXT k
CLOSE
LET void=title2(void)
LET void=title (void)
2000
LET a=100
LET b=128
LET c=128
1021
LET wx=hx
LET wy=hy
LET whh=100
! IF hy>hx THEN
! LET whh=wy+5
! ELSE
! LET whh=wx+5
! END IF
SET WINDOW 0,whh,whh,0
FUNCTION prno(void)
SET TEXT HEIGHT 2.7
PLOT TEXT ,AT 5,3:"chrno-"&STR$(cr_no)&" color no-"&STR$(ban(cr_no,y,x) )
END FUNCTION
LET a=prno(o) !***********
LET chaba=2
LET cr_no=0
LET x=0
LET y=0
LET tx=7
LET ty=20
LET lx=3
LET ly=3
LET memo(0)=lx+chaba*hx+1
LET memo(1)=ly+8
LET color_d(1,1)=lx+hx*chaba+2
LET color_d(1,2)=lx+hx*chaba+5
LET color_d(2,1)=ly-.2
LET color_d(2,2)=ly+3
LET c=chaba
LET h=hx
LET h2=hy
LET x1=2
LET x2=lx+(x*h*c)+.3
LET y1=ly
LET y2=ly+(y*h*c)+.3
SET COLOR 8
LET rsidex=x2+0.5
LET rsidey=y1
LET botom_=y2+1
LET rsx=7
LET l_1(1,1)=lx-.2
LET l_1(1,2)=lx+hx*chaba+.2
LET l_1(2,1)=ly-.2
LET l_1(2,2)=ly+hy*chaba+.2
CALL line_s(l_1(1,1),l_1(1,2),l_1(2,1),l_1(2,2))
LET x1=lx+hx/2*chaba
LET y1=ly-.4
LET y2=ly+hy*chaba+.4
CALL line_s(x1,x1,y1,y2)
LET y1=ly+hy/2*chaba
LET x1=lx-.4
LET x2=lx+hx*chaba+0.4
CALL line_s(x1,x2,y1,y1)
LET l_2(1,1)=l_1(1,1)
LET l_2(1,2)=l_2(1,1)+hx
LET l_2(2,1)=l_1(2,2)+1
LET l_2(2,2)=l_2(2,1)+hy
!' MAT PLOT CELLS,IN l_2(1,1),l_2(2,1);l_2(1,2),l_2(2,2) :ban_0
LET x=0
LET y=0
LET void=memo_sub(void)
LET void=oosikaku(void)
FUNCTION oosikaku(a)
FOR iy=0 TO hy-1
FOR ix=0 TO hx-1
CALL shosai_box(lx,ly,ix,iy,chaba,ban(cr_no,iy,ix))
NEXT ix
NEXT iy
END FUNCTION
FUNCTION memo_sub(void) !'******
SET COLOR 1
SET TEXT HEIGHT 3 ! ********いけたか
CALL box_s(memo(0),memo(0)+10,memo(1)-3,memo(1)+10,0)
SET COLOR 15
PLOT TEXT ,AT memo(0),memo(1) :"color "& STR$(cl)
PLOT TEXT ,AT memo(0),memo(1)+5 :"cr_no "& STR$(cr_no)
PLOT TEXT ,AT memo(0),memo(1)+10:"[-]copylight "
PLOT TEXT ,AT memo(0),memo(1)+15:"[+]comand "
SET COLOR 0
PLOT TEXT ,AT memo(0),memo(1)+20:"0"
PLOT TEXT ,AT memo(0),memo(1)+20:"1"
SET COLOR 4
PLOT TEXT ,AT memo(0),memo(1)+20:"draw mode "&str$(draw_mode)
END FUNCTION
LET cl=1
!' LET void=memo_sub(void) *****
CALL dotcolor_sub(color_d,cl)
LET xhogo=x
LET yhogo=y
LET void=main(void)
FUNCTION main(void)
!' LET cl=ban(1,1)
!'CALL nawcolor(cl)
MOUSE POLL mx,my,left,right
DO
CALL juji_m(lx,ly,x,y,chaba,cl)
LET s$=""
DO WHILE s$=""
CALL juji_m(lx,ly,x,y,chaba,cl)
LET s$=inkey_s$(void)
LET no=key_c(s$) !' key select
IF s$="+" THEN LET void=title(void) !' menu
IF s$="-" THEN LET void=title2(void) !' menu sakusha
IF s$="t" THEN !'t ツールズ
CALL tool(lx,ly,x,y,chaba,ban,cl,hx,hy,cr_no,draw_mode,mi)
LET void=oosikaku(void)
LET void=memo_sub(void)
END IF
IF s$="T" THEN
LET a=title(void)
END IF
IF s$="r" OR s$="l" THEN !' r or l ローテト
CALL rotait_sub(ban,hx,hy,cr_no,s$)
LET void=oosikaku(void)
END IF
IF s$="e" THEN !'end
CALL endshori(ban,mi,hx,hy,file_name$)
STOP
END if
IF s$="d" THEN !'ドローモード
LET draw_mode=MOD(draw_mode+1,2)
IF draw_mode=1 THEN
LET ban(cr_no,y,x)=cl
CALL shosai_box(lx,ly,x,y,chaba,cl)
LET a=memo_sub(o)
END IF
END IF
IF s$="x" THEN !'color 表示
call color_dis(void)
INPUT PROMPT "cloor ":cl
CLEAR
SET WINDOW 0,whh,whh,0 ! ******
CALL line_s(l_1(1,1),l_1(1,2),l_1(2,1),l_1(2,2))
LET a=prno(void) !***********
LET void=memo_sub(void) !**********
LET void=oosikaku(void)
LET a=prno(a)
END if
IF s$="z" THEN
CLEAR
CALL chr_hyo(ban,hx,hy)
INPUT PROMPT "cr_no":cr_no
CLEAR
SET WINDOW 0,whh,whh,0 ! ******
CALL line_s(l_1(1,1),l_1(1,2),l_1(2,1),l_1(2,2)) ! *****
LET void=memo_sub(void)
LET void=oosikaku(void)
END IF
IF s$="s" THEN
LET cl=ban(cr_no,y,x)
LET void=memo_sub(void)
END IF
IF no=0 THEN LET s$=""
GOTO 20
!' IF s$="" AND no=0 THEN
MOUSE POLL x0,y0,left,right
PRINT x0;y0;left;right
IF x0<mx THEN
LET s$="4"
LET x=x-1
END IF
IF x0>mx THEN
LET x=x+1
LET s$="6"
END IF
IF y0<my THEN
LET s$="8"
LET y=y-1
END IF
IF y0>my THEN
LET s$="2"
LET y=y+1
END IF
LET mx=x0
LET my=my
20
LOOP
!' PRINT x;y;left;right
!'
CALL mode_key(x,y,no)
IF 0>x THEN LET x=0
IF hx-1<x THEN LET x=hx-1
IF 0>y THEN LET y=0
IF hy-1<y THEN LET y=hy-1
!' PRINT x;y *****
IF x<>xhogo or y<>yhogo THEN
LET c=ban(cr_no,yhogo,xhogo)
CALL shosai_box(lx,ly,xhogo,yhogo,chaba,c)
!' CALL shosai_box(lx,ly,xhogo,yhogo,chaba,cl)
LET xhogo=x
LET yhogo=y
IF draw_mode=1 THEN
LET ban(cr_no,y,x)=cl
CALL shosai_box(lx,ly,x,y,chaba,cl)
END if
END IF
IF s$="0" THEN
!' SET COLOR cl
LET ban(cr_no,y,x)=cl
CALL shosai_box(lx,ly,x,y,chaba,cl)
LET void=memo_sub(void)
!' SET POINT STYLE 7
!' PLOT POINTS :rsidex+(x-1)*.1 ,rsidey+5+(y-1)*.1
call timer_s(500)
end if
LET s$=""
LOOP
END FUNCTION
END
EXTERNAL SUB clr_s(ban(,,))
FOR y=1 TO 32
FOR x=1 TO 32
LET ban(cr_no,y,x)=0
NEXT x
NEXT y
END SUB
EXTERNAL SUB tool(lx,ly,x,y,chaba,ban(,,),cl,hx,hy,cr_no,draw_mode,mi)
INPUT PROMPT "*cls:sc:jc:sh:jh:n:ch:p:t:tr:cd":t$
IF t$="cls" THEN CALL cls_s(ban,hx,hy,cr_no)
IF t$="jc" THEN CALL hanten2(ban,hx,hy,cr_no)
!' IF t$="n" THEN CALL cr_no_input(cr_no,mi)
IF t$="ch" THEN CALL color_change(ban,hx,hy,cr_no)
IF t$="sc" THEN CALL hanten(ban,hx,hy,cr_no)
IF t$="sh" THEN CALL sayu_hanten(ban,hx,hy,cr_no)
IF t$="jh" THEN CALL jouge_hanten(ban,hx,hy,cr_no)
IF t$="tr" OR t$="t" THEN
IF t$="tr" THEN
LET f=0
ELSE
LET f=1
END IF
CALL trans(ban,hx,hy,mi,f)
END IF
IF t$="p" THEN
CALL paint_a(ban,cr_no,hx,hy,x,y,cl,lx,ly,chaba)
LET void=oosikaku
END IF
LET t$=""
END SUB
EXTERNAL SUB cr_no_input(cr_no,mi)
INPUT PROMPT "cr_no をどうぞ":n
IF 0<=n AND n<mi THEN
LET cr_no=n
END IF
END SUB
EXTERNAL SUB color_change(ban(,,),hx,hy,cr_no)
!' *** カラー選択すること
INPUT PROMPT "color no ?":c1
INPUT PROMPT "color no ?":c2
FOR y=0 TO hy-1
FOR x=0 TO hx-1
IF ban(cr_no,y,x)=c1 THEN
LET ban(cr_no,y,x)=c2
END IF
NEXT x
NEXT y
END SUB
EXTERNAL SUB rotait_sub(ban(,,),hx,hy,cr_no,s$)
!' ローテ右左
IF s$="r" THEN
FOR y=0 TO hy-1
LET w1=ban(cr_no,y,hx-1)
FOR x=hx-1 TO 1 STEP -1
LET ban(cr_no,y,x)=ban(cr_no,y,x-1)
NEXT x
LET ban(cr_no,y,0)=w1
NEXT y
END IF
IF s$="l" THEN
FOR y=0 TO hy-1
LET w1=ban(cr_no,y,0)
FOR x=0 TO hx-2 STEP 1
LET ban(cr_no,y,x)=ban(cr_no,y,x+1)
NEXT x
LET ban(cr_no,y,hx-1)=w1
NEXT y
END IF
END SUB
EXTERNAL SUB trans(ban(,,),hx,hy,mi,f)
!' ***
INPUT PROMPT "c1":c1
INPUT PROMPT "c1":c2
LET f0=0
FOR y=0 TO hy-1
FOR x=0 TO hx-1
IF ban(c2,y,x)<>0 THEN LET f0=1
NEXT x
NEXT y
IF (f0=0 AND f=0) OR f=1 THEN
FOR y=0 TO hy-1
FOR x=0 TO hx-1
LET w=ban(c2,y,x)
LET ban(c2,y,x)=ban(c1,y,x)
IF f=1 THEN
LET ban(c1,y,x)=w
END IF
NEXT x
NEXT y
END IF
END SUB
EXTERNAL SUB hanten(ban(,,),hx,hy,cr_no)
FOR y=0 TO hy-1
FOR x=0 TO INT( hx/2)-1
LET ban(cr_no,y,hx-1-x)=ban(cr_no,y,x)
NEXT x
NEXT y
END SUB
EXTERNAL SUB hanten2(ban(,,),hx,hy,cr_no)
!'上下複写?
!'cmd jc ***
FOR x=0 TO hx-1
FOR y=0 TO INT( hy/2)-1
LET ban(cr_no,hy-1-y,x)=ban(cr_no,y,x)
NEXT y
NEXT x
END SUB
EXTERNAL SUB jouge_hanten(ban(,,),hx,hy,cr_no)
!' 上下反転
!' cmd jh
FOR x=0 TO hx-1
FOR y=0 TO hy/2-1
LET w=ban(cr_no,hy-1-y,x)
LET ban(cr_no,hy-y-1,x)=ban(cr_no,y,x)
LET ban(cr_no,y,x)=w
NEXT y
NEXT x
END SUB
EXTERNAL SUB sayu_hanten(ban(,,),hx,hy,cr_no)
!' 左右反転
!' cmd sh
FOR y=0 TO hy-1
FOR x=0 TO hx/2-1
LET w=ban(cr_no,y,hx-1-x)
LET ban(cr_no,y,hx-1-x)=ban(cr_no,y,x)
LET ban(cr_no,y,x)=w
NEXT x
NEXT y
END SUB
EXTERNAL SUB mode_key(x,y,no)
select CASE no
CASE 4
LET x=x-1
case 6
LET x=x+1
case 2
LET y=y+1
case 8
LET y=y-1
case 1
LET x=x-1
LET y=y+1
case 3
LET x=x+1
LET y=y+1
case 7
LET x=x-1
LET y=y-1
case 1
LET x=x-1
LET y=y+1
CASE 9
LET y=y-1
LET x=x+1
case else
END SELECT
end sub
EXTERNAL SUB endshori(ban(,,),mi,hx,hy,file_name$)
ASK DIRECTORY s$
OPEN #1: NAME file_name$
ERASE #1
PRINT #1:mi
PRINT #1:hx
PRINT #1:hy
FOR k=0 TO mi-1
FOR y=0 TO hy-1
LET s$=STR$(ban(k,y,1))
FOR x=0 TO hx-1
PRINT #1: ban(k,y,x)
PRINT USING " ##": ban(k,y,x);
NEXT x
PRINT
NEXT y
NEXT k
PRINT #1:0
CLOSE #1
END SUB
EXTERNAL SUB cls_s(ban(,,),hx,hy,cr_no)
!' クリアルーチン
!'cmd cls
FOR y=0 TO hy-1
FOR x=0 TO hx-1
LET ban(cr_no,y,x)=0
NEXT x
NEXT y
END SUB
EXTERNAL SUB sinki_shori(ban(,,),mi,hx,hy,file_name$)
!'shiki file 32*32
LET hx=32
LET hy=32
PRINT "hx=";hx;":hy=";hy
LET mi=100
PRINT "枚数:";mi
INPUT prompt "ファイルネーム":f_name$
ASK DIRECTORY s$
LET file_name$=s$&"\"&f_name$&".txt"
PRINT s$&"\"&f_name$&".txt"
OPEN #1: NAME file_name$
ERASE #1
PRINT #1:mi
PRINT #1:hx
PRINT #1:hy
FOR k=1 TO mi-1
FOR y=1 TO hy-1
FOR x=1 TO hx-1
PRINT #1: ban(k,y,x)
PRINT USING "
NEXT x
PRINT
NEXT y
NEXT k
PRINT
CLOSE
END SUB
EXTERNAL FUNCTION inkey_s$(void)
CHARACTER INPUT nowait:s$
LET inkey_s$=s$
END FUNCTION
EXTERNAL FUNCTION key_c(s$)
!'1-9:1-9
!'0:10
!'e:11
LET no=POS("1234567890e.ctd 0:クリア",s$)
LET key_c=no
END FUNCTION
EXTERNAL SUB timer_s(回数)
FOR i0=1 TO 回数
LET a=a^a^a^a^a^a
NEXT i0
END SUB
EXTERNAL SUB box_s(x1,x2,y1,y2,cl)
SET COLOR cl
GRAPH AREA :x1,y1;x2,y1;x2,y2;x1,y2;x1,y1
END SUB
EXTERNAL SUB dotcolor_sub(color_d(,),cl)
LET x1=color_d(1,1)
LET x2=color_d(1,2)
LET y1=color_d(2,1)
LET y2=color_d(2,2)
CALL box_s(x1,x2,y1,y2,cl)
END SUB
EXTERNAL SUB juji_m(lx,ly,x,y,chaba,cl)
CALL juji(lx,ly,x,y,chaba,0) !'25=color
CALL timer_s(20)
CALL juji(lx,ly,x,y,chaba,1)
CALL timer_s(20)
END SUB
EXTERNAL SUB juji(lx,ly,x,y,chaba,c)
SET COLOR c
LET h2=chaba/2
LET x1=lx+((x)*chaba )
LET x2=lx+((x)*chaba+chaba )
LET y1=ly+((y)*chaba )
LET y2=ly+((y)*chaba+chaba )
PLOT LINES :x1+h2,y1;x1+h2,y2
PLOT LINES :x1,y1+h2;x2,y1+h2
END SUB
EXTERNAL SUB shosai_box(lx,ly,x,y,chaba,cl)
SET COLOR cl
LET x1=lx+(x*chaba )
LET x2=lx+(x*chaba+chaba )
LET y1=ly+(y*chaba )
LET y2=ly+(y*chaba+chaba )
CALL box_s(x1,x2,y1,y2,cl)
END SUB
EXTERNAL SUB line_s(x1,x2,y1,y2)
PLOT LINES :x1,y1;x2,y1;x2,y2;x1,y2;x1,y1
END SUB
EXTERNAL SUB color_dis(void)
!'
!' color 表示 0-255
!'
CLEAR
LET sw_=120
SET WINDOW 0,sw_,sw_,0
OPTION BASE 0
DIM lxy(2)
LET lxy(1)=5
LET lxy(2)=5
DIM xy(2)
LET xy(1)=7
LET xy(2)=7
DIM iti(2)
LET iti(1)=3
LET iti(2)=3
DIM step_(2)
LET step_(1)=7
LET step_(2)=7
LET c=0
LET yc=0
FOR y=0 TO 15
FOR x=0 TO 15
LET y1=y*xy(1)
LET y2=y*xy(1)+xy(1)-1
LET x1=x*xy(2)
LET x2=x*xy(2)+xy(2)-1
CALL xyh(lxy,x1,x2,y1,y2)
CALL boxx(x1,x2,y1,y2,c)
LET c=c+1
NEXT x
!' LET y1=y1+2
NEXT y
LET c=0
FOR y=0 TO 15
FOR x=0 TO 15
LET y1=y*xy(1)
LET y2=y*xy(1)+xy(1)-1
LET x1=x*xy(2)
LET x2=x*xy(2)+xy(2)-1
CALL xyh(lxy,x1,x2,y1,y2)
CALL moji(x1,y1,c)
LET c=c+1
NEXT x
NEXT y
END SUB
EXTERNAL SUB xyh(lxy(),x1,x2,y1,y2)
LET x1=x1+lxy(2)
LET x2=x2+lxy(2)
LET y1=y1+lxy(1)
LET y2=y2+lxy(1)
END SUB
EXTERNAL SUB boxx(x1,x2,y1,y2,c)
SET COLOR c
PLOT AREA :x1,y1;x2,y1;x2,y2;x1,y2;x1,y1
END SUB
EXTERNAL SUB moji(x1,y1,cno)
SET TEXT HEIGHT 2.5
SET COLOR 1
LET s$= right$(" "&STR$(cno),3)
PLOT TEXT ,AT x1,y1+3.0:s$
END SUB
EXTERNAL SUB paint_a(ban(,,),cr_no,hx,hy,x,y,cl,lx,ly,chaba)
OPTION BASE 0
DIM pw(hy,hx)
DIM pw2(hy,hx)
LET x1=x
LET y1=y
LET w1=x
LET w2=y
CALL ban_copy(pw,pw2,ban,cr_no,3,hx,hy)
LET c0=cl
CALL paint_(pw,hx,hy,x1,y1,c0,lx,ly,chaba)
LET s$=""
DO WHILE s$<>"y" AND s$<>"n"
INPUT PROMPT "よろしいですか":s$
LOOP
IF s$="y" THEN CALL ban_copy(pw,pw2,ban,cr_no,4,hx,hy)
IF s$="n" THEN CALL ban_copy(pw,pw2,ban,cr_no,8,hx,hy)
!'データ戻し
LET x=w1
LET y=w2
END SUB
EXTERNAL SUB ban_copy(pw(,),pw2(,),ban(,,),cr_no,f,hx,hy)
FOR y=0 TO hy-1
FOR x=0 TO hx-1
IF MOD(f,2)=1 THEN LET pw(y,x) =ban(cr_no,y,x)
IF INT(f/2)=1 THEN LET pw2(y,x) =ban(cr_no,y,x)
IF INT(f/4)=1 THEN LET ban(cr_no,y,x)=pw(y,x)
IF INT(f/8)=1 THEN LET ban(cr_no,y,x)=pw2(y,x)
NEXT x
NEXT y
END SUB
EXTERNAL SUB paint_(pw(,),hx,hy,x1,y1,c0,lx,ly,chaba)
OPTION BASE 0
DIM xy(320000,2)
LET ss=1 !'xy counter
LET c1=pw(y1,x1)
PRINT x1;y1;c0,c1
CALL paint_sub_nuru(pw,xy,x1,y1,c0,c1,ss,hx,hy,lx,ly,chaba)
LET c=1
DO WHILE c<>ss
LET x1=xy(c,0)
LET y1=xy(c,1)
CALL paint_sub_nuru(pw,xy,x1,y1,c0,c1,ss,hx,hy,lx,ly,chaba)
LET c=c+1
LOOP
END SUB
EXTERNAL SUB paint_sub_nuru(pw(,),xy(,),x1,y1,c0,c1,ss,hx,hy,lx,ly,chaba)
LET hogox=x1
FOR s=-1 TO 1 STEP 2
DO WHILE pw(y1,x1)=c1 AND x1=>0 AND x1<hx
CALL jouge(pw,xy,x1,y1,ss,c1,hy)
LET pw(y1,x1)=c0
LET x=x1
LET y=y1
CALL shosai_box(lx,ly,x,y,chaba,c0)
!' CALL timer_s(2500)
IF x1+s<>-1 AND x1+s<hx THEN LET x1=x1+s
LOOP
LET x1=hogox+1
NEXT s
END SUB
EXTERNAL SUB jouge(pw(,),xy(,),x1,y1,ss,c1,hy)
FOR s=-1 TO 1 STEP 2
IF y1+s=>0 AND y1+s<hy THEN
IF pw(y1+s,x1)=c1 THEN
LET xy(ss,0)=x1
LET xy(ss,1)=y1+s
LET ss=ss+1
PRINT x1;y1+s
END IF
END IF
NEXT s
END SUB
EXTERNAL SUB chr_hyo(ban(,,),hx,hy)
SET WINDOW 0,hx*11,hx*11,0
LET no=0
IF hx=256 THEN
LET mx=4
ELSE
LET mx=9
END IF
FOR y=0 TO mx
FOR x=0 TO mx
LET x1=x*hx
LET y1=y*hy
SET COLOR 3
SET TEXT HEIGHT hy/2
CALL chr_dis(ban,hx,hy,no,x1,y1)
PLOT TEXT ,AT x1,y1+hy:STR$(no)
LET no=no+1
NEXT x
NEXT y
END SUB
EXTERNAL SUB chr_dis(ban(,,),hx,hy,no,x1,y1)
OPTION BASE 0
DIM chr_(hx,hy)
FOR y=0 TO hy-1
FOR x=0 TO hx-1
LET chr_(x,y)=ban(no,y,x)
NEXT x
NEXT y
MAT PLOT CELLS,IN x1,y1;x1+hx-1,y1+hy-1:chr_
!' PRINT hx;hy
!' stop
END SUB