' ' Advanced Communication Board Developers Toolkit ' (c)Copyright 1993-1995, Sealevel Systems Incorporated ' '==================================================================== ' BASTERM.BAS - ASYNCHRONOUS TERMINAL EMULATOR PROGRAM '==================================================================== DATAPORT = &H238 'BOARD BASE ADDRESS Control = DATAPORT + 1 'CHANNEL A CONTROL PORT '==================================================================== ' INITIALIZE THE 8530 '==================================================================== READ REG 'CHANNEL RESET OUT Control, REG 'A AND B READ D OUT Control, D 'CHECK FOR PRESENCE OF ESCC (85230) OUT Control, 15 'ENABLE ACCESS OUT Control, &H1 'TO WR7' (TESTING BIT) OUT Control, 15 'WAS WRITE SUCCESSFUL? IF (INP(Control) AND &H1) = &H1 THEN 'YES - GO ON... OUT Control, 15 'ENABLE ACCESS OUT Control, &H0 'TO WR7 (TESTING BIT) OUT Control, 15 'WAS WRITE SUCCESSFUL? IF (INP(Control) AND &H1) = 0 THEN 'YES - WE HAVE AN ESCC! 'ESCC DETECTED - TAKE ACTION COLOR 0, 7 CLS LOCATE 2, 5 PRINT "Detected an 85230." OUT Control, 15 'ENABLE ACCESS OUT Control, &H1 'TO WR7' OUT Control, 7 'EXTENDED READ OUT Control, &H40 'ENABLE OUT Control, 15 'ENABLE ACCESS OUT Control, &H0 'TO WR7 ELSE 'ESCC NOT DETECTED - MUST HAVE 8530 COLOR 0, 7 CLS LOCATE 2, 5 PRINT "85230 not detected." END IF ELSE 'ESCC NOT DETECTED - MUST HAVE 8530 COLOR 0, 7 CLS LOCATE 2, 5 PRINT "85230 not detected." END IF 'FINISH INITIALIZING SCC/ESCC L1: READ REG 'GET REGISTER # IF REG = 255 THEN GOTO HEAD 'DATA DELIMITER OUT Control, REG 'SET REGISTER # READ D 'READ REGISTER DATA OUT Control, D 'SEND IT GOTO L1 'LOOP UNTIL DONE '==================================================================== ' PRINT HEADING '==================================================================== HEAD: LOCATE 1, 5 PRINT "BASTERM.EXE - TERMINAL EMULATOR PROGRAM [ Press to exit ] " COLOR 7, 0 PRINT VIEW PRINT 3 TO 25 'LEAVE 2 TOP LINES CLS 'CLEAR VIEW PORT '==================================================================== ' CHECK THE KEYBOARD '==================================================================== CHECKEY: S$ = INKEY$ 'ANY KEY PRESSED? IF S$ = "" THEN GOTO CHECKRX 'NO - CHECK RECEIVED DATA IF ASC(S$) = 27 THEN 'ESCAPE KEY - EXIT VIEW PRINT 'CLEAR ENTIRE SCREEN CLS : END 'END END IF '==================================================================== ' SEND A CHARACTER '==================================================================== OUT DATAPORT, ASC(S$) 'SEND THE CHARACTER '==================================================================== ' CHECK FOR RECEIVED DATA AVAILABLE '==================================================================== CHECKRX: OUT Control, 0 'READ REGISTER 0 IF (INP(Control) AND 1) <> 1 THEN GOTO CHECKEY 'NO DATA AVAILABLE PRINT CHR$(INP(DATAPORT)); 'PRINT CHARACTER GOTO CHECKEY 'CHECK THE KEYBOARD '==================================================================== ' 8530 INITIALIZATION VALUES '==================================================================== DATA 9, &HC0 'FORCE HARDWARE RESET DATA 4, &H44 'X16 CLOCK MODE, 1 STOP BIT / CHAR DATA 3, &HC1 'RX ENABLED, RX 8 BITS / CHAR DATA 2, 0 'INTERRUPT VECTOR - NOT USED DATA 5, &H69 'TX 8 BITS / CHAR DATA 6, 0 'SYNC INFORMATION - NOT USED DATA 7, 0 'SYNC INFORMATION - NOT USED DATA 10, 0 'NRZ MODE DATA 11, &H56 'RX / TX CLOCK = BAUD RATE GENERATOR DATA 12, &HFE 'TIME CONSTANT - LOW BYTE - 4800 BAUD DATA 13, 1 'TIME CONSTANT - HIGH BYTE DATA 14, 3 'BAUD RATE GENERATOR ENABLED / SOURCE DATA 15, 0 'MISCELLANEOUS CONTROL BITS - NOT USED DATA 0, &H10 'RESET EXTERNAL STATUS INTERRUPTS DATA 0, &H10 'AGAIN DATA 1, 0 'READY / REQUEST - READY SELECTED DATA 255 'END OF DATA '==================================================================== ' End of File '====================================================================