home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 1
/
FREEWARE.BIN
/
basic
/
itemedit
/
itemedit.bas
next >
Wrap
BASIC Source File
|
1989-10-17
|
6KB
|
154 lines
10 '********************************************************************
20 '* *
30 '* アイテムパターン編集ツール V1.0 by N.Watanabe *
40 '* *
50 '* *
60 '* 機能 : TOWNS-MENUの『表示-アイテム表示』で表示されるアイ *
70 '* コンをエディトするツールです。 *
80 '* *
90 '* 使用方法: TOWNSシステムソフトウェアCD中の『TMENU.ICN』をFPDに *
100 '* コピーし、本ツール動作時のカレントディレクトリに置い *
110 '* て使って下さい。 *
120 '* 編集したパターンは『スペシャル-アイテム登録』で使用 *
130 '* することがてきます。 *
140 '* *
150 '* 注意!! : にわか作りのため少々バグや仕様不備があるかと思います。 *
160 '* お気付きの点はメールにてお願いします。 *
170 '* なお、『TMENU.ICN』のファイルフォーマットについては当 *
180 '* 方の独自解析によるものですので、メーカーさんに対する *
190 '* 問い合わせ等は御遠慮願います。 *
200 '* *
210 '********************************************************************
220 DIM FD&(32),P%(32*32),FC&(128,32):CLS:N$=CHR$(0)
230 OPEN "I",#1,"TMENU.ICN"
240 FOR I=1 TO 128
250 F$=INPUT$(128,#1):IF F$=STRING$(128,&H0) THEN 310
260 FOR L%=0 TO 31
270 FD&(L%)=CVL(MID$(F$,4,1)+MID$(F$,3,1)+MID$(F$,2,1)+MID$(F$,1,1))
280 F$=MID$(F$,5,128)
290 FC&(I,L%)=FD&(L%)
300 NEXT L%
310 F$=INPUT$(128,1):NEXT I:CLOSE
320 CN=0:FOR X=0 TO 600 STEP 40
330 FOR Y=0 TO 40*7 STEP 40
340 LINE (X,Y)-(X+33,Y+33),PSET,1,B:NEXT:NEXT
350 FOR I=1 TO 128
360 XC%=(CN MOD 16)*40:YC%=(CN \ 16)*40:CN=CN+1
370 FOR L%=0 TO 31
380 FD&(L%)=FC&(I,L%)
390 NEXT L%
400 PUT@ (XC%+1,YC%+1)-(XC%+32,YC%+32),FD&,PSET
410 NEXT I
420 LOCATE 0,20:PRINT "編集するアイテムパターンを選んで下さい"
430 LOCATE 0,22:PRINT "終了"
440 LINE (0,22*19-2)-(4*8,23*19),PSET,1,B
450 MOUSE 0
460 MOUSE 1,310,20*16,1
470 IF MOUSE(2,0)=-1 THEN 470
480 IF MOUSE(2,0)=0 THEN 480
490 X=MOUSE(4,0):Y=MOUSE(5,0)
500 IF (X>=0 AND X<=4*8)AND(Y>=22*19-2 AND Y<=23*19) THEN 530
510 X=INT(X/40):Y=INT(Y/40)
520 IF Y>7 THEN 470 ELSE 540
530 CLOSE:SYSTEM
540 LINE (X*40+1,Y*40+1)-(X*40+32,Y*40+32),XOR,1,BF
550 REC=X+Y*16+1
560 OPEN "R",1,"(256)TMENU.ICN"
570 FIELD #1,128 AS F$,128 AS DMY$
580 GET #1,REC:FF$=F$
590 CLS
600 FOR X=0 TO 320 STEP 10:CONNECT (X,0)-(X,320),1:CONNECT (0,X)-(320,X),1:NEXT
610 CN=0
620 FOR I=1 TO 128
630 A=ASC(MID$(FF$,I,1))
640 FOR B=1 TO 8
650 X=(CN MOD 32)*10:Y=(CN \ 32)*10
660 IF (A AND &H80)=&H80 THEN LINE (X,Y)-(X+10,Y+10),PSET,1,BF,7:P%(CN)=1 ELSE P%(CN)=0
670 CN=CN+1:A=A*2
680 NEXT:NEXT
690 FOR L%=0 TO 31
700 FD&(L%)=CVL(MID$(FF$,4,1)+MID$(FF$,3,1)+MID$(FF$,2,1)+MID$(FF$,1,1))
710 FF$=MID$(FF$,5,128)
720 NEXT L%
730 LOCATE 44,0:PRINT "実物大"
740 PUT@ (360,30)-(391,61),FD&,PSET
750 RESTORE 810:FOR Y=0 TO 2
760 LINE (500,Y*30)-(639,Y*30+30),PSET,4,BF,1
770 READ A$
780 SYMBOL (525,Y*30+10),A$,2,1,0
790 SYMBOL (521,Y*30+7),A$,2,1,7
800 NEXT
810 DATA "保 存","終 了","反 転"
820 CIRCLE (570,300),61,1,,,,F,,1
830 CIRCLE (570,300),38,4,,,,F,,4
840 CIRCLE (570,300),61,4,,.9!,.6!,F,,4
850 CIRCLE (570,300),61,4,,.74!,.76!,F,,4
860 CIRCLE (570,300),35,0,,,,F,,0
870 CIRCLE (570,300),34,4,,,,F,,4
880 SYMBOL (544,301),"FUJITSU",1,1,0
890 SYMBOL (543,300),"FUJITSU",1,1,4
900 SYMBOL (538,249),"ON",1,1,7
910 SYMBOL (581,249),"OFF",1,1,7
920 IF MOUSE(2,0)=-1 THEN 950
930 IF MOUSE(2,1)=-1 THEN 1010
940 GOTO 920
950 X=INT(MOUSE(0)/10):Y=INT(MOUSE(1)/10)
960 IF (X>31) OR (Y>31) THEN 1070
970 I=Y*32+X
980 IF P%(I)=1 THEN 920
990 P%(I)=1:LINE (X*10,Y*10)-(X*10+10,Y*10+10),PSET,1,BF,7:PSET (X+360,Y+30)
1000 GOTO 920
1010 X=INT(MOUSE(0)/10):Y=INT(MOUSE(1)/10)
1020 IF (X>31) OR (Y>31) THEN 920
1030 I=Y*32+X
1040 IF P%(I)=0 THEN 920
1050 P%(I)=0:LINE (X*10,Y*10)-(X*10+10,Y*10+10),PSET,1,BF,0:PRESET (X+360,Y+30)
1060 GOTO 920
1070 IF X<49 THEN 920
1080 IF Y>3*3 THEN 920
1090 IF Y>3*2 THEN 1120
1100 IF Y>3*1 THEN CLS:CLOSE:GOTO 320
1110 GOTO 1170
1120 FOR X=0 TO 31
1130 FOR Y=0 TO 31
1140 IF P%(Y*32+X)=0 THEN P%(Y*32+X)=1:LINE (X*10,Y*10)-(X*10+10,Y*10+10),PSET,1,BF,7:PSET (X+360,Y+30) ELSE P%(Y*32+X)=0:LINE (X*10,Y*10)-(X*10+10,Y*10+10),PSET,1,BF,0:PRESET (X+360,Y+30)
1150 NEXT:NEXT
1160 GOTO 920
1170 Q$="":I=0:CLS
1180 A=0:FOR C=1 TO 8
1190 A=A*2+P%(I)
1200 I=I+1
1210 NEXT
1220 Q$=Q$+CHR$(A):IF I<>1024 THEN 1180
1230 LSET F$=Q$
1240 CN=0:FOR X=0 TO 600 STEP 40
1250 FOR Y=0 TO 40*7 STEP 40
1260 LINE (X,Y)-(X+33,Y+33),PSET,1,B:NEXT:NEXT
1270 FOR I=1 TO 128
1280 XC%=(CN MOD 16)*40:YC%=(CN \ 16)*40:CN=CN+1
1290 FOR L%=0 TO 31
1300 FD&(L%)=FC&(I,L%)
1310 NEXT L%
1320 PUT@ (XC%+1,YC%+1)-(XC%+32,YC%+32),FD&,PSET
1330 NEXT I
1340 LOCATE 0,20:PRINT "登録する場所を選んで下さい"
1350 REC=X+Y*16+1
1360 FOR L%=0 TO 31
1370 FD&(L%)=CVL(MID$(Q$,4,1)+MID$(Q$,3,1)+MID$(Q$,2,1)+MID$(Q$,1,1))
1380 Q$=MID$(Q$,5,128)
1390 NEXT L%
1400 PUT@ (10*40+1,10*40+1)-(10*40+32,10*40+32),FD&,PSET
1410 MOUSE 1,310,20*16,1
1420 IF MOUSE(2,0)=-1 THEN 1420
1430 IF MOUSE(2,0)=0 THEN 1430
1440 X=MOUSE(4,0):Y=MOUSE(5,0)
1450 X=INT(X/40):Y=INT(Y/40)
1460 IF Y>7 THEN 1420
1470 REC=X+Y*16+1
1480 PUT #1,REC
1490 LINE (X*40+1,Y*40+1)-(X*40+32,Y*40+32),PSET,1,BF,0
1500 PUT@ (X*40+1,Y*40+1)-(X*40+32,Y*40+32),FD&,PSET
1510 LINE (10*40+1,10*40+1)-(10*40+32,10*40+32),PSET,0,BF,0
1520 FOR I=0 TO 32:FC&(REC,I)=FD&(I):NEXT
1530 CLOSE:GOTO 420