.TITLE SYSTEM - RSXNET SYSTEM TYPE FILE .IDENT /02.0/ .ENABL LC ;+ ; ; Free software BY ; Project Software & Development, Inc. ; ; This software is furnished for free and may be used and copied as ; desired. This software or any other copies thereof may be provided ; or otherwise made available to any other person. No title to and ; ownership of the software is hereby transferred or allowed. ; ; The information in this software is subject to change without notice ; and should not be construed as a commitment by PROJECT SOFTWARE ; AND DEVELOPMENT, INC. ; ; PROJECT SOFTWARE assumes no responsibility for the use or reliability ; of this software on any equipment whatsoever. ; ; Project Software & Development, Inc. ; 14 Story St. ; Cambridge, Ma. 02138 ; 617-661-1444 ; ; ; Title: SYSTEM ; Author: Gary N. Larsen & Robin Miller ; Date: April 1, 1982 ; ; Description: ; ; This module gets the type of remote system we are to communicate ; with. ; ; Modification History: ; ;- .ENABL AMA .NLIST BEX ; Local equates: TYPSIZ = 6 ; SIZE OF SYSTEM TYPE ENTRYS SPACE = 32. ; ASCII FOR SPACE ; Macro to create system type table. .MACRO NAMES,TYPES .ASCII /TYPES/ .NCHR N,TYPES .BLKB TYPSIZ-N .ENDM ; System type table. TYPTBL:: DEFTYP: NAMES ; DEFAULT SYSTEM TYPE NAMES NAMES NAMES NAMES .BYTE -1 .EVEN ; Dispatch table to system type routines. TYPDSP: .WORD TDEC ; DIGITAL .WORD TAPPLE .WORD TUNIX .WORD TXXDP .WORD TIBM SYSENT::.WORD DEFTYP ; POINTER TO SYSTEM TYPE SYSTQ: .ASCII %Enter the system type of the remote (% SYSDEF: .BLKB 10. ; STORE DEFAULT TYPE HERE SYSTH: .ASCIZ %SYSTEM_TYPE% .EVEN .SBTTL SYSTEM - GET THE REMOTE SYSTEM TYPE ;+ ; ; SYSTEM - Get the remote system type ; ; Description: ; ; This routine gets the remote type from the user. ; ; ; All registers are preserved. ; ;- SYSTEM:: CALL $SAVAL ; SAVE EM ALL MOV #SYSTH,HLPADR ; ADDRESS OF HELP STRING ; Setup default system type in the question. MOV #SYSDEF,R0 ; STORE SYSTEM TYPE HERE MOV SYSENT,R1 ; POINTER TO SYSTEM TYPE CALL MOVE ; MOVE IN THE DEFAULT MOVB #'),(R0)+ ; SETUP MOVB #':,(R0)+ ; LAST MOVB #SPACE,(R0)+ ; PART CLRB (R0) ; OF MESSAGE CALL GETINI ; TRY TO READ FROM .INI FILE BCC 15$ ; IF CC, GOT SOMETHING 10$: CALL CLOINI ; CLOSE .INI FILE (IF OPEN) MOV #INCMD,R1 ; ADDRESS OF USER INPUT BUFFER MOV #SYSTQ,R2 ; ADDRESS OF QUESTION CALL PROMPT ; AND GET THE ANSWER TST BCKFLG ; NEED TO BACKUP ? BNE 100$ ; IF NE, YES (RETURN) 15$: MOV #INCMD,R0 ; THE INPUT ADDRESS MOV SYSENT,R5 ; ADDRESS OF CURRENT SYSTEM TYPE TSTB (R0) ; DID THEY ACCEPT THE DEFAULT BEQ 20$ ; IF EQ, YES MOV #TYPTBL,R1 ; ADDRESS OF THE TABLE MOV #TYPSIZ,R2 ; SIZE OF ENTRYS IN TABLE MOV #-1,EXACT ; FORCE EXACT MATCH CALL COMPAR ; IS THE TYPE VALID BCC 20$ ; IF CC, FOUND A MATCH CALL GETHLP ; GET SOME HELP BR 10$ ; AND REASK THE QUESTION 20$: MOV R5,SYSENT ; SAVE POINTER TO SYSTEM TYPE CLR R2 ; QUOTIENT FOR DIVIDE MOV R5,R3 ; COPY FOR DIVIDE SUB #TYPTBL,R3 ; SUBTRACT OUT THE BASE DIV #TYPSIZ,R2 ; CALCULATE THE INDEX ASL R2 ; MAKE A WORD INDEX CALL @TYPDSP(R2) ; CALL APPROPRIATE ROUTINE 100$: RETURN ;+ ; These routines are intended to do special setup for ; various system types. Currently only the local echo ; flag is affected. Local echo is needed for IBM since ; TSO doesn't echo characters back to us. ; ; Another feature needed is the disabling of the XON and ; XOFF characters which get transmitted to the remote when ; the output buffer is almost full. These characters will ; cause problems on systems which don't understand them ; such as IBM, XXDP, and UNIX. ; ; I also thought of mapping certain control characters into ; the equivalent for the system type going to. For example, ; UNIX uses the delete key as interrupt (although changable). ; IBM uses the break key for interrupt. It may be possible ; to emulate this function by altering the baud rate and ; sending all ones or zeros. ; ;- ;+ ; ; TDEC - System type = DEC. ; ;- TDEC: CLR ECHFLG ; DISABLE LOCAL ECHO RETURN ;+ ; ; TAPPLE - System type = APPLE ; ;- TAPPLE: CLR ECHFLG ; DISABLE LOCAL ECHO RETURN ;+ ; ; TUNIX - System type = UNIX ; ;- TUNIX: CLR ECHFLG ; DISABLE LOCAL ECHO RETURN ;+ ; ; TXXDP - System type = XXDP ; ;- TXXDP: CLR ECHFLG ; DISABLE LOCAL ECHO RETURN ;+ ; ; TIBM - System type = IBM. ; ;- TIBM: MOV #-1,ECHFLG ; ENABLE LOCAL ECHO RETURN .END