[net.micro.atari] Atari termcap

cutler (11/09/82)

A while back I asked for info on atari-termcaps, etc.

What follows is a terminal simulator sent to me from way off in ARPA land:


>From decvax!ucbvax!Tyson Fri Oct 22 00:12:48 1982
Date: 14 Oct 1982 0346-PDT
From: Mabry Tyson <ucbvax!Tyson@SRI-AI>
Subject: Re: Atari termcap.
Message-Id: <8209220227.9444@UCBVAX.BERKELEY.ARPA>
Received: by UCBVAX.BERKELEY.ARPA (3.207 [9/26/82])
	id A09444; 21-Oct-82 19:27:45-PDT (Thu)
To: decvax!yale-com!cutler@UCB-C70
In-Reply-To: Your message of 12-Oct-82 2259-PDT

I don't know how your message got out onto the Arpanet, but we have
a INFO-ATARI mailing list.  Send mail to INFO-ATARI-REQUEST@MIT-MC
to see if you can be added on.

For crt emulation, I'd suggest APX's LIZARD (or CHAMELEON) written by
Jack Palevich (aka INFO-ATARI-REQUEST).  It emulates VT52 and a couple
of other terminals I believe.

I'm going to send a set of messages that just came out today on INFO-ATARI.
They contain the code for a BASIC terminal program for the Atari.  I haven't
tried it but I thought you might want it.   It will be in the message
just after this one.
-------


>From decvax!ucbvax!Tyson Fri Oct 22 12:11:58 1982
Date: 14 Oct 1982 0346-PDT
From: Mabry Tyson <ucbvax!Tyson@SRI-AI>
Subject: Re: Atari termcap.
Message-Id: <8209220918.19778@UCBVAX.BERKELEY.ARPA>
Received: by UCBVAX.BERKELEY.ARPA (3.207 [9/26/82])
	id A19778; 22-Oct-82 02:18:53-PDT (Fri)
To: decvax!yale-com!cutler@UCB-C70
In-Reply-To: Your message of 12-Oct-82 2259-PDT

13-Oct-82 20:31:14-PDT,614;000000000001
Mail-from: ARPAnet host MIT-MC rcvd at 13-Oct-82 2031-PDT
Date: 13 Oct 1982 22:07:20 EDT (Wednesday)
From: Marshall Abrams <abrams at MITRE>
Subject: ATERM file info
To: info-atari at mit-mc
Cc: abrams at MITRE

I will send the three files which make
up ATERM (my terminal emulator) in seperate
messages. The file names, which are
coded in are: ATERM. (the main program),
ATERMPT2. (the second part of ATERM),
and ATERMHLP.TXT (a help file). The first
two are BASIC programs.

If anyone has a major problem in downloading
or makes substantial improvements, let
me know.

--Marshall Abrams


13-Oct-82 20:16:40-PDT,6034;000000000001
Mail-from: ARPAnet host MIT-MC rcvd at 13-Oct-82 2016-PDT
Date: 13 Oct 1982 22:12:30 EDT (Wednesday)
From: Marshall Abrams <abrams at MITRE>
Subject: ATERMPT2. program file
To: info-atari at mit-mc
Cc: abrams at MITRE

10 DIM SW(26):FOR I=1 TO 26:READ X:SW(I)=X:NEXT I
15 DATA 1500,0,0,1410,25,1340,30,1100,0,0,0,0,1180,0,0,1300,0,0,110,1330,500,0,1320,0,0,0
20 DIM A$(17),D$(15),T$(133),R$(15):D$="D :":S=ADR(D$)+200:C=764:O=53279:Z=0:F=FRE(Z)-125
25 L=S:WF=Z:NB=Z
30 SETCOLOR 2,8,2:SETCOLOR 4,8,2:? "}"
35 POKE 82,Z:? ," Terminal Mode":GOSUB 1000:L=S:WF=Z:NB=Z
40 GOSUB 290:TRAP O
50 STATUS #2,V:IF PEEK(747) THEN X=USR(1648):POKE L,PEEK(208):L=L+WF:GOTO 50
55 IF PEEK(C)=156 THEN GOSUB 400
60 IF PEEK(C)<>255 THEN X=USR(1701)
65 CON=PEEK(O)
70 IF L-1>F+S THEN 100
80 IF CON=6 THEN GOSUB 300
85 IF CON=3 THEN GOTO 1200
90 GOTO 50
100 GOSUB 350
110 ? :? "ENTER DOWNLOAD FILENAME  ";
120 TRAP 38:INPUT A$:TRAP O:IF LEN(A$)=Z THEN 40
130 IF LEN(A$)<3 THEN A$(LEN(A$)+1)="   "
140 IF A$(1,1)="D" AND (A$(2,2)=":" OR A$(3,3)=":") THEN D$=A$:GOTO 160
150 D$="D1:":D$(4)=A$
160 TRAP 180:CLOSE #1:CLOSE #2:OPEN #3,8,Z,D$
165 SETCOLOR 2,8,2:SETCOLOR 4,8,2
170 X=USR(1539,3,S,L-S+1):CLOSE #3:? :? ,"   I/O COMPLETE":? ,"File Preserved":FOR I=1 TO 222:NEXT I
173 IF D$="E:" THEN ? :? "Press RETURN";:INPUT A$
175 GOTO 1200
180 GOSUB 700:? "TRY AGAIN":POKE C,255:A=Z:GOSUB 1000:GOTO 50
290 POKE C,255:RETURN
300 IF WF THEN WF=Z:? "STOP ";:GOTO 320
310 WF=1:NB=NB+WF:? "BLOCK # ";NB;" BYTES FREE=";F+S-1-L:? "START ";
320 ? "FILLING BUFFER"
350 IF PEEK(O)<>7 THEN 350
360 RETURN
400 CLOSE #2:OPEN #2,13,Z,"R:"
410 XIO 34,#2,2,Z,"R:"
420 FOR I=1 TO 200:NEXT I
430 XIO 34,#2,3,Z,"R:"
435 XIO 40,#2,Z,Z,"R:"
440 RETURN
500 TRAP 690:? "ENTER UPLOAD FILENAME";:INPUT A$:IF LEN(A$)=Z THEN 1200
510 IF LEN(A$)<3 THEN A$(LEN(A$)+1)="   "
520 IF A$(1,1)="D" AND (A$(2,2)=":" OR A$(3,3)=":") THEN D$=A$:GOTO 540
530 D$="D1:":D$(LEN(D$)+1)=A$
540 TRAP 690:CLOSE #2:CLOSE #3:OPEN #3,4,Z,D$:NOTE #3,SEC,BYTE:CLOSE #3:GOSUB 1000
545 OPEN #4,8,0,"S:":SETCOLOR 2,8,2:SETCOLOR 4,8,2:? "}"
550 IF PEEK(O)<>7 THEN 1200
560 CLOSE #2:OPEN #3,4,Z,D$:POINT #3,SEC,BYTE:INPUT #3;T$:NOTE #3,SEC,BYTE:GOSUB 1000:? #2;T$
565 I=Z:IF ECHO<=Z THEN ? T$:POKE 77,0
575 IF DF=Z THEN 585
580 FOR I=0 TO 10*DF:NEXT I
585 STATUS #2,A:IF A<>1 THEN GOSUB 720:GOTO 1200
590 IF FLOW=Z THEN 550
600 A=PEEK(747)+256*PEEK(748):IF A>Z THEN 630
610 IF FLOW>=Z THEN 550
615 IF PEEK(O)<>7 THEN 1200
620 I=I+1:IF I<222 THEN 585
625 ? "No prompt received. Sending next line":? "Press OPTION to abort.":GOTO 550
630 FOR I=1 TO A:GET #2,X
635 IF ECHO>=Z THEN PUT #4,X:POKE 77,0
640 IF FLOW=-1 AND X=FLON THEN POP :GOTO 550
650 IF FLOW>Z AND X=FLOW THEN POP :GOTO 670
660 NEXT I:IF FLOW>=Z THEN 550
665 IF FLOW=-1 THEN 600
667 ? "INTERNAL ERROR 667":STOP
670 GET #2,X:IF X<>FLON THEN 670
680 GOTO 550
690 GOSUB 700:GOTO 1200
700 TRAP O:A=PEEK(195):IF A=136 THEN ? ,"Operation complete":POP :GOTO 30
720 POSITION 2,PEEK(84):? "    ERROR ";A;" ";
740 IF A=144 THEN ? "Device done error":GOTO 900
750 IF A=164 THEN ? "Disk links scrambled":GOTO 900
760 IF A=170 THEN ? "Incorrect file name":GOTO 900
770 IF A=130 THEN GRAPHICS Z:? :? "850 INTERFACE NOT BOOTED":? "REBOOT AND TRY AGAIN":END
780 IF A=138 THEN ? "DEVICE TIMEOUT, TURN ON DEVICE":GOTO 900
790 IF A=162 THEN ? "DISK FULL":GOTO 900
800 IF A=165 THEN ? "INVALID FILENAME, ":GOTO 900
810 IF A=167 THEN ? "LOCKED FILE, ":GOTO 900
820 IF A=169 THEN ? "DIRECTORY FULL":GOTO 900
890 ? " AT LINE ";PEEK(186)+256*PEEK(187)
900 FOR I=1 TO 222:NEXT I:RETURN
1000 CLOSE #1:CLOSE #2:CLOSE #3
1010 OPEN #1,4,Z,"K:":OPEN #2,13,Z,"R:":XIO 38,#2,PEEK(209),Z,"R:":XIO 40,#2,Z,Z,"R:":RETURN
1100 CLOSE #5:TRAP 1160:OPEN #5,4,0,"D:ATERMHLP.TXT":? "}"
1110 POKE 195,1:TRAP 1130:INPUT #5,T$:? T$:IF LEN(T$)<5 THEN 1110
1120 IF T$(1,5)<>"*****" THEN 1110
1130 A=PEEK(195):? ,"Press RETURN ";:INPUT T$:? "}":IF A=1 THEN 1110
1140 IF A<>136 THEN ? "ERROR ";A;" READING INSTRUCTION FILE"
1150 TRAP OFF:CLOSE #5:GOTO 1200
1160 ? "ERROR: Can't find TERMINAL.HLP":FOR I=1 TO 155:NEXT I:GOTO 1150
1180 RUN "D:ATERM."
1200 CLOSE #1:CLOSE #2:CLOSE #3:CLOSE #4:CLOSE #5:SETCOLOR 2,8,2:SETCOLOR 4,8,2:? "}","Options"
1211 ? "A  Print disk directory"
1214 ? "D  Dump download buffer to":? "    D:DUMPBUFF.SAV"
1215 ? "E  Empty downloaded buffer"
1216 ? "F  Fix upload parameters"
1217 ? "G  Go to terminal mode"
1218 ? "H@@@@Dbddf@~@D@@@^@Dbddl@~@D@@@@@@Dbddr@ "S  Store dowloaded file to disk"
1230 ? "T  Type downloaded file on screen"
1231 ? "U  Upload file"
1233 ? "W  Write downloaded buffer to casette"
1260 CLOSE #1:OPEN #1,4,Z,"K:":TRAP 1200
1270 ? ,"Option?";:GET #1,I:?
1280 GOTO SW(I-64)
1300 D$="P:":GOTO 160
1320 D$="C:":GOTO 160
1330 D$="E:":GOTO 160
1340 ? "Echo","-1  Output":? ," 0  Both":? ," 1  Prompt/echo":INPUT ECHO
1342 ? "Send line only when prompted (Y/N)";:INPUT A$:IF LEN(A$)=0 THEN 1342
1344 IF A$(1,1)="N" THEN 1360
1346 IF A$(1,1)<>"Y" THEN 1342
1348 FLOW=-1:DF=Z
1350 ? :? "Decimal value of prompt character":? "(ATASCII CR=155, X-ON=17)";:INPUT A$
1352 IF LEN(A$)=0 THEN 1350
1354 FLON=VAL(A$):GOTO 1200
1355 DF=VAL(A$)
1360 ? :? "End of line delay factor (UNIX=22)";:INPUT A$:IF LEN(A$)=0 THEN DF=0:GOTO 1360
1362 DF=VAL(A$)
1365 ? :? "Decimal value of character sent to":? "stop Atari (X-OFF=19)";:INPUT A$
1367 IF LEN(A$)=0 THEN FLOW=0:GOTO 1370
1368 FLOW=VAL(A$)
1370 ? :? "Decimal value of character sent to":? "restart Atari(X-ON=17)";:INPUT A$
1375 IF LEN(A$)=0 THEN FLON=0:GOTO 1200
1380 FLON=VAL(A$)
1390 GOTO 1200
1410 D$="D:DUMPBUFF.SAV":L=F+S-1:GOTO 160
1500 TRAP 1500:? "Drive number ";:INPUT X:CLOSE #1:CLOSE #2:CLOSE #3
1510 D$="D :*.*":D$(2,2)=STR$(X):OPEN #1,6,0,D$
1520 TRAP 1530:INPUT #1,A$:? A$:GOTO 1520
1530 IF A$(10,11)<>"SE" THEN ? " free sectors."
1540 ? "Press RETURN";:INPUT A$:GOTO 1200

13-Oct-82 20:49:23-PDT,3471;000000000001
Mail-from: ARPAnet host MIT-MC rcvd at 13-Oct-82 2049-PDT
Date: 13 Oct 1982 22:13:22 EDT (Wednesday)
From: Marshall Abrams <abrams at MITRE>
Subject: ATERMHLP.TXT help text file
To: info-atari at mit-mc
Cc: abrams at MITRE



>>>>       ATERM HELP FILE       <<<<

>>    Special ASCII characters     <<
  break  CTRL+ESC
  del    TAB    or CTRL+INSERT
  fs     CTRL+- or SHIFT+DELETE
  gs     CTRL+= or SHIFT+INSERT
  rs     CTRL++ or CTRL+TAB
  us     CTRL+* or SHIFT+TAB
*************************************
>> File transfer & other features  <<

Press START to capture downloaded file.
(More explanation below.)
Press OPTION to activate all other
options. A menu will be displayed.
*************************************
>>         Getting Started         <<

After the instructions you will be
given several choices. In each case,
you may select the default by pressing
RETURN. This is recommended unless you
have a good reason for another option.
The first set concerns translation:
    Light ASCII translation (default)
    Heavy ASCIi translation
    No translation
The next set concerns output parity:
    None (default)
    Odd
    Even
    Set to 1
The last question concerns line feed:
    Append line feed after return
    No line feed (default)
After setting these options, the main
program will be run.
*************************************
>>       DOWNLOAD FEATURES         <<

Press StART to toggle the memory
buffer switch, e.g. to begin saving
material to buffer and to stop saving.
You may start and stop saving to buf-
fer as many times as you wish.  Each
time you toggle the switch ON the
number of characters of free buffer
are displayed (over 25000 for 40-48K
RAL).  If xou run out of buffer the
program will automatically send an
XOF to the hst computer and prompt
you for a disk file name to save the
memory buffer.

*************************************
>>            OPTIONS              <<
A  Print disk directory
D  Dump download buffer to
   D:DUMPBUFF.SAV
E  Empty downloaded buffer
F  Fix upload parameters
G  Go to terminal mode
H  Print Help file
M  Reset modem/translation options
P  Print hardcopy of downloaded file
S  Store dowloaded file to disk
T  Type downloaded file on screen
U  Upload file
W  Write downloaded buffer to casette


						Ben Cutler
						decvax!yale-comix!cutler