10 REM ++++++++++++++++++++++++++++++++ 11 REM ! Program .... ABCTRAN4 12 REM ! Utg}va 1.4 1981-08-20 13 REM ! av (c) Gunnar Tidner 14 REM ! {ndrat av Se nedan 15 REM ! Minne 16 Kbytes f|r flexskiva 16 REM ! Ins{nt av <1198> 17 REM ++++++++++++++++++++++++++++++++ 18 REM 19 REM Screened by )TCP( 20 REM 21 OUT 58,0 22 REM Generellt program f|r terminal- 23 REM kommunikation med ABC80 24 REM 25 REM Program av Gunnar Tidner 800915 26 REM Modifierat av : 27 REM Ola Hedlin & Samy Ramdani 810427 28 REM Modifierat av : 29 REM Mats Knuts 30 REM Lindahl&Rothoff AB 810729 31 REM Modifierat av : 32 REM * B J S * 810820 33 REM ******************************** 34 Z$="/*" : C9$=CHR$(13%,10%) : REM Filslutm{rke resp 35 DIM B$=119% 36 ; CHR$(12%)TAB(13%)"* Lokal Mode *" 37 POKE 32552%,160% 38 ; CUR(4%,5%)"Vad |nskas..." : ; 39 ; " 1 Half Duplex terminal" 40 ; " 2 Full Duplex terminal" 41 ; " 3 System Time " 42 ; " 4 Telefon-nummer" 43 ; " 5 Dumpa bildminnet" 44 ; " 6 Full Duplex paritet space " 45 ; " 7 Exit" 46 IF T1$<>"" ; CUR(22%,12%)"K|rtid: "T1$ 47 GOSUB 176 : ; CUR(2%,16%)T$ : IF INP(56%)<128% 47 48 S1%=INP(56%) AND 127% : IF S1%<49% OR S1%>55% 47 : S1%=S1%-48% : POKE 65013%,0% 49 POKE 32552%,32% 50 ; CHR$(12%) 51 ON S1% GOTO 54,56,167,124,186,52,123 52 OPEN "V24:HA.1" ASFILE 1 : L%=1% : REM Full Duplex (Echo) f|r DATATRONICS info tr{d 53 GOTO 57 54 OPEN "V24:KB.1" ASFILE 1 : L%=1% : REM Half duplex (No Echo) 55 GOTO 57 56 OPEN "V24:KA.1" ASFILE 1 : L%=1 : REM Full Duplex (Echo) 57 INPUT #L%,A$ 58 IF A$="SYNK" THEN 63 59 IF A$="SENDFIL" THEN 91 60 IF A$="SIGNAL" THEN OUT 6,7 : GET \$ : GOTO 57 61 ; A$ : IF LEN(A$)<>0 THEN 57 62 CLOSE 1 : Q=Z : GOSUB 161 : Z=Z-Q : GOSUB 167 : T1$=T$ : GOTO 36 63 ; : ; " *** Mottaga fil ***" : ; 64 F1$=' ' : F2$=' ' : POKE 65013,0 65 ; "Om extension utel{mnas antas BAS" 66 ; "Filnamn vid MONITORN:"; : INPUT F1$ 67 IF INSTR(1,F1$,'.')=0 THEN F1$=F1$+'.BAS' 68 ; "RETURN GER SAMMA NAMN" 69 ; "Filnamn h{r:"; : INPUT F2$ : IF LEN(F2$)=0 THEN F2$=F1$ : ; F2$ 70 ; #L%,"Hejsan";C9$; 71 INPUT #L%,B$ 72 IF B$<>"SYNK" THEN 70 73 FOR T=1 TO 100 : NEXT T 74 ; #L%,"SYNKSVAR";C9$; 75 FOR T=1 TO 100 : NEXT T : REM Synkroniserad 76 ; #L%,F1$;C9$; 77 INPUTLINE #L%,B$ : B$=LEFT$(B$,LEN(B$)-2%) 78 IF B$<>"OPENED" THEN ; B$ : FOR T=1 TO 2000 : NEXT T : GOTO 57 79 PREPARE F2$ ASFILE 2 80 FOR I%=1 TO 10000 81 ; #L%,'>';C9$; 82 INPUTLINE #L%,B$ 83 IF LEFT$(B$,2%)=Z$ THEN 87 84 ; #2,B$; 85 ; B$; 86 NEXT I% 87 CLOSE 2 88 ; CHR$(7%)"Antal rader=";I%-1% 89 FOR F=0 TO 1000 : NEXT F : ; #L%' ' 90 GOTO 57 91 ; : ; " *** S{nda fil ***" : ; 92 F1$=' ' : F2$=' ' : POKE 65013,0 93 ; "Om extension utel{mnas antas BAS" 94 ; "Filnamn h{r:"; : INPUT F2$ 95 IF INSTR(1,F2$,'.')=0 THEN F2$=F2$+'.BAS' 96 ; "RETURN GER SAMMA NAMN" 97 ; "Lagras vid MONITORN" 98 ; "under filnamn:"; : INPUT F1$ : IF LEN(F1$)=0 THEN F1$=F2$ : ; F1$ 99 ONERRORGOTO 170 100 OPEN F2$ ASFILE 2 101 ; #L%,"Hejsan";C9$; 102 INPUT #L%,B$ 103 IF B$<>"SENDFIL" THEN 101 104 FOR T=1 TO 100 : NEXT T 105 ; #L%,"SYNKSVAR";C9$; 106 FOR T=1 TO 100 : NEXT T 107 ; #L%,F1$;C9$; 108 ONERRORGOTO 116 109 FOR I%=1 TO 10000 110 INPUT #L%,A$ 111 INPUTLINE #2,B$ : B$=LEFT$(B$,LEN(B$)-2%) 112 ; B$ 113 FOR T=1 TO 100 : NEXT T 114 ; #L%,B$;C9$; 115 NEXT I% 116 ; #L%Z$;C9$; 117 CLOSE 2 118 ; "Antal rader=";I%-1% 119 ; #L%,Z$;C9$ 120 FOR T=1 TO 3000 : NEXT T 121 ; CHR$(7%) : ; #L%' ' 122 GOTO 57 123 ; CUR(12%,0%); : END 124 ; CHR$(12%)TAB(2%)"* Telefon-nummer till monitor vid: *" 125 ; CUR(3%,0%)" (1) ABC-KLUBBEN: 08-80 15 23" 126 ; : ; " (2) ELFA: ( kv{ll ) 08-730 07 06" 127 ; " (3) (dag/350) 08-730 07 00" 128 ; : ; " (4) DEC-10: 08-23 86 60" 129 ; : ; " (5) G\TEBORG: 031-13 95 56" 130 ; : ; " (6) KRISTINEHAMN: 0550-141 66" : ; " SVENNES DATA CENTER" 131 ; : ; " (7) DATATRONIC 08-19 05 22" 132 ; : ; " (8) *********** 00000 " 133 ; : ; " (9) *********** 00000 " 134 ; CUR(22,8)"Till vem vill du ringa "; 135 INPUT E% : IF E%=0 THEN 36 : ; CUR(22,8)" JAG RINGER TILL " 136 FOR J=32607 TO 32621 : POKE J,PEEK(J) OR 128 : NEXT J 137 ON E% GOTO 138,139,141,143,144,145,147,148,149 138 E$="801523" : FOR J=32134 TO 32145 : POKE J,PEEK(J) OR 128 : NEXT J : GOTO 151 139 E$="7300706" : FOR J=32390 TO 32394 : POKE J,PEEK(J) OR 128 : NEXT J 140 FOR J=32401 TO 32409 : POKE J,PEEK(J) OR 128 : NEXT J : GOTO 151 141 E$="7300700" : FOR J=32390 TO 32394 : POKE J,PEEK(J) OR 128 : NEXT J 142 FOR J=32529 TO 32537 : POKE J,PEEK(J) OR 128 : NEXT J : GOTO 151 143 E$="238660" : FOR J=31790 TO 31796 : POKE J,PEEK(J) OR 128 : NEXT J : GOTO 151 144 E$="031139556" : FOR J=32046 TO 32054 : POKE J,PEEK(J) OR 128 : NEXT J : GOTO 151 145 E$="055014166" : FOR J=32302 TO 32314 : POKE J,PEEK(J) OR 128 : NEXT J 146 FOR J=32430 TO 32448 : POKE J,PEEK(J) OR 128 : NEXT J : GOTO 151 147 E$="190522" : FOR J=32686 TO 32695 : POKE J,PEEK(J) OR 128 : NEXT J : GOTO 151 148 E$="000000" : FOR J=31958 TO 31968 : POKE J,PEEK(J) OR 128 : NEXT J : GOTO 151 149 E$="0000000" : FOR J=32214 TO 32224 : POKE J,PEEK(J) OR 128 : NEXT J : GOTO 151 150 REM NUMMERSLAGNING 151 GOSUB 153 : ; CUR(22,8)" L Y F T P ] L U R E N " : FOR E2=1 TO 5000 : NEXT E2 152 OUT 58,0 : GOTO 36 153 E1%=LEN(E$) 154 OUT 58,32 : FOR E2=0 TO 2000 : NEXT E2 155 FOR G%=1% TO E1% 156 G$=MID$(E$,G%,1%) 157 G1%=VAL(G$) 158 FOR E2=0 TO 300 : NEXT E2 159 FOR E3%=0% TO G1% 160 FOR E2=0 TO 70 : NEXT E2 161 OUT 58,0 162 FOR E2=0 TO 70 : NEXT E2 163 OUT 58,32 164 NEXT E3% 165 NEXT G% 166 RETURN 167 REM <<< KLOCKAN >>> 168 ONERRORGOTO 36 : ; CUR(2%,16%)SPACE$(10%); 169 ; CUR(18%,0%)"ST[LL KLOCKAN (HH,MM,SS)"; : INPUT H%,M%,S% 170 Z=H%*3600+M%*60+S% 171 Z1%=Z*50/256 172 Z%= NOT (50*(Z-Z1%/50*256)) 173 Z1%= NOT Z1% 174 POKE 65008%,Z%,Z1%,SWAP%(Z1%) 175 GOTO 36 176 IF (PEEK(65008%) AND 4%)=0% 176 177 Z%(0%)=PEEK(65008%) XOR 255% 178 Z%(1%)=PEEK(65009%) XOR 255% 179 Z%(2%)=PEEK(65010%) XOR 255% 180 Z=((Z%(2%)*256)+Z%(1%))*5.12+Z%(0%)/50 181 IF Z>86400 Z=Z-86400 : GOTO 181 182 H%=ABS(Z/3600) : Z=ABS(Z-3600*H%) : M%=ABS(Z/60) : S%=ABS(Z-60*M%) 183 T$=RIGHT$(NUM$(100%+H%),3%)+' '+RIGHT$(NUM$(100%+M%),3%)+' '+RIGHT$(NUM$(100%+S%),3%) 184 RETURN 185 ; "FILEN SAKNAS" : GOTO 91 186 OPEN "SKR:" ASFILE 4 187 ; CHR$(12%)'OBS !! Dumpning till printer fungerar endast om denna {r ansluten' 188 ; ' till ABC-bussen tex. via ABC-CEN, ABC-MIO/FIO eller ABC-SIO' 189 ; ' i annat fall m}ste man g} omv{gen via diskett och sedan ' 190 ; ' titta p} filen med VISA' 191 ; 'Vad skall dumpningsfilen heta '; : INPUT D5$ 192 ; : ; 'Ange radbredd (det vill s{ga hur m}nga av de 80 kolumnerna du vill `a med)'; : INPUT R5% 193 IF R5%>80% OR R5%<1% THEN ; 'Mellan 1 och 80' : GOTO 192 194 PREPARE D5$ ASFILE 5 195 FOR Q%=1% TO 24% 196 INPUTLINE #4,A9$ : A9$=LEFT$(A9$,LEN(A9$)-2%) 197 A9$=LEFT$(A9$,R5%) 198 PRINT #5,A9$ 199 NEXT Q% 200 CLOSE 4 : CLOSE 5 201 GOTO 36