10 REM +++++++++++++++++++++++++++++++++ 11 REM ! Program .... ABCTRANS 12 REM ! Utg}va 2 800915 13 REM ! av (c) Gunnar Tidner 14 REM ! {ndrat av Ola Hedlin och 15 REM ! Samy Ramdani 810427 16 REM ! Minne 16 Kbytes 17 REM ! Ins{nt av ???? 18 REM +++++++++++++++++++++++++++++++++ 19 REM Generellt program f|r terminal- 20 REM kommunikation med ABC80 21 Z$="/*" : C9$=CHR$(13%,10%) : REM Filslutm{rke resp 22 DIM B$=119% 23 ; CHR$(12%)TAB(13%)"* Lokal Mode *" 24 POKE 32296%,160% 25 ; CUR(5%,5%)"Vad |nskas..." : ; 26 ; " 1 Half Duplex terminal" 27 ; " 2 Full Duplex terminal" 28 ; " 3 System Time " 29 ; " 4 Telefon-nummer" 30 ; " 5 Exit" 31 IF T1$<>"" ; CUR(22%,12%)"K|rtid: "T1$ 32 GOSUB 118 : ; CUR(2%,16%)T$ : IF INP(56%)<128% 32 33 S1%=INP(56%) AND 127% : IF S1%<49% OR S1%>53% 32 : S1%=S1%-48% : POKE 65013%,0% 34 POKE 32296%,32% 35 ON S1% GOTO 36,38,109,102,101 36 OPEN "V24:KB.1" ASFILE 1 : L%=1 : REM Half Duplex (No Echo) 37 GOTO 39 38 OPEN "V24:KA.1" ASFILE 1 : L%=1 : REM Full Duplex (Echo) 39 INPUT #L%,A$ 40 IF A$="SYNK" THEN 45 41 IF A$="SENDFIL" THEN 71 42 IF A$="SIGNAL" THEN OUT 6,7 : GET \$ : GOTO 39 43 ; A$ : IF LEN(A$)<>0 THEN 39 44 CLOSE 1 : Q=Z : GOSUB 118 : Z=Z-Q : GOSUB 124 : T1$=T$ : GOTO 23 45 ; : ; " *** Mottaga fil ***" : ; 46 F1$=' ' : F2$=' ' : POKE 65013,0 47 ; "Filnamn vid MONITORN:"; : INPUT F1$ 48 ; "RETURN GER SAMMA NAMN" 49 ; "Filnamn h{r:"; : INPUT F2$ : IF LEN(F2$)=0 THEN F2$=F1$ : ; F2$ 50 ; #L%,"Hejsan";C9$; 51 INPUT #L%,B$ 52 IF B$<>"SYNK" THEN 50 53 FOR T=1 TO 100 : NEXT T 54 ; #L%,"SYNKSVAR";C9$; 55 FOR T=1 TO 100 : NEXT T : REM Synkroniserad 56 ; #L%,F1$;C9$; 57 INPUTLINE #L%,B$ : B$=LEFT$(B$,LEN(B$)-2%) 58 IF B$<>"OPENED" THEN ; B$ : FOR T=1 TO 2000 : NEXT T : GOTO 39 59 PREPARE F2$ ASFILE 2 60 FOR I%=1 TO 10000 61 ; #L%,'>';C9$; 62 INPUTLINE #L%,B$ 63 IF LEFT$(B$,2%)=Z$ THEN 67 64 ; #2,B$; 65 ; B$; 66 NEXT I% 67 CLOSE 2 68 ; CHR$(7%)"Antal rader=";I%-1% 69 FOR F=0 TO 1000 : NEXT F : ; #L%' ' 70 GOTO 39 71 ; : ; " *** S{nda fil ***" : ; 72 F1$=' ' : F2$=' ' : POKE 65013,0 73 ; "Filnamn h{r:"; : INPUT F2$ 74 ; "RETURN GER SAMMA NAMN" 75 ; "Lagras vid MONITORN" 76 ; "under filnamn:"; : INPUT F1$ : IF LEN(F1$)=0 THEN F1$=F2$ : ; F1$ 77 ONERRORGOTO 127 78 OPEN F2$ ASFILE 2 79 ; #L%,"Hejsan";C9$; 80 INPUT #L%,B$ 81 IF B$<>"SENDFIL" THEN 79 82 FOR T=1 TO 100 : NEXT T 83 ; #L%,"SYNKSVAR";C9$; 84 FOR T=1 TO 100 : NEXT T 85 ; #L%,F1$;C9$; 86 ONERRORGOTO 94 87 FOR I%=1 TO 10000 88 INPUT #L%,A$ 89 INPUTLINE #2,B$ : B$=LEFT$(B$,LEN(B$)-2%) 90 ; B$ 91 FOR T=1 TO 100 : NEXT T 92 ; #L%,B$;C9$; 93 NEXT I% 94 ; #L%Z$;C9$; 95 CLOSE 2 96 ; "Antal rader=";I%-1% 97 ; #L%,Z$;C9$ 98 FOR T=1 TO 3000 : NEXT T 99 ; CHR$(7%) : ; #L%' ' 100 GOTO 39 101 ; CUR(12%,0%); : END 102 ; CHR$(12%)TAB(2%)"* Telefon-nummer till monitor vid: *" 103 ; CUR(5%,0%)"ABC-KLUBBEN: 08-80 15 23" 104 ; : ; "ELFA: 08-730 07 06" 105 ; : ; "DEC-10: 08-23 86 60" 106 ; : ; "G\TEBORG: 031-13 95 56" 107 ; : ; "KRISTINEHAMN: 0550-141 66" : ; "SVENNES DATA CENTER" 108 GET A9$ : GOTO 23 109 REM <<< KLOCKAN >>> 110 ONERRORGOTO 23 : ; CUR(2%,16%)SPACE$(10%); 111 ; CUR(18%,0%)"ST[LL KLOCKAN (HH,MM,SS)"; : INPUT H%,M%,S% 112 Z=H%*3600+M%*60+S% 113 Z1%=Z*50/256 114 Z%= NOT (50*(Z-Z1%/50*256)) 115 Z1%= NOT Z1% 116 POKE 65008%,Z%,Z1%,SWAP%(Z1%) 117 GOTO 23 118 IF (PEEK(65008%) AND 4%)=0% 118 119 Z%(0%)=PEEK(65008%) XOR 255% 120 Z%(1%)=PEEK(65009%) XOR 255% 121 Z%(2%)=PEEK(65010%) XOR 255% 122 Z=((Z%(2%)*256)+Z%(1%))*5.12+Z%(0%)/50 123 IF Z>86400 Z=Z-86400 : GOTO 123 124 H%=ABS(Z/3600) : Z=ABS(Z-3600*H%) : M%=ABS(Z/60) : S%=ABS(Z-60*M%) 125 T$=RIGHT$(NUM$(100%+H%),3%)+' '+RIGHT$(NUM$(100%+M%),3%)+' '+RIGHT$(NUM$(100%+S%),3%) 126 RETURN 127 ; "FILEN SAKNAS" : GOTO 71