10 REM CASMON 15 REM Program av Gunnar Tidner 1982-02-21 20 OPEN "V24:CA.1" ASFILE 1 : L%=1 30 DIM A$=119,D1$=255,D2$=255 40 Z$="/*" : REM Filslutmarkering 50 B2$=CHR$(2) : REM CTRL-B 60 ; CHR$(7,12);"Denna ABC-80 blir nu Kassett-Monitor" 70 ; "Bandspelaren skall vara klar med REC-" 80 ; "och PLAY-tangenterna nedtryckta!" 90 ; "[r bandspelaren klar?" : GET C$ 100 IF INSTR(1%,"jJ",C$)=0 THEN 90 110 S1$="SENDFIL" : S2$="BYE" 120 ONERRORGOTO 130 130 ; #L%,"ABC-80 Kassett-Monitor" 140 ; #L%,"Vad vill du g|ra?" 150 INPUT #L%,\$ : ; #L%,"" 160 IF LEN(\$)=0 THEN 140 ELSE GOSUB 860 170 IF INSTR(1%,S1$,\$) THEN 290 180 IF INSTR(1%,S2$,\$) THEN 240 190 ; #L%;\$;" finns ej!" 200 ; #L%;"Meny:" : ; #L%,"" 210 ; #L%;S1$,"s{nda fil" 220 ; #L%;S2$,"avsluta" 230 GOTO 140 240 ; #L%,"Remote ABC-80 upph|r att vara Monitor!" 250 ; #L%,"\verg} till TAL-f|rbindelse!" 260 ; CHR$(12);"Upph|r att vara Kassett-Monitor!" 270 ; "\verg} till TAL-f|rbindelse!" 280 OUT 6,7 : FOR T=1 TO 3000 : NEXT T : OUT 6,0 : END 290 REM SENDFIL 300 ONERRORGOTO 130 310 FOR T=1 TO 1000 : NEXT T 320 ; #L%,B2$;"SENDFIL" 330 INPUT #L%,\$ 340 IF \$="SYNKSVAR" THEN 350 ELSE 310 350 REM Synkroniserad 360 INPUT #L%,\$ : IF LEN(\$)=0% OR LEN(\$)>12 THEN 530 370 D0$=\$ : D0%=2% 380 ONERRORGOTO 530 390 GOSUB 660 400 ; #L%,B2$;\$;" |ppnad, v{ntar p} rad nr 1" 410 FOR I%=1% TO 10000% 420 INPUTLINE #L%,A$ 430 IF LEFT$(A$,2%)=Z$ THEN 490 440 D2$=LEFT$(A$,LEN(A$)-2%) : D0%=2% : GOSUB 580 450 FOR T=1 TO 100 : NEXT T 460 ; D2$ 470 ; #L%,B2$;'>' 480 NEXT I% 490 D0%=2% : GOSUB 760 500 INPUT #L%,A$ 510 FOR T=1 TO 100 : NEXT T 520 ; #L%,"Filen har lagrats som ";\$ 530 ; #L%,"Vill du s{nda n}gon mer fil? (J/N)" 540 ONERRORGOTO 130 550 INPUT #L%,\$ 560 IF (ASC(\$) AND 223%)=74% OR ASC(\$)=0 THEN 310 570 GOTO 130 580 IF LEN(D1$)+LEN(D2$)>253% THEN 610 590 D1$=D1$+D2$+CHR$(13%) 600 GOTO 650 610 GOSUB 830 620 GOSUB 700 630 OUT 58%,INP(58%) AND 223% 640 D1$=D2$+CHR$(13%) 650 RETURN 660 PREPARE "CAS:"+D0$ ASFILE D0% 670 OUT 58%,INP(58%) AND 223% 680 D1%=PEEK(65021%) 690 RETURN 700 PRINT #D0%,D1$; 710 IF PEEK(65021%)<>D1% THEN GOSUB 730 720 RETURN 730 FOR Z%=0% TO 1500% : NEXT Z% 740 D1%=PEEK(65021%) 750 RETURN 760 GOSUB 830 770 GOSUB 700 780 IF D1%<>PEEK(65021%) THEN 800 790 PRINT #D0%,CHR$(0%); : GOTO 780 800 CLOSE D0% 810 D1$="" 820 RETURN 830 OUT 58%,INP(58%) OR 32% 840 FOR Z%=0% TO 2000% : NEXT Z% 850 RETURN 860 REM Konvertera \$ til stora bokst{ver 870 X$="" : FOR J%=1 TO LEN(\$) 880 X$=X$+CHR$((ASC(RIGHT$(\$,J%)) AND 223%)) 890 NEXT J% : \$=X$ : RETURN