1 REM Ins{nd av Bosse Gidmark <455> 1985-05-31 13.16.37
1REM ++++++++++++++++++++++++++++++++
2REM! Program .... ABCTRAN4
3REM! Utg}va 1.4 1981-08-20
4REM! av (c) Gunnar Tidner
5REM! {ndrat av Se nedan
6REM! Minne 16 Kbytes f|r flexskiva
7REM! Ins{nt av <1198>
8REM++++++++++++++++++++++++++++++++
9REM
10REMScreened by )TCP(
11REM
12OUT58,0
13REMGenerellt program f|r terminal-
14REMkommunikation med ABC80
15REM
16REMProgram av Gunnar Tidner 800915
17REMModifierat av :
18REMOla Hedlin & Samy Ramdani 810427
19REMModifierat av :
20REMMats Knuts
21REMLindahl&Rothoff AB 810729
22REMModifierat av :
23REM* B J S * 810820
24REMModifierat av :
25REM* L R U * 850529
26REM********************************
27Z$="/*":C9$=CHR$(13%,10%):REMFilslutm{rke resp
28DIMB$=119%
29;CHR$(12%)TAB(13%)"* Lokal Mode *"
30POKE32552%,160%
31;CUR(4%,5%)"Vad |nskas..." :;
32;" 1 Half Duplex terminal"
33;" 2 Full Duplex terminal"
34;" 3 System Time "
35;" 4 Telefon-nummer"
36;" 5 Dumpa bildminnet"
37;" 6 Full Duplex paritet space "
38;" 7 Exit"
39IFT1$<>"";CUR(22%,12%)"K|rtid: "T1$
40GOSUB169:;CUR(2%,16%)T$:IFINP(56%)<128%40
41S1%=INP(56%)AND127%:IFS1%<49%ORS1%>55%40:S1%=S1%-48%:POKE65013%,0%
42POKE32552%,32%
43;CHR$(12%)
44ONS1%GOTO47,49,160,117,179,45,116
45GOSUB196:OPEN"V24:HA.1"ASFILE1%:L%=1%:REMFull Duplex (Echo) f|r DATATRONICS info tr{d
46GOTO50
47GOSUB196:OPEN"V24:KB.1"ASFILE1%:L%=1%:REMHalf duplex (No Echo)
48GOTO50
49GOSUB196:OPEN"V24:KA.1"ASFILE1%:L%=1%:REMFull Duplex (Echo)
50INPUT#L%,A$
51IFA$="SYNK"THEN56
52IFA$="SENDFIL"THEN84
53IFA$="SIGNAL"THENOUT6%,7%:GET\$:GOTO50
54;A$:IFLEN(A$)<>0%THEN50
55CLOSE1%:Q=Z:GOSUB154:Z=Z-Q:GOSUB160:T1$=T$:GOTO29
56;:;" *** Mottaga fil ***":;
57F1$=' ':F2$=' ':POKE65013,0
58;"Om extension utel{mnas antas BAS"
59;"Filnamn vid MONITORN:";:INPUTF1$
60IFINSTR(1%,F1$,'.')<1%THENF1$=F1$+'.BAS'
61;"RETURN GER SAMMA NAMN"
62;"Filnamn h{r:";:INPUTF2$:IFLEN(F2$)=0%THENF2$=F1$:;F2$
63;#L%,"Hejsan";C9$;
64INPUT#L%,B$
65IFB$<>"SYNK"THEN63
66FORT=1TO100:NEXTT
67;#L%,"SYNKSVAR";C9$;
68FORT=1TO100:NEXTT:REMSynkroniserad
69;#L%,F1$;C9$;
70INPUTLINE#L%,B$:B$=LEFT$(B$,LEN(B$)-2%)
71IFB$<>"OPENED"THEN;B$:FORT=1TO2000:NEXTT:GOTO50
72PREPAREF2$ASFILE2%
73FORI%=1%TO10000
74;#L%,'>';C9$;
75INPUTLINE#L%,B$
76IFLEFT$(B$,2%)=Z$THEN80
77;#2%,B$;
78;B$;
79NEXTI%
80CLOSE2%
81;CHR$(7%)"Antal rader=";I%-1%
82FORF=0TO1000:NEXTF:;#L%' '
83GOTO50
84;:;" *** S{nda fil ***":;
85F1$=' ':F2$=' ':POKE65013,0
86;"Om extension utel{mnas antas BAS"
87;"Filnamn h{r:";:INPUTF2$
88IFINSTR(1%,F2$,'.')<1%THENF2$=F2$+'.BAS'
89;"RETURN GER SAMMA NAMN"
90;"Lagras vid MONITORN"
91;"under filnamn:";:INPUTF1$:IFLEN(F1$)=0%THENF1$=F2$:;F1$
92ONERRORGOTO163
93OPENF2$ASFILE2%
94;#L%,"Hejsan";C9$;
95INPUT#L%,B$
96IFB$<>"SENDFIL"THEN94
97FORT=1TO100:NEXTT
98;#L%,"SYNKSVAR";C9$;
99FORT=1TO100:NEXTT
100;#L%,F1$;C9$;
101ONERRORGOTO109
102FORI%=1%TO10000
103INPUT#L%,A$
104INPUTLINE#2,B$:B$=LEFT$(B$,LEN(B$)-2%)
105;B$
106FORT=1TO100:NEXTT
107;#L%,B$;C9$;
108NEXTI%
109;#L%Z$;C9$;
110CLOSE2%
111;"Antal rader=";I%-1%
112;#L%,Z$;C9$
113FORT=1TO3000:NEXTT
114;CHR$(7%):;#L%' '
115GOTO50
116;CUR(12%,0%);:END
117;CHR$(12%)TAB(2%)"* Telefon-nummer till monitor vid: *"
118;CUR(3%,0%)" (1) ABC-KLUBBEN: 08-80 15 23"
119;:;" (2) ELFA: ( kv{ll ) 08-730 07 06"
120;" (3) (dag/350) 08-730 07 00"
121;:;" (4) DEC-10: 08-23 86 60"
122;:;" (5) G\TEBORG: 031-13 95 56"
123;:;" (6) KRISTINEHAMN: 0550-141 66" : ; " SVENNES DATA CENTER"
124;:;" (7) DATATRONIC 08-19 05 22"
125;:;" (8) *********** 00000 "
126;:;" (9) *********** 00000 "
127;CUR(22,8)"Till vem vill du ringa ";
128INPUTE%:IFE%=0THEN29:;CUR(22,8)" JAG RINGER TILL "
129FORJ=32607TO32621:POKEJ,PEEK(J)OR128:NEXTJ
130ONE%GOTO131,132,134,136,137,138,140,141,142
131E$="801523":FORJ=32134TO32145:POKEJ,PEEK(J)OR128:NEXTJ:GOTO144
132E$="7300706":FORJ=32390TO32394:POKEJ,PEEK(J)OR128:NEXTJ
133FORJ=32401TO32409:POKEJ,PEEK(J)OR128:NEXTJ:GOTO144
134E$="7300700":FORJ=32390TO32394:POKEJ,PEEK(J)OR128:NEXTJ
135FORJ=32529TO32537:POKEJ,PEEK(J)OR128:NEXTJ:GOTO144
136E$="238660":FORJ=31790TO31796:POKEJ,PEEK(J)OR128:NEXTJ:GOTO144
137E$="031139556":FORJ=32046TO32054:POKEJ,PEEK(J)OR128:NEXTJ:GOTO144
138E$="055014166":FORJ=32302TO32314:POKEJ,PEEK(J)OR128:NEXTJ
139FORJ=32430TO32448:POKEJ,PEEK(J)OR128:NEXTJ:GOTO144
140E$="190522":FORJ=32686TO32695:POKEJ,PEEK(J)OR128:NEXTJ:GOTO144
141E$="000000":FORJ=31958TO31968:POKEJ,PEEK(J)OR128:NEXTJ:GOTO144
142E$="0000000":FORJ=32214TO32224:POKEJ,PEEK(J)OR128:NEXTJ:GOTO144
143REMNUMMERSLAGNING
144GOSUB146:;CUR(22,8)" L Y F T P ] L U R E N ":FORE2=1TO5000:NEXTE2
145OUT58%,0%:GOTO29
146E1%=LEN(E$)
147OUT58%,32%:FORE2=0TO2000:NEXTE2
148FORG%=1%TOE1%
149G$=MID$(E$,G%,1%)
150G1%=VAL(G$)
151FORE2=0TO300:NEXTE2
152FORE3%=0%TOG1%
153FORE2=0TO70:NEXTE2
154OUT58,0
155FORE2=0TO70:NEXTE2
156OUT58,32
157NEXTE3%
158NEXTG%
159RETURN
160REM<<< KLOCKAN >>>
161ONERRORGOTO29:;CUR(2%,16%)SPACE$(10%);
162;CUR(18%,0%)"ST[LL KLOCKAN (HH,MM,SS)";:INPUTH%,M%,S%
163Z=H%*3600+M%*60+S%
164Z1%=Z*50/256
165Z%=NOT(50*(Z-Z1%/50*256))
166Z1%=NOTZ1%
167POKE65008%,Z%,Z1%,SWAP%(Z1%)
168GOTO29
169IF(PEEK(65008%)AND4%)=0%169
170Z%(0%)=PEEK(65008%)XOR255%
171Z%(1%)=PEEK(65009%)XOR255%
172Z%(2%)=PEEK(65010%)XOR255%
173Z=((Z%(2%)*256)+Z%(1%))*5.12+Z%(0%)/50
174IFZ>86400Z=Z-86400:GOTO174
175H%=ABS(Z/3600):Z=ABS(Z-3600*H%):M%=ABS(Z/60):S%=ABS(Z-60*M%)
176T$=RIGHT$(NUM$(100%+H%),3%)+' '+RIGHT$(NUM$(100%+M%),3%)+' '+RIGHT$(NUM$(100%+S%),3%)
177RETURN
178;"FILEN SAKNAS":GOTO84
179OPEN"SKR:"ASFILE4%
180;CHR$(12%)'OBS !! Dumpning till printer fungerar endast om denna {r ansluten'
181;' till ABC-bussen tex. via ABC-CEN, ABC-MIO/FIO eller ABC-SIO'
182;' i annat fall m}ste man g} omv{gen via diskett och sedan '
183;' titta p} filen med VISA'
184;'Vad skall dumpningsfilen heta ';:INPUTD5$
185;:;'Ange radbredd (det vill s{ga hur m}nga av de 80 kolumnerna du vill `a med)';:INPUTR5%
186IFR5%>80%ORR5%<1%THEN;'Mellan 1 och 80':GOTO185
187PREPARED5$ASFILE5%
188FORQ%=1%TO24%
189INPUTLINE#4%,A9$:A9$=LEFT$(A9$,LEN(A9$)-2%)
190A9$=LEFT$(A9$,R5%)
191PRINT#5%,A9$
192NEXTQ%
193CLOSE4%:CLOSE5%
194GOTO29
195REMF|r att inte fastna i INPUT l{get
196;CHR$(12);
197;"=== ASYNKRON TERMINAL ==="
198IF(INP(58%)AND2%)=2%THEN;C$'CTS SAKNAS'
199IF(INP(58%)AND4%)=4%THEN;C$'DCD SAKNAS'
200IF(INP(58%)AND6%)>0%THENGOTO201ELSERETURN
201GET\$:GOTO196