• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

MacTEP

gavo

Well-known member
I'm sure I used to have a copy of this but cant find it. A bit of a search of the interweb has also turned up nothing. Does anyone have a copy or a link for this? Its the Mac's first telecommunications program, written in Microsoft BASIC, and released as freeware at the time by Dennis Brothers.

Cheers,

 

gavo

Well-known member
I knew I had it somewhere - I'll post it here just in case I lose it again (and of course for others to enjoy).

Code:
1000 REM MacTEP - Macintosh Terminal Emulator - Version 1.60a 
1010 REM Dennis F. Brothers - Compuserve ID [70065,172] - 16 Mar 84 
1020 REM COPYRIGHT  1984 - BROTHERS ASSOCIATES, WAYLAND MA 
1030 REM PERMISSION IS HEREBY GRANTED FOR PERSONAL, NON-COMMERCIAL 
1040 REM REPRODUCTION AND USE OF THIS PROGRAM, PROVIDED THAT THIS NOTICE IS 
1050 REM INCLUDED IN ANY COPY 
1060 REM 
1070 REM Modem connection (MAC -> modem) 3->7 5->2 8->1 9->3 
1080 REM 
1090 REM 
1100 DEFINT A-Z :REM default to integers for speed 
1110 REM 
1120 REM 
1130 REM    Define constants 
1140 REM 
1150 BUFLIM=32 
1160 REM 
1170 FALSE=0: TRUE=-1 
1180 REM 
1190 LF=10: LF$=CHR$(LF) 
1200 CR=13: CR$=CHR$(CR) 
1202 BS=8: BS$=CHR$(BS) 
1204 DEL=127: DEL$=CHR$(DEL) 
1210 XON=17:XON$=CHR$(XON) 
1220 XOFF=19: XOFF$=CHR$(XOFF) 
1230 REM 
1240 CMDB=186: CMDB$=CHR$(CMDB) 
1250 CMDE=171: CMDE$=CHR$(CMDE) 
1260 CMDR=168: CMDR$=CHR$(CMDR) 
1270 CMDT=160: CMDT$=CHR$(CMDT) 
1280 REM 
1290 REM 
2000 REM initialize and display startup information 
2010 REM 
2020 CALL TEXTSIZE(9): CALL TEXTFONT(4): WIDTH 80 
2030 CLS: PRINT: PRINT: PRINT 
2040 PRINT "MacTEP - V1.60a - copyright ) 1984, Brothers Associates 
2050 PRINT: PRINT: PRINT 
2051 PRINT "  Enter sends a CONTROL-C" 
2052 PRINT "  Command-C interrupts this program" 
2060 PRINT "  Option-E option-E exits to the Macintosh desktop" 
2070 PRINT "  Option-T starts and stops ASCII transmit (upload)" 
2080 PRINT "  Option-R starts and stops ASCII receive (download)" 
2090 PRINT "  Option-B starts and stops ASCII Basic receive" 
2100 PRINT "             (lines not beginning with a digit are ignored" 
2110 PRINT: PRINT 
2120 REM 
2130 REM Open the COM1 port, set the baud rate 
2140 REM 
2150 OPEN "com1: " AS #1 
2160 GOSUB 9000 
2170 PRINT: PRINT: PRINT 
2180 REM 
2190 REM 
3000 REM    Main terminal emulator routines 
3010 REM 
3020 IF BR > 300 THEN GOTO 4000 
3030 REM 
3040 REM  Low speed - no throttling required 
3050 REM 
3060 WHILE LOC(1)<>0 
3070     C=ASC(INPUT$(1,1)) AND &H7F 
3080      IF C<>LF AND C<>XOFF AND C<>XON THEN PRINT CHR$(C); 
3090      WEND 
3100 C$=INKEY$ 
3110 IF C$="" THEN GOTO 3060 
3120 IF C$=CMDE$ THEN PRINT: PRINT "Exiting...": SYSTEM 
3130 IF C$=CMDB$ THEN BMODE=TRUE: GOTO 5000 
3140 IF C$=CMDR$ THEN BMODE=FALSE: GOTO 5000 
3150 IF C$=CMDT$ THEN GOTO 6000 
3152 IF C$=BS$ THEN C$=BSCH$ 
3160 PRINT #1,C$; 
3170 GOTO 3060 
3180 REM 
3190 REM 
4000 REM     high speed - use X-on/X-off throttling 
4010  REM 
4020 XFLAG=FALSE 
4030 WHILE LOC(1)<>0 
4040      IF (LOC(1)>BUFLIM) AND (NOT XFLAG) THEN PRINT #1,XOFF;: XFLAG=TRUE 
4050      C=ASC(INPUT$(1,1)) AND &H7F 
4060      IF C<>LF AND C<>XOFF AND C<>XON THEN PRINT CHR$(C); 
4070      WEND 
4080 IF XFLAG THEN XFLAG=FALSE: PRINT #1,XON$; 
4090 C$=INKEY$ 
4100 IF C$="" THEN GOTO 4030 
4110 IF C$=CMDE$ THEN PRINT: PRINT "Exiting...": SYSTEM 
4120 IF C$=CMDB$ THEN BMODE=TRUE: GOTO 5000 
4130 IF C$=CMDR$ THEN BMODE=FALSE: GOTO 5000 
4140 IF C$=CMDT$ THEN GOTO 6000 
4142 IF C$=BS$ THEN C$=BSCH$ 
4150 PRINT #1,C$ 
4160 GOTO 4030 
4170 REM 
4180 REM 
5000 REM     receive (download) ASCII file 
5010 REM 
5020 PRINT: LINE INPUT "receive file name: ",F$ 
5025 IF F$="" THEN GOTO 3000 
5030  OPEN F$ FOR OUTPUT AS #2 
5040 XFLAG=FALSE: L$="" 
5050 WHILE F$<>"" 
5060      WHILE LOC(1)<>0 
5070           IF (LOC(1)>BUFLIM) AND (NOT XFLAG) THEN PRINT #1,XOFF$;: XFLAG=TRUE 
5080           C=ASC(INPUT$(1,1)) AND &H7F 
5090           IF C=LF OR C=XOFF OR C=XON THEN GOTO 5170 
5100           PRINT CHR$(C); 
5110           IF C<>CR THEN L$=L$+CHR$(C): GOTO 5170 
5120           IF NOT XFLAG THEN PRINT #1,XOFF$;: XFLAG=TRUE 
5130           IF BMODE AND (L$="") THEN GOTO 5170 
5140           IF BMODE THEN C$=LEFT$(L$,1): IF (C$<"0") OR (C$>"9") THEN GOTO 5160 
5150           PRINT #2,L$ 
5160           L$="" 
5170           WEND 
5180      IF XFLAG THEN XFLAG=FALSE: PRINT #1,XON$; 
5190      C$=INKEY$ 
5200      IF C$="" THEN GOTO 5250 
5210      IF ((C$<>CMDB$) AND (C$<>CMDR$)) THEN PRINT #1,C$;:  GOTO 5250 
5220      CLOSE #2 
5230      PRINT: PRINT "Receive Ended": PRINT 
5240      F$="" 
5250      WEND 
5260  GOTO 3000 
5270  REM 
5280  REM 
6000 REM      transmit (upload) ASCII file 
6010 REM 
6020 PRINT: LINE INPUT "transmit file name: ",F$ 
6030 IF F$="" THEN GOTO 3000 
6040 OPEN F$ FOR INPUT AS #2 
6050 XFLAG=FALSE: DLY=FALSE: QUIT=FALSE 
6060 I=1: LL=0 
6070 WHILE NOT ((EOF(2) AND (I>LL)) OR QUIT) 
6080      WHILE LOC(1)<>0 
6090         IF (LOC(1)>BUFLIM) AND (NOT XFLAG) THEN PRINT #1,XOFF$;: XFLAG=TRUE 
6100         C=ASC(INPUT$(1,1)) AND &H7F 
6110         IF C=LF THEN GOTO 6150 
6120        IF C=XOFF THEN DLY=TRUE: GOTO 6150 
6130         IF C=XON THEN DLY=FALSE: GOTO 6150 
6140         PRINT CHR$(C); 
6150         WEND 
6160      IF XFLAG THEN XFLAG=FALSE: PRINT #1,XON$; 
6170      IF DLY THEN GOTO 6250 
6180      IF I<=LL THEN GOTO 6230 
6190      PRINT #1,XOFF$; 
6200      LINE INPUT #2,L$ 
6210      I=0: LL=LEN(L$) 
6220      PRINT #1,XON$; 
6230      IF I=LL THEN PRINT #1,CR$;: I=I+1: GOTO 6250 
6240      I=I+1: PRINT #1,MID$(L$,I,1); 
6250      C$=INKEY$ 
6260      IF C$="" THEN GOTO 6290 
6270      IF C$=CMDT$ THEN QUIT=TRUE: GOTO 6290 
6280      PRINT #1,C$; 
6290      WEND 
6300  CLOSE #2 
6310  PRINT: PRINT "Transmit Ended": PRINT 
6320  GOTO 3000 
6330  REM 
6340  REM 
9000  REM     Subroutine to ask for and set COM1 baud rate 
9010  REM 
9020  REM     Fill array with Write SCC B machine-language subroutine 
9030  REM 
9040  DIM ML(50) 
9050  I=0 
9060  READ A:  ML(I)=A 
9070  I=I+1 
9080  IF A<>-1 THEN GOTO 9060 
9090  REM 
9100  REM   Get baud rate, calculate time constant, and bash SCC 
9110  REM 
9120  INPUT "Baud Rate: ",BR 
9130  TC=(115200!/BR)-2 
9140  TCH=INT(TC/256) 
9150  TCL=TC MOD 256 
9160  R=12: X=TCL: WSCCB!=VARPTR(ML(0)): CALL WSCCB!(R,X) 
9170  R=13: X=TCH: WSCCB!=VARPTR(ML(0)): CALL WSCCB!(R,X) 
9172 INPUT "delete instead of backspace (y/n)", BSC$ 
9174 IF BSC$="Y" OR BSC$="y" THEN BSCH$=DEL$ ELSE BSCH$=BS$ 
9180 RETURN 
9190 REM 
9200  REM     68000 machine language code for subroutine to write 
9210  REM   control regs of Z8530 Serial Communication Controller (SCC) 
9220  REM     -  this subroutine addresses the B port of the Mac's SCC 
9230  REM 
9240  REM  link   A6,0 
9250  DATA &H4E56,&H0000 
9260  REM  move.B    11(A6),10(A6) 
9270  DATA &H1D6E,&H000B,&H000A 
9280  REM clr.B   11(A6) 
9290  DATA  &H422E,&H000B 
9300  REM move.B   9(A6),8(A6) 
9310  DATA   &H1D6E,&H0009,&H0008 
9320  REM  clr.B   9(A6) 
9330  DATA &H422E,&H0009 
9340  REM or.W   0700H,SR 
9350  DATA &H007C,&H0700 
9360  REM   move.W   10(A6),00B00002H 
9370  DATA &H33EE,&H000A,&H00B0,&H0002 
9380  REM   move.W   8(A6),00B00002H 
9390  DATA  &H33EE,&H0008,&H00B0,&H0002 
9400  REM  and.W   0F8FFH,SR 
9410  DATA  &H027C,&HF8FF 
9420  REM    unlk     A6 
9430  DATA &H4E5E 
9440 REM rts 
9450 DATA &H4E75 
9460 REM 
9470 DATA -1 
9480 REM 
9490 END
 

Dog Cow

Well-known member
A bit of a search of the interweb has also turned up nothing.
Check Usenet newsgroup net.sources. I found posts indicating that it was posted there. I have the archive of that newsgroup, but it's not online at Mac GUI.

Oh, looks like one was posted in net.micro.mac too, version 1.81

Code:
0 REM Terminal program for Macintosh with up/download, 1200 baud, autodial ...
10 REM Overlay to MacTEP v. 1.81
20 REM Overlay by Loftus E. Becker, Jr. - Compuserve 70206,67
30 REM Adds Automatic Dial/Redial (Anchor Mark XII, Hayes Smartmodem),
40 REM     viewing disk files, resetting baud rate, and timer functions
50 REM
1010 REM
1020 REM   Version 1.81 - 6-Apr-84
1030 REM   Dennis F. Brothers - Compuserve 70065,172 - MCI Mail DBROTHERS
1040 REM
1050 REM   Copyright (c) 1984 - Brothers Associates, Wayland MA
1060 REM   Permission is hereby granted for personal, non-commercial
1070 REM   reproduction and use of this program, provided that this
1080 REM   notice is included in any copy.
MacTEP v. 1.81

 
Top