10 DEFUSR=&H156:'12/4/85
995 IF FRE(0)>10000 THEN SA=&HC100 ELSE SA=&HE100
996 CLEAR 200,SA
997 DEFINTA-Z
998 IF FRE(0)>5000 THEN SA=&HC100 ELSE SA=&HE100
1000 'DATA SET PROGRAM BY M&N&K
1065 SCREEN 1:COLOR 15,1,7:KEY OFF
1080 DIM TV(36),TV$(36),AV(23),AV$(23),FRAME(37),C(15)
1090 GOSUB 1200
1100 KEY1,CHR$(22):KEY2,CHR$(23):KEY3,CHR$(20):KEY4,CHR$(25):KEY5,CHR$(26)
1110 GOSUB 1600
1120 GOSUB 1420
1130 ON ERROR GOTO 20000
1190 GOTO  1800
1200 '
1230 'READ TV DATA
1240 FOR I=0 TO 35:READ TV$(I):NEXT
1250 FOR I=0 TO 35:READ TV(I):NEXT
1260 'READ AV DATA
1270 FOR I=0 TO 22:READ AV$(I):NEXT
1280 FOR I=0 TO 22:READ AV(I):NEXT
1300 FOR I=0 TO 36 :READ FRAME(I):NEXT
1310 TV=25:AV=9:FRAME=1
1320 CO=1:N=1
1330 CLS
1340 RETURN
1400  CLS:LOCATE 1,1:IF PC=0 THEN PRINT"CLEAR DATA?(y/n)" ELSE PRINT" - .?(y/n)"
1405 KY$=INKEY$: IF KY$="" THEN 1405:PRINTKY$
1410 IF KY$="Y" OR KY$="y" THEN 1420 ELSE 1490
1420 LOCATE 1,3:IF PC=0 THENPRINT"WAIT" ELSEPRINT"׸ ޻ "
1480 FOR I=0 TO 2066 :POKE SA+I,&HFF:NEXT
1485 FOR I=0 TO 2460:POKE SA+I+2067,&H20:NEXT
1490 RETURN
1600 CLS
1605 LOCATE 12,16:PRINT"  "
1610 LOCATE 1,15:PRINT"  [F1] --- JAPANESE"
1620 LOCATE 1,18:PRINT"  [F5] --- ENGLISH"
1630 KY$=INKEY$:IF KY$="" THEN 1630
1640  IF KY$=CHR$(22) THEN PC=1:GOTO 1660
1650  IF KY$=CHR$(26) THEN PC=0 ELSE 1630
1660 RETURN
1700 'DISP
1710 LOCATE 1,2:PRINT USING "-Я: ###";145-NK;
1715 LOCATE 1,3:PRINT USING "-   :####";COUNT;
1720 LOCATE 1,4:PRINT USING "-    :  ##";FRAME;
1725 LOCATE 1,6:PRINT USING "TV      : @  @";TV$(TV);
1730 LOCATE 1,7:PRINT USING "AV      : @  @";AV$(AV);
1740 LOCATE 1,10:PRINT USING ":@             @";CM$;
1745 LOCATE 1,16:PRINT"  [F2] ---- ݺ   ";
1750 LOCATE 1,17:PRINT"  [F3] ---        ";
1755 LOCATE 1,15:PRINT"  [F1] ---- ݺ    ";
1760 LOCATE 1,18:PRINT"  [F4] ----     ";
1765 LOCATE 1,19:PRINT"  [F5] ---- -"
1767 IF FULL=0 OR NF=1 THEN1770
1768 LOCATE 1,22:PRINT"  - FULL            ";:GOTO2000
1770 LOCATE 1,22:PRINT"[SPACE]---- ";
1780 GOTO 2000
1800 CLS:JJ=USR (0)
1810 'DISP
1812 IFNF=1 THENNK=NN ELSE NK=N
1813 IF FULL=1 THEN NK=145
1815 IF PC=1 THEN 1700
1825 LOCATE 1,2:PRINT USING "MEMORY LIMIT: ###";145-NK;
1830 LOCATE 1,3:PRINT USING "COUNTER     :####";COUNT;
1840 LOCATE 1,4:PRINT USING "FRAME       :  ##";FRAME;
1860 LOCATE 1,6:PRINT "TV          : ";TV$(TV);
1870 LOCATE 1,7:PRINT "AV          : ";AV$(AV);
1940 LOCATE 1,10:PRINT "COMMENT:";CM$;
1950 LOCATE 1,16:PRINT"  [F2] ---FRAME SET";
1960 LOCATE 1,17:PRINT"  [F3] ---COMMENT SET    ";
1970 LOCATE 1,15:PRINT"  [F1] ---COUNTER SET";
1980 LOCATE 1,18:PRINT"  [F4] ---DATA CORRECTION   ";
1990 LOCATE 1,19:PRINT"  [F5] ---DATA SAVE"
1992 IF FULL=0 OR NF=1 THEN 1995
1993 LOCATE 1,22:PRINT"   MEMORY FULL       ";:GOTO2000
1995 LOCATE 1,22:PRINT"[SPACE]---DATA SET";
2000 'KEY BOARD INPUT
2010 KY$=INKEY$:ST=STICK(0):IF KY$="" THEN 2010
2040 IF ST=7 THEN GOSUB 2360
2050 IF ST=3 THEN GOSUB 2390
2060 IF ST=5 THEN GOSUB 2420
2070 IF ST=1 THEN GOSUB 2450
2140 IF KY$=CHR$(26) THEN GOSUB 4000
2150 IF KY$=CHR$(23) THEN GOSUB 3000
2160 IF KY$=CHR$(20) THEN GOSUB 7000
2170 IF KY$=CHR$(22) THEN GOSUB 5500
2180 IF KY$=CHR$(25) THEN GOSUB 7500
2190 IF KY$=" " THEN GOSUB 8000
2200 GOTO 1810
2360 'TV
2370 TV=TV-1:IF TV<0 THEN TV=0
2380 RETURN
2390 '
2400 TV=TV+1:IF TV>35 THEN TV=35
2410 RETURN
2420 'AV
2430 AV=AV-1:IF AV<0 THEN AV=0
2440 RETURN
2450 '
2460 AV=AV+1:IF AV>22 THEN AV=22
2470 RETURN
2490 AM=AM+1:IF AM>3 THEN AM=0
3000 'FRAME CHANGE
3005 CLS:LOCATE 1,1
3006 IF PC=1 THEN 3010
3007 PRINT"SET FRAME(MAX:36)"
3008 GOTO3020
3010 PRINT"ڰѦ ƼϽ?(MAX:36)"
3020 LOCATE 1,2:INPUT FX:IF FX>36ORFX<0  THEN 3005
3030 IF FX<>0 THEN FRAME=FX
3040 CLS:RETURN
4000 'DATA SAVE TO TAPE
4005 CLS:LOCATE 1,1:FILE$=""
4006 IF PC=0 THEN 4010
4007 INPUT "̧ Ҳ ";FILE$
4008 PRINT"- -  ø޻":GOTO 4022
4010 CLS:LOCATE1,1:INPUT "FILE NAME?";FILE$
4020 LOCATE 1,3:PRINT"PUSH SPACE KEY"
4022 IF FILE$="" THEN RETURN 1800
4025 IF INKEY$=CHR$(8) THEN 4005
4026 IF INKEY$<>" " THEN 4025
4030 BSAVE"CAS:"+FILE$,SA,SA+7863
4040 LOCATE 1,7
4050 IF PC=0 THEN 4070 ELSEPRINT"خϽ?(Y/N)":GOTO4080
4070 PRINT"END?(Y/N)"
4080 A$=INKEY$:IFA$=""THEN4080
4085 IF A$="y"OR A$="Y" THEN 4090ELSEIFA$="N"ORA$="n"THEN A=FRE(""):RETURN 1800 ELSE 4080
4090 CLEAR 100,SA+4736:END
5120 '
5500 'COUNTER SELECT
5505 CLS:LOCATE 1,1
5507 IF PC=1 THEN 5510 ELSE PRINT"SET COUNTER":GOTO 5520
5510 PRINT" ƼϽ?                                            ";
5520 LOCATE 1,2:INPUT CC:IF CC>9999 OR CC<0 THEN 5505
5530 IF CC=O THEN 5550 ELSE CO=CC
5550 CLS:RETURN
7000 '
7010 'COMMENT WRITTING
7100 CLS:LOCATE 1,1
7107 IF PC=1 THEN 7108 ELSE PRINT"SET COMMENT(MAX 15)":GOTO 7110
7108 PRINT "Ħ 15Ӽ޲ø޻!   ";
7110 LOCATE1,2:CM$="":CC=0
7111 C$=INKEY$:IFC$=""THEN7111ELSEC=ASC(C$)
7112 IFC>223 THEN 7111
7113 IFC>126 AND C<160 THEN 7111
7114 IFC>31 THEN CC=CC+1 :IF CC>15 THEN CC=15:GOTO7111 ELSE CM$=CM$+C$:PRINTC$;
7115 IF CM$=""THEN7111
7116 IF C=8 THEN CM$=LEFT$(CM$,LEN(CM$)-1):LOCATE1,2:PRINTCM$;" ";:LOCATE1,2:PRINTCM$;:CC=CC-1
7119 IFC<>13 THEN 7111
7120 LOCATE1,1
7121 CM$=CM$+"                ":CM$=LEFT$(CM$,15)
7122 IF PC=1 THEN 7123 ELSE CLS:LOCATE1,1: PRINT"COMMENT OK?(y/n)":GOTO 7124
7123 CLS: LOCATE 1,1:PRINT " ֲ޽?(y/n)      "
7124 LOCATE1,2: PRINTLEFT$(CM$,15)
7125 KK$=INKEY$:IF KK$="" THEN 7125
7126 IF KK$="n"ORKK$="N" THEN 7100 ELSEIFKK$="y"ORKK$="Y"THEN7140
7127 GOTO7125
7140 AB=SA+2067+(N-1)*17:POKE AB,&H10:POKE AB+1,&HD3
7150 FOR C=0 TO 14
7160      C(C)=ASC(MID$(CM$,C+1,1))
7170      AC=AB+C+2
7180      POKE AC,C(C)
7190 NEXT
7200 CLS:RETURN
7500 'DATA SEARCH
7505 IF N<1 THEN 7990
7506 IFN=1 AND FULL=0 THEN 7990
7532 IF NF=0 THEN NN=N:NF=1:CF=CO:FF=FRAME
7535 N=N-1:IFN<1THENN=1
7537 BD=SA+16+(N-1)*6
7540 J1=0
7550      IF PEEK(BD)=FRAME(J1) THEN FRAME=J1 `CSRLIN 7570
7560      GOTO 7580
7570      J1=J1+1:GOTO 7550
7580 J2=0
7590      IF PEEK(BD+1)=TV(J2) THEN TV=J2:GOTO 7660
7600      J2=J2+1:GOTO 7590
7660 J3=0
7670      IF PEEK(BD+2)=AV(J3) THEN AV=J3:GOTO 7690
7680      J3=J3+1:GOTO 7670
7690 CO=VAL(HEX$(PEEK(BD+3)))*100+VAL(HEX$(PEEK(BD+4)))
7895 CM$=""
7900 FOR P=1 TO 15
7905 AC=SA+2067+(N-1)*17+1+P
7910 CM$=CM$+CHR$(PEEK(AC))
7912 IF PEEK(AC)=255 THEN CM$=""
7915 NEXT
7990 CLS:RETURN
8000 'DATA SET UP
8020 BEEP
8030 '
8040 '
8050 CM$="                "
8100 H=INT(CO/100):X1=INT(H/10):X2=H-X1*10
8110 L=CO-H*100:Y1=INT(L/10):Y2=L-Y1*10
8135 '
9000 'DATA RAM SAVE
9110 IF FULL=1 AND NF=0 THEN 9286
9120   AD=SA+16+(N-1)*6
9150        POKE AD   ,FRAME(FRAME)
9160        POKE AD+1 ,TV(TV)
9170        POKE AD+2 ,AV(AV)
9230        POKE AD+3 ,X1*16+X2
9240        POKE AD+4 ,Y1*16+Y2
9280        POKE AD+5,&HFF
9283 IF NF=1 THEN 9310
9285        POKE AD+6,&HDD
9286 N=N+1
9287 IF N>144 THEN 9600
9288 IF FULL=1THENGOSUB7537:RETURN1800
9289 FRAME=FRAME+1:IF FRAME>36THENFRAME=1
9290 CO=CO+1:IF CO>9999 THEN CO=0
9300 'LPRINT AD:FOR L=0 TO 5:LPRINT HEX$(PEEK(AD+L)):NEXT
9310 IF NF=1 THEN N=NN:NF=0:CO=CF:FRAME=FF
9500 RETURN
9600 'RAM OVER !
9603 N=145:FULL=1
9604  PLAY"N02","N05","N07"
9605 'FOR I=1TO50 :BEEP:NEXT
9610 CLS
9615 IF PC=1THEN 9620
9616 LOCATE 5,10:PRINT"MEMORY FULL"
9617 LOCATE 1,15:PRINT"  [F5] --- DATA SAVE"
9618 LOCATE1,13:PRINT"  [F1] --- DATA CHECK  "
9619 GOTO 9635
9620 LOCATE 5,10:PRINT"ذ  FULL  "
9625 LOCATE1,13:PRINT"  [F1] ---ް "
9630 LOCATE1,15:PRINT"  [F5] ---ް "
9635 KY$=INKEY$:IF KY$="" THEN 9635
9640 IFKY$=CHR$(22)THENN=1:GOSUB7537:RETURN1800
9645 IFKY$=CHR$(26)THEN4000 ELSE RETURN 1800
10100 'TV DATA AREA
10110 'TV PRINT DATA
10120 DATA BULB,30" ,20",15",10",8" ,6",4",3",2"  ,1"5,1"  ,0"7
10130 DATA 2   ,3,4,6,8 ,10,15,20,30,45,60,90 ,125,180,250,350,500
10140 DATA 750 ,1000,1500,2000,3000,4000
10150 'TV SIRIAL DATA
10160 DATA 12,16,18,22,26,30,34,38,42,46,50,54,58,62,66,70,74
10170 DATA 78,82,86,90,94,98,102,106,110,114,118,122,126,130
10180 DATA 134,138,142,146,150
10190 'AV DATA AREA
10200 'AV PRINT DATA
10210 DATA 1.2,1.4,1.8,2.0,2.5,2.8,3.5,4.0,4.5,5.6,6.7,8.0
10220 DATA 9.5,11 ,13,16,19,22,27,32  ,MANU,SDA ,SDM
10230 'AV SIRIAL DATA
10240 DATA 12,16,18,22,26,30,34,38,42,46,50,54,58,62,66,70,74,78,82,86,158,31,159
10310 'FRAME DATA AREA
10320 DATA 0,2,4,6,8,10,12,14,16,18,32,34,36,38,40,42,44,46
10330 DATA 48,50,64,66,68,70,72,74,76,78,80,82,96,98,100,102
10340 DATA 104,106,108
20000 IF ERR<>6 THEN 21000
20010 IF ERL=5520 THEN RESUME 5505
20020 IF ERL=3020 THEN RESUME 3005
21000 PRINTERL:ERROR ERR
