home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-12-21 | 55.5 KB | 2,854 lines |
- *************************************************
- * *
- * (C)opyright 1992 *
- * *
- * by Tomi Blinnikka *
- * *
- * Don´t try to understand the code *
- * *
- * Version 0.01 28/05/1992 *
- * -0.99ö *
- * *
- * Version 1.00 04/08/1992 *
- * *
- * BUGS: Lots! No phonebook. *
- * *
- * Version 1.01 05/08/1992 *
- * *
- * BUGS: Some. Dialer problems. *
- * *
- * Version 1.02 06/08/1992 *
- * *
- * BUGS: Less. Still dialer problems. *
- * *
- * Version 1.03 08/08/1992 *
- * *
- * BUGS: *
- * *
- * Version 1.04 11/08/1992 *
- * *
- * Released *
- * *
- * BUGS: Send CTRL-P didn't work *
- * *
- * Version 1.05 15/08/1992 *
- * *
- * Version 1.06 28/08/1992 *
- * *
- * Added prefs file and swap BS & DEL *
- * See docs for more info *
- * *
- * Version 1.07 30/08/1992 *
- * *
- * Version 1.08 04/09/1992 *
- * *
- * Added cursor remap *
- * *
- * Version 1.09 06/09/1992 *
- * *
- *************************************************
-
- INCLUDE "JMPLibs.i"
- INCLUDE "exec/types.i"
- INCLUDE "exec/nodes.i"
- INCLUDE "exec/lists.i"
- INCLUDE "exec/ports.i"
- INCLUDE "exec/memory.i"
- INCLUDE "exec/devices.i"
- INCLUDE "exec/io.i"
- INCLUDE "exec/tasks.i"
- INCLUDE "libraries/dosextens.i"
- INCLUDE "libraries/dos.i"
- INCLUDE "devices/serial.i"
-
- INCLUDE "XREF:2.0.xref"
- INCLUDE "XREF:exec.xref"
- INCLUDE "XREF:dos.xref"
-
-
- CTRL_B: EQU 2
- CTRL_F: EQU 6
- BS: EQU 8
- TAB: EQU 9
- LF: EQU 10
- CR: EQU 13
- CTRL_N: EQU $E
- CTRL_O: EQU $F
- CTRL_P: EQU $10
- DEL: EQU 127
- CSI: EQU $9B
- Cursor_Up: EQU 'A'
- Cursor_Down: EQU 'B'
- Cursor_Left: EQU 'D'
- Cursor_Right: EQU 'C'
-
- MENU_KEY: EQU CTRL_P
- STATS_KEY: EQU CTRL_O
-
- FALSE: EQU 0
- TRUE: EQU 1
-
- BUFLEN: EQU 1024
- ENTRYLENGTH: EQU 20
-
- section ST,CODE
-
- push d2-d7/a2-a6
- push d0/a0
-
- openlib Dos,NoDos ;Keep at beginning
-
- CLIStart: lib Dos,Output
- move.l d0,_stdout
- lib Dos,Input
- move.l d0,_stdin
- move.l d0,d1
- lib Dos,IsInteractive
- tst.l d0
- beq NotInteractive
- pull d0/a0
- clr.b -1(a0,d0.l)
- cmp.b #'?',(a0)
- beq Usage
- cmp.w #'-?',(a0)
- beq Usage
- cmp.w #'-h',(a0)
- beq Usage
-
- tst.b (a0)
- beq Cont1.3
- Cont1: lea.l FileNameBuf1,a1
- move.l a1,a2
- add.l #128,a2
- Cont1.1: tst.b (a0)
- beq Cont1.2
- cmp.b #' ',(a0)
- beq Cont1.2
- cmp.b #TAB,(a0)
- beq Cont1.2
- cmp.b #LF,(a0)
- beq Cont1.2
- cmp.b #CR,(a0)
- beq Cont1.2
- move.b (a0)+,(a1)+
- cmp.l a1,a2
- bne Cont1.1
- Cont1.2: clr.b (a1)
- Cont1.3:
-
- ;Create read reply port for serial.device (or modem0.device etc.)
-
- MainStart: openlib Utility,NoUtility ;Keep at beginning
- lib Exec,CreateMsgPort
- move.l d0,SRRPort
- beq NoMsgPort
-
- ;Create read IOReq for serial.device (or for other device, but size is EXTSER)
-
- move.l #IOEXTSER_SIZE,d0
- move.l SRRPort,a0
- lib Exec,CreateIORequest
- move.l d0,IORRequest
- beq NoIOReq
-
- move.l IORRequest,a1
- move.w #CMD_READ,IO_COMMAND(a1)
- or.b #IOF_QUICK,IO_FLAGS(a1)
- lea.l Buffer3,a0
- move.l a0,IO_DATA(a1)
- move.l #1,IO_LENGTH(a1)
-
- ;Create write reply port for serial.device (or modem0.device etc.)
-
- lib Exec,CreateMsgPort
- move.l d0,SWRPort
- beq NoMsgPort
-
- ;Create write IOReq for serial.device (or for other device, but size is EXTSER)
-
- move.l #IOEXTSER_SIZE,d0
- move.l SWRPort,a0
- lib Exec,CreateIORequest
- move.l d0,IOWRequest
- beq NoIOReq
-
- bsr LoadPrefsFile
-
- bsr OpenSerial
- tst.l d0
- bne ShutDown
-
- lea.l StartText1,a0
- bsr Printer
-
- ;Change mode for CLI to RAW:
-
- move.l _stdin,d1
- move.l #TRUE,d2
- lib Dos,SetMode
-
- ;Flush extra text
-
- move.l _stdin,d1
- lib Dos,Flush
-
- Looper: move.l _stdin,d1
- move.l #5000,d2
- lib Dos,WaitForChar
- tst.l d0
- beq Looper1
- move.l _stdin,d1
- lea.l Buffer1,a0
- move.l a0,d2
- move.l #1,d3
- lib Dos,Read
- cmp.b #MENU_KEY,Buffer1
- beq Menu
- move.b CPAssign,d0
- cmp.b Buffer1,d0
- beq DoCTRL_P2
- bsr DoCLIInput
- Looper1: move.l #BUFLEN,d0
- move.l #1,d1
- bsr Read
- tst.l d0
- beq Looper
-
- lea.l Buffer3,a0
- clr.b 0(a0,d0.l) ;null terminated, please!
-
- bsr DoSerialInput
-
- move.l _stdout,d1
- lea.l Buffer4,a1
- bsr GetLength
- move.l d0,d3
- lea.l Buffer4,a0
- move.l a0,d2
- lib Dos,Write
-
- bsr DoCapture
-
- bra Looper
-
- Menu: bsr DoANSI
- lea.l MenuText1,a0
- bsr Printer
- Menu1: move.l _stdin,d1
- lib Dos,FGetC
- cmp.l #-1,d0
- beq ShutDown
- cmp.l #'a',d0
- bcs Menu2
- cmp.l #'z',d0
- bhi Menu2
- sub.l #32,d0
- Menu2: cmp.l #'P',d0
- beq Prefs
- cmp.l #'S',d0
- beq DoStats
- cmp.l #'C',d0
- beq ClearBoth
- cmp.l #'D',d0
- beq Dialer
- cmp.l #'B',d0
- beq DoBreak
- cmp.l #'O',d0
- beq DoCTRL_P
- cmp.l #'F',d0
- beq ResetFont
- cmp.l #'X',d0
- beq ClearScreen
- cmp.l #'R',d0
- beq DoReset
- cmp.l #'H',d0
- beq DoHangUp
- cmp.l #'L',d0
- beq DoOpenCapture
- cmp.l #'K',d0
- beq DoCloseCapture
- cmp.l #'+',d0
- beq DoUpLoad
- cmp.l #'-',d0
- beq DoDownLoad
- cmp.l #'?',d0
- beq DoInfo
- cmp.l #'Q',d0
- beq Quit
- cmp.l #'E',d0
- beq Exit1
- bra Menu1
- Exit1: lea.l ExitText1,a0
- bsr Printer
- bra Looper1
-
- ResetFont: lea.l ResetFText1,a0
- bsr Printer
- lea.l PlainText1,a0
- bsr Printer
- bra Menu
-
- ClearScreen: lea.l ClearSText1,a0
- bsr Printer
- bra Exit
-
- DoANSI: tst.b UseANSI
- beq DoANSI_OUT
- lea.l ClearSText1,a0
- bsr Printer
- DoANSI_OUT: rts
-
- DoStats: lea.l StatsText2,a0
- bsr Printer
- bsr DoANSI
- bsr GiveStats
- bsr GetAnyKey
- bra Menu
-
- ClearBoth: lea.l ClearText1,a0
- bsr Printer
- clr.l Received
- clr.l Sent
- bra Menu
-
- DoBreak: bsr SendBREAK
- lea.l BreakText2,a0
- bsr Printer
-
- bra Exit
-
- DoCTRL_P: move.b #CTRL_P,Buffer1
- bsr Writer
- lea.l CTRL_PText1,a0
- bsr Printer
- add.l #1,Sent
- bra Exit
-
- DoCTRL_P2: move.b #CTRL_P,Buffer1
- bsr Writer
- add.l #1,Sent
- bra Looper
-
- DoReset: lea.l ResetText1,a0
- bsr Printer
- lea.l ResetText2,a1
- bsr GetLength
- lea.l ResetText2,a0
- bsr Writer2
- bra Exit
-
- DoHangUp: lea.l HangUpText1,a0
- bsr Printer
- move.l #3*50,d1
- lib Dos,Delay
- lea.l HangUpText2,a1
- bsr GetLength
- lea.l HangUpText2,a0
- bsr Writer2
- move.l #2*55,d1
- lib Dos,Delay
- lea.l HangUpText3,a1
- bsr GetLength
- lea.l HangUpText3,a0
- bsr Writer2
- bra Exit
-
- DoOpenCapture: lea.l OpenCaptureText1,a0
- bsr Printer
-
- tst.l CaptureFile
- bne DoOpenCapture_ERR2
-
- lea.l FileNameBuf2,a0
- move.l #128,d3
- bsr GetString
-
- tst.b FileNameBuf2
- beq DoOpenCapture_OUT
-
- lea.l FileNameBuf2,a0
- move.l a0,d1
- move.l #MODE_READWRITE,d2
- lib Dos,Open
- move.l d0,CaptureFile
- beq DoOpenCapture_ERR1
-
- DoOpenCapture_OUT: bra Menu
- DoOpenCapture_ERR1: lea.l CaptureErrorText1,a0
- bsr Printer
- bra Menu
- DoOpenCapture_ERR2: lea.l CaptureErrorText2,a0
- bsr Printer
- bra Menu
-
- DoCloseCapture: lea.l CloseCaptureText1,a0
- bsr Printer
-
- move.l CaptureFile,d1
- beq DoCloseCapture
- lib Dos,Close
- clr.l CaptureFile
- DoCloseCapture_OUT: bra Menu
-
- DoUpLoad: lea.l ULText2,a0
- bsr Printer
- lea.l ULProgram,a0
- tst.b (a0)
- beq DoUpLoad9
-
- lea.l FileNameBuf2,a0
- move.l #128,d3
- bsr GetString
-
- bsr MakeCmdString
-
- tst.b ULDir
- beq DoUpLoad1
- lea.l ULDir,a0
- move.l a0,d1
- move.l #ACCESS_READ,d2
- lib Dos,Lock
- move.l d0,ULLock
- bne DoUpLoad2
-
- DoUpLoad1: lea.l NoULDirText1,a0
- bsr Printer
- bra DoUpLoad5
-
- DoUpLoad2: move.l ULLock,d1
- lib Dos,CurrentDir
- move.l d0,OldLock
-
- DoUpLoad5: lea.l ULText3,a0
- bsr Printer
-
- lea.l FileNameBuf3,a0
- move.l a0,d1
- clr.l d2
- clr.l d3
- lib Dos,Execute
-
- ;change back to dir where we started from
-
- move.l OldLock,d1
- beq DoUpLoad7
- lib Dos,CurrentDir
- clr.l OldLock
-
- DoUpLoad7: move.l ULLock,d1
- beq DoUpLoad8
- lib Dos,UnLock
- clr.l ULLock
- DoUpLoad8:
- bra Exit
- DoUpLoad9: lea.l NoULDLProgText1,a0
- bsr Printer
- bra Exit
-
- DoDownLoad: lea.l DLText2,a0
- bsr Printer
- tst.b DLProgram
- beq DoDownLoad9
-
- ;change to the dl dir
-
- tst.b DLDir
- beq DoDownLoad1
- lea.l DLDir,a0
- move.l a0,d1
- move.l #ACCESS_READ,d2
- lib Dos,Lock
- move.l d0,DLLock
- bne DoDownLoad2
-
- DoDownLoad1: lea.l NoDLDirText1,a0
- bsr Printer
- bra DoDownLoad5
-
- DoDownLoad2: move.l DLLock,d1
- lib Dos,CurrentDir
- move.l d0,OldLock
-
- DoDownLoad5: lea.l DLProgram,a0
- move.l a0,d1
- clr.l d2
- clr.l d3
- lib Dos,Execute
-
- ;change back to dir where we started from
-
- move.l OldLock,d1
- beq DoDownLoad7
- lib Dos,CurrentDir
- clr.l OldLock
-
- DoDownLoad7: move.l DLLock,d1
- beq DoDownLoad8
- lib Dos,UnLock
- clr.l DLLock
- DoDownLoad8:
- bra Exit
- DoDownLoad9: lea.l NoULDLProgText1,a0
- bsr Printer
- bra Exit
-
- DoInfo: lea.l InfoText1,a0
- bsr Printer
- bsr DoANSI
- lea.l AuthorText1,a0
- bsr Printer
- bsr GetAnyKey
- bra Menu
-
- Quit: lea.l QuitText1,a0
- bsr Printer
- lea.l CRLFText1,a0
- bsr Printer
- bsr GiveStats
- bra ShutDown
-
- Exit: bsr DoANSI
- lea.l TerminalText1,a0
- bsr Printer
- bra Looper1
-
- Dialer: lea.l DialerText1,a0
- bsr Printer
- Dialer0.1: bsr DoANSI
- lea.l DialerText2,a0
- bsr Printer
- Dialer0.2: bsr PrintEntries
- Dialer0.3: bsr PrintSelect
- Dialer0.4: lea.l DialerText3,a0
- bsr Printer
- Dialer1: move.l _stdin,d1
- lib Dos,FGetC
- cmp.l #-1,d0
- beq Menu
- cmp.l #'a',d0
- bcs Dialer2
- cmp.l #'z',d0
- bhi Dialer
- sub.l #32,d0
- Dialer2: cmp.l #'0',d0
- beq DoEntry0
- cmp.l #'1',d0
- beq DoEntry1
- cmp.l #'2',d0
- beq DoEntry2
- cmp.l #'3',d0
- beq DoEntry3
- cmp.l #'4',d0
- beq DoEntry4
- cmp.l #'5',d0
- beq DoEntry5
- cmp.l #'6',d0
- beq DoEntry6
- cmp.l #'7',d0
- beq DoEntry7
- cmp.l #'8',d0
- beq DoEntry8
- cmp.l #'9',d0
- beq DoEntry9
- cmp.l #'D',d0
- beq DialList
- cmp.l #'E',d0
- beq Exit1
- cmp.l #'M',d0
- beq MainMenu
- cmp.l #'-',d0
- beq MainMenu
- cmp.l #'S',d0
- beq SingleDial
- cmp.l #'R',d0
- beq Relist
- cmp.l #'C',d0
- beq ClearList
- cmp.l #'A',d0
- beq SelectAll
- cmp.l #'I',d0
- beq SetModifyMode
- cmp.l #'P',d0
- beq EditPrefix
- cmp.l #'H',d0
- beq DialerHelp
- cmp.l #'?',d0
- beq DialerHelp
- bra Dialer1
-
- SetModifyMode: bchg.b #0,ModifyMode
- beq SetModifyMode1
- lea.l ModifyText2,a0
- bsr Printer
- bra Dialer0.4
- SetModifyMode1: lea.l ModifyText1,a0
- bsr Printer
- bra Dialer0.4
-
- DialerHelp: lea.l HelpText1,a0
- bsr Printer
- bsr DoANSI
- bra Dialer0.4
-
- ClearList: lea.l ClearText2,a0
- bsr Printer
- bsr DoANSI
- clr.l EntrySelected1
- clr.l EntrySelected5
- clr.w EntrySelected9
- bra DoEntry_OUT1
-
- SelectAll: lea.l AllText1,a0
- bsr Printer
- bsr DoANSI
- move.l #$01010101,EntrySelected1
- move.l #$01010101,EntrySelected5
- move.w #$0101,EntrySelected9
- bra DoEntry_OUT1
-
- DoEntry1: lea.l Entry1,a0
- tst.w ModifyMode
- bne EditEntry
- bchg.b #0,EntrySelected1
- bra DoEntry_OUT
- DoEntry2: lea.l Entry2,a0
- tst.w ModifyMode
- bne EditEntry
- bchg.b #0,EntrySelected2
- bra DoEntry_OUT
- DoEntry3: lea.l Entry3,a0
- tst.w ModifyMode
- bne EditEntry
- bchg.b #0,EntrySelected3
- bra DoEntry_OUT
- DoEntry4: lea.l Entry4,a0
- tst.w ModifyMode
- bne EditEntry
- bchg.b #0,EntrySelected4
- bra DoEntry_OUT
- DoEntry5: lea.l Entry5,a0
- tst.w ModifyMode
- bne EditEntry
- bchg.b #0,EntrySelected5
- bra DoEntry_OUT
- DoEntry6: lea.l Entry6,a0
- tst.w ModifyMode
- bne EditEntry
- bchg.b #0,EntrySelected6
- bra DoEntry_OUT
- DoEntry7: lea.l Entry7,a0
- tst.w ModifyMode
- bne EditEntry
- bchg.b #0,EntrySelected7
- bra DoEntry_OUT
- DoEntry8: lea.l Entry8,a0
- tst.w ModifyMode
- bne EditEntry
- bchg.b #0,EntrySelected8
- bra DoEntry_OUT
- DoEntry9: lea.l Entry9,a0
- tst.w ModifyMode
- bne EditEntry
- bchg.b #0,EntrySelected9
- bra DoEntry_OUT
- DoEntry0: lea.l Entry10,a0
- tst.w ModifyMode
- bne EditEntry
- bchg.b #0,EntrySelected0
- DoEntry_OUT: lea.l EntryTextXIV,a0
- bsr Printer
- bsr DoANSI
- DoEntry_OUT1: bsr PrintSelect
- lea.l SelectionText1,a0
- bsr Printer
- bra Dialer1
-
- EditEntry: push a0
- lea.l EditEntryText1,a0
- bsr Printer
- lea.l EditEntryText2,a0
- bsr Printer
- pull a0
- move.l #ENTRYLENGTH,d3
- bsr GetString
- bsr PrintEntries
- bra DoEntry_OUT1
-
- EditPrefix: lea.l EditEntryText3,a0
- bsr Printer
- lea.l EditEntryText4,a0
- bsr Printer
- lea.l DialPrefix,a0
- move.l #16,d3
- bsr GetString
- bra Dialer0.1
-
- MainMenu: lea.l MainMenuText1,a0
- bsr Printer
- bra Menu
-
- DialList: lea.l DialText1,a0
- bsr Printer
- bsr DoANSI
- lea.l DialText2,a0
- bsr Printer
-
- DialList1: lea.l EntrySelected1,a2
- tst.b (a2)
- beq DialList2
- lea.l Entry1,a0
- tst.b (a0)
- beq DialList1.1
- bsr DialEntry
- tst.l d0 ;connect
- bne DialList1.01
- DialLCONNECT: clr.b (a2)
- beq Exit
- DialList1.01: cmp.l #2,d0 ;cancel
- beq Dialer0.1
- cmp.l #3,d0 ;remove
- bne DialList2
- DialList1.1: clr.b (a2)
- DialList2: lea.l EntrySelected2,a2
- tst.b (a2)
- beq DialList3
- lea.l Entry2,a0
- tst.b (a0)
- beq DialList2.1
- bsr DialEntry
- tst.l d0
- beq DialLCONNECT ;Connect
- cmp.l #2,d0 ;cancel
- beq Dialer0.1
- cmp.l #3,d0 ;remove
- bne DialList3
- DialList2.1: clr.b (a2)
- DialList3: lea.l EntrySelected3,a2
- tst.b (a2)
- beq DialList4
- lea.l Entry3,a0
- tst.b (a0)
- beq DialList3.1
- bsr DialEntry
- tst.l d0
- beq DialLCONNECT ;Connect
- cmp.l #2,d0 ;cancel
- beq Dialer0.1
- cmp.l #3,d0 ;remove
- bne DialList4
- DialList3.1: clr.b (a2)
- DialList4: lea.l EntrySelected4,a2
- tst.b (a2)
- beq DialList5
- lea.l Entry4,a0
- tst.b (a0)
- beq DialList4.1
- bsr DialEntry
- tst.l d0
- beq DialLCONNECT ;Connect
- cmp.l #2,d0 ;cancel
- beq Dialer0.1
- cmp.l #3,d0 ;remove
- bne DialList5
- DialList4.1: clr.b (a2)
- DialList5: lea.l EntrySelected5,a2
- tst.b (a2)
- beq DialList6
- lea.l Entry5,a0
- tst.b (a0)
- beq DialList5.1
- bsr DialEntry
- tst.l d0
- beq DialLCONNECT ;Connect
- cmp.l #2,d0 ;cancel
- beq Dialer0.1
- cmp.l #3,d0 ;remove
- bne DialList6
- DialList5.1: clr.b (a2)
- DialList6: lea.l EntrySelected6,a2
- tst.b (a2)
- beq DialList7
- lea.l Entry6,a0
- tst.b (a0)
- beq DialList6.1
- bsr DialEntry
- tst.l d0
- beq DialLCONNECT ;Connect
- cmp.l #2,d0 ;cancel
- beq Dialer0.1
- cmp.l #3,d0 ;remove
- bne DialList7
- DialList6.1: clr.b (a2)
- DialList7: lea.l EntrySelected7,a2
- tst.b (a2)
- beq DialList8
- lea.l Entry7,a0
- tst.b (a0)
- beq DialList7.1
- bsr DialEntry
- tst.l d0
- beq DialLCONNECT ;Connect
- cmp.l #2,d0 ;cancel
- beq Dialer0.1
- cmp.l #3,d0 ;remove
- bne DialList8
- DialList7.1: clr.b (a2)
- DialList8: lea.l EntrySelected8,a2
- tst.b (a2)
- beq DialList9
- lea.l Entry8,a0
- tst.b (a0)
- beq DialList8.1
- bsr DialEntry
- tst.l d0
- beq DialLCONNECT ;Connect
- cmp.l #2,d0 ;cancel
- beq Dialer0.1
- cmp.l #3,d0 ;remove
- bne DialList9
- DialList8.1: clr.b (a2)
- DialList9: lea.l EntrySelected9,a2
- tst.b (a2)
- beq DialList10
- lea.l Entry9,a0
- tst.b (a0)
- beq DialList9.1
- bsr DialEntry
- tst.l d0
- beq DialLCONNECT ;Connect
- cmp.l #2,d0 ;cancel
- beq Dialer0.1
- cmp.l #3,d0 ;remove
- bne DialList10
- DialList9.1: clr.b (a2)
- DialList10: lea.l EntrySelected0,a2
- tst.b (a2)
- beq DialList11
- lea.l Entry10,a0
- tst.b (a0)
- beq DialList10.1
- bsr DialEntry
- tst.l d0
- beq DialLCONNECT ;Connect
- cmp.l #2,d0 ;cancel
- beq Dialer0.1
- cmp.l #3,d0 ;remove
- bne DialList11
- DialList10.1: clr.b (a2)
- DialList11: tst.l EntrySelected1
- bne DialList1
- tst.l EntrySelected5
- bne DialList1
- tst.w EntrySelected9
- bne DialList1
- lea.l EmptyText1,a0
- bsr Printer
- bra Dialer0.1
-
- Relist: lea.l RelistText1,a0
- bsr Printer
- bsr DoANSI
- bra Dialer0.2
-
- SingleDial: lea.l SingleText1,a0
- bsr Printer
-
- bsr DoANSI
-
- lea.l SingleText2,a0
- bsr Printer
-
- lea.l DialBuffer1,a0
- move.l #ENTRYLENGTH,d3
- bsr GetString
- tst.l d0
- bne Dialer0.1
-
- lea.l DialBuffer1,a1
- bsr GetLength
- tst.l d0
- beq Dialer0.1
-
- lea.l DialText2,a0
- bsr Printer
-
- SingleDial1: lea.l DialBuffer1,a0
- bsr DialEntry
- tst.l d0
- beq Exit
- cmp.l #1,d0
- beq SingleDial1
- cmp.l #2,d0
- beq Dialer0.1
- cmp.l #3,d0
- beq Dialer0.1
- bra Dialer0.1
-
- Prefs: lea.l PrefsText1,a0
- bsr Printer
- Prefs1: bsr DoANSI
- lea.l PrefsText2,a0
- bsr Printer
- Prefs2: move.l _stdin,d1
- lib Dos,FGetC
- cmp.l #-1,d0
- beq Menu
- cmp.l #'a',d0
- bcs Prefs3
- cmp.l #'z',d0
- bhi Prefs3
- sub.l #32,d0
- Prefs3: cmp.l #'S',d0
- beq SetSpeed
- cmp.l #'T',d0
- beq Terminal
- cmp.l #'R',d0
- beq ClearSettings
- cmp.l #'L',d0
- beq DoLoad
- cmp.l #'W',d0
- beq DoSave
- cmp.l #'N',d0
- beq NameFile
- cmp.l #'E',d0
- beq Exit1
- cmp.l #'V',d0
- beq DoView
- cmp.l #'U',d0
- beq SetULDir
- cmp.l #'D',d0
- beq SetDLDir
- cmp.l #'+',d0
- beq SetULProg
- cmp.l #'-',d0
- beq SetDLProg
- cmp.l #'A',d0
- beq AssignCTRL_P
- cmp.l #'M',d0
- beq MainMenu
- bra Prefs2
-
- SetULDir: lea.l ULText5,a0
- bsr Printer
- lea.l ULDir,a0
- move.l #128,d3
- bsr GetString
- bra Prefs1
-
- SetDLDir: lea.l DLText5,a0
- bsr Printer
- lea.l DLDir,a0
- move.l #128,d3
- bsr GetString
- bra Prefs1
-
- SetULProg: lea.l ULText1,a0
- bsr Printer
- lea.l ULProgram,a0
- move.l #128,d3
- bsr GetString
- bra Prefs1
-
- SetDLProg: lea.l DLText1,a0
- bsr Printer
- lea.l DLProgram,a0
- move.l #128,d3
- bsr GetString
- bra Prefs1
-
- AssignCTRL_P: lea.l AssignText1,a0
- bsr Printer
-
- move.l _stdin,d1
- lib Dos,Flush
-
- lea.l AssignText2,a0
- bsr Printer
-
- move.l _stdin,d1
- lib Dos,FGetC
- cmp.l #-1,d0
- beq Prefs1
- move.b d0,CPAssign
-
- lea.l CRLFText1,a0
- bsr Printer
- bra Prefs1
-
- NameFile: lea.l EnterNText1,a0
- bsr Printer
-
- lea.l EnterNText2,a0
- bsr Printer
-
- lea.l FileNameBuf1,a0
- move.l #128,d3
- bsr GetString
- tst.l d0
- bne Prefs1
-
- bra Prefs1
-
- DoLoad: lea.l LoadText1,a0
- bsr Printer
- bsr LoadPrefsFile
- bsr CloseSerial
- bsr OpenSerial
- bsr SetSerParams
- bra Prefs1
- DoSave: lea.l SaveText1,a0
- bsr Printer
- bsr SavePrefsFile
- bra Prefs1
-
- DoView: lea.l ViewText1,a0
- bsr Printer
- bsr DoANSI
- bsr GiveSettings
- bsr GetAnyKey
- bra Prefs1
-
- ClearSettings: lea.l ClearText3,a0
- bsr Printer
- move.l #9600,Speed
- move.b #8,DataBits
- move.b #1,StopBits
- clr.l CRTranslate ;All translating (long)
- clr.l SwapBSDEL ;SwapBSDEL+UseANSI+CPAssign+CursorRemap
- bsr SetSerParams
- tst.l d0
- beq Prefs1
- lea.l SerSetText1,a0
- bsr Printer
- bra Prefs1
-
- Terminal: lea.l STerminalText1,a0
- bsr Printer
- Terminal1: bsr DoANSI
- lea.l STerminalText2,a0
- bsr Printer
- Terminal2: move.l _stdin,d1
- lib Dos,FGetC
- cmp.l #-1,d0
- beq Prefs1
- cmp.l #'a',d0
- bcs Terminal3
- cmp.l #'z',d0
- bhi Terminal3
- sub.l #32,d0
- Terminal3: cmp.l #'L',d0
- beq SetLocalEcho
- cmp.l #'S',d0
- beq SetSwapBSDEL
- cmp.l #'1',d0
- beq SetCRTrans
- cmp.l #'2',d0
- beq SetLFTrans
- cmp.l #'3',d0
- beq SetCRTransIn
- cmp.l #'4',d0
- beq SetLFTransIn
- cmp.l #'A',d0
- beq SetANSIMode
- cmp.l #'C',d0
- beq SetCRemapMode
- cmp.l #'E',d0
- beq Exit1
- cmp.l #'M',d0
- beq MainMenu
- cmp.l #'-',d0
- beq Prefs
- bra Terminal2
-
- SetCRemapMode: bchg.b #0,CursorRemap
- beq SetCRemapMode1
- lea.l CRemapText2,a0
- bsr Printer
- bra Terminal1
- SetCRemapMode1: lea.l CRemapText1,a0
- bsr Printer
- bra Terminal1
-
- SetANSIMode: bchg.b #0,UseANSI
- beq SetANSIMode1
- lea.l ANSIText2,a0
- bsr Printer
- bra Terminal1
- SetANSIMode1: lea.l ANSIText1,a0
- bsr Printer
- bra Terminal1
-
- SetSwapBSDEL: bchg.b #0,SwapBSDEL
- beq SetSwapBSDEL1
- lea.l SwapText2,a0
- bsr Printer
- bra Terminal1
- SetSwapBSDEL1: lea.l SwapText1,a0
- bsr Printer
- bra Terminal1
-
- SetCRTrans: lea.l CRTransText1,a0
- bsr Printer
- lea.l CRTransText2,a0
- bsr Printer
- bsr GetNSA
- cmp.l #-1,d0
- beq Terminal1
- move.b d0,CRTranslate
- bra Terminal1
-
- SetLFTrans: lea.l LFTransText1,a0
- bsr Printer
- lea.l LFTransText2,a0
- bsr Printer
- bsr GetNSA
- cmp.l #-1,d0
- beq Terminal1
- move.b d0,LFTranslate
- bra Terminal1
-
- SetCRTransIn: lea.l CRTransText3,a0
- bsr Printer
- lea.l CRTransText2,a0
- bsr Printer
- bsr GetNSA
- cmp.l #-1,d0
- beq Terminal1
- move.b d0,CRTranslateIn
- bra Terminal1
-
- SetLFTransIn: lea.l LFTransText3,a0
- bsr Printer
- lea.l LFTransText2,a0
- bsr Printer
- bsr GetNSA
- cmp.l #-1,d0
- beq Terminal1
- move.b d0,LFTranslateIn
- bra Terminal1
-
- SetLocalEcho: bchg.b #0,LocalEcho
- beq SetLocalEcho1
- lea.l EchoText2,a0
- bsr Printer
- bra Terminal1
- SetLocalEcho1: lea.l EchoText1,a0
- bsr Printer
- bra Terminal1
-
- SetSpeed: lea.l SpeedText11,a0
- bsr Printer
- SetSpeed1: bsr DoANSI
- lea.l SpeedText1,a0
- bsr Printer
- SetSpeed2: move.l _stdin,d1
- lib Dos,FGetC
- cmp.l #-1,d0
- beq Prefs1
- cmp.l #'a',d0
- bcs SetSpeed3
- cmp.l #'z',d0
- bhi SetSpeed3
- sub.l #32,d0
- SetSpeed3: move.l Speed,d7 ;get real speed if fail later
- cmp.l #'0',d0
- beq DoSpeed0
- cmp.l #'1',d0
- beq DoSpeed1
- cmp.l #'2',d0
- beq DoSpeed2
- cmp.l #'3',d0
- beq DoSpeed3
- cmp.l #'4',d0
- beq DoSpeed4
- cmp.l #'5',d0
- beq DoSpeed5
- cmp.l #'6',d0
- beq DoSpeed6
- cmp.l #'7',d0
- beq DoSpeed7
- cmp.l #'8',d0
- beq DoSpeed8
- cmp.l #'9',d0
- beq DoSpeed9
- cmp.l #'D',d0
- beq SetDataBits
- cmp.l #'S',d0
- beq SetStopBits
- cmp.l #'N',d0
- beq SetDevice
- cmp.l #'R',d0
- beq ReOpenDevice
- cmp.l #'E',d0
- beq Exit1
- cmp.l #'M',d0
- beq MainMenu
- cmp.l #'-',d0
- beq Prefs
- bra SetSpeed2
-
- DoSpeed1: move.l #110,Speed
- bra DoSpeed_OUT
- DoSpeed2: move.l #300,Speed
- bra DoSpeed_OUT
- DoSpeed3: move.l #1200,Speed
- bra DoSpeed_OUT
- DoSpeed4: move.l #2400,Speed
- bra DoSpeed_OUT
- DoSpeed5: move.l #4800,Speed
- bra DoSpeed_OUT
- DoSpeed6: move.l #9600,Speed
- bra DoSpeed_OUT
- DoSpeed7: move.l #19200,Speed
- bra DoSpeed_OUT
- DoSpeed8: move.l #38400,Speed
- bra DoSpeed_OUT
- DoSpeed9: move.l #57600,Speed
- bra DoSpeed_OUT
- DoSpeed0: move.l #115200,Speed
- DoSpeed_OUT: lea.l SpeedText13,a0
- bsr Printer
-
- bsr SetSerParams
- tst.l d0
- beq DoSpeed_OUT1
-
- lea.l SpeedText12,a0
- bsr Printer
- move.l d7,Speed
- DoSpeed_OUT1: bra SetSpeed1 ;OPTI
-
- SetDevice: lea.l NameText1,a0
- bsr Printer
-
- lea.l NameText2,a0
- bsr Printer
-
- lea.l SerDevNBuffer1,a0
- move.l #32,d3
- bsr GetString
- tst.l d0
- bne SetSpeed1
-
- lea.l NameText3,a0
- bsr Printer
-
- lea.l DialBuffer1,a0
- move.l #12,d3
- bsr GetString
- tst.l d0
- bne SetSpeed1
-
- lea.l DialBuffer1,a0
- bsr ConvASCII
- move.l d0,SerUnit
-
- lea.l CRLFText1,a0
- bsr Printer
-
- bsr CloseSerial
- bsr OpenSerial
- bra SetSpeed1
-
- ReOpenDevice: lea.l ReOpenText1,a0
- bsr Printer
- bsr CloseSerial
- bsr OpenSerial
- bra SetSpeed1
-
- SetDataBits: move.b DataBits,d7
- SetDataBits0.1: cmp.b #7,DataBits
- beq SetDataBits1
- move.b #7,DataBits
- lea.l DBitsText1,a0
- bsr Printer
- bra SetDataBits2
- SetDataBits1: move.b #8,DataBits
- lea.l DBitsText2,a0
- bsr Printer
- bra SetSpeed1
- SetDataBits2: bsr SetSerParams
- tst.l d0
- beq SetSpeed1
- move.b d7,DataBits
- lea.l DBitsText3,a0
- bsr Printer
- bra SetSpeed1
-
- SetStopBits: move.b StopBits,d7
- SetStopBits0.1: cmp.b #1,StopBits
- beq SetStopBits1
- move.b #1,StopBits
- lea.l SBitsText1,a0
- bsr Printer
- bra SetStopBits2
- SetStopBits1: move.b #2,StopBits
- lea.l SBitsText2,a0
- bsr Printer
- bra SetSpeed1
- SetStopBits2: bsr SetSerParams
- tst.l d0
- beq SetSpeed1
- move.b d7,StopBits
- lea.l SBitsText3,a0
- bsr Printer
- bra SetSpeed1
-
- ;Dials one number. Fails for three reasons, because the user decided
- ;to skip this entry, to cancel dialing or to remove this entry.
- ;If a busy is found, a value of 1 will be returned.
- ;
- ;Inputs a0 = pointer to phonenumber (ASCII text)
- ;
- ;Result d0 = Success (0=Connect, 1=Skipped, 2=Cancelled, 3=Remove this entry)
- ;
-
- DialEntry: push d2-d7/a2-a6
- move.l a0,a4
-
- DialEntry1: lea.l DialPrefix,a1
- bsr GetLength
- lea.l DialPrefix,a0
- bsr Writer2
- move.l a4,a1
- bsr GetLength
- move.l a4,a0
- bsr Writer2
- lea.l CRLFText1,a1
- bsr GetLength
- lea.l CRLFText1,a0
- bsr Writer2
- lea.l DialingText1,a0
- bsr Printer
- move.l a4,a0
- bsr Printer
- lea.l CRLFText1,a0
- bsr Printer
- move.l #BUFLEN,d0 ;try to read ATDT etc.
- move.l #1,d1
- bsr Read
-
- DialEntry2: move.l #10,d1
- lib Dos,Delay
- move.l #BUFLEN,d0
- move.l #4,d1
- bsr Read
- tst.l d0
- beq DialEntry3
- lea.l Buffer3,a0
- clr.b 0(a0,d0.l) ;null terminated, please!
- move.w #'CO',d0
- lea.l Buffer3,a0
- bsr FindWord
- bne DialEntry_OUT1
- move.w #'BU',d0
- lea.l Buffer3,a0
- bsr FindWord
- bne DialEntry4
- move.w #'NO',d0
- lea.l Buffer3,a0
- bsr FindWord
- bne DialEntry_OUT2
- DialEntry3: move.l _stdin,d1
- move.l #10000,d2
- lib Dos,WaitForChar
- tst.l d0
- beq DialEntry2
- move.l _stdin,d1
- lea.l Buffer2,a0
- move.l a0,d2
- move.l #1,d3
- lib Dos,Read
- cmp.l #1,d0
- bne DialEntry2
- cmp.b #' ',Buffer2 ;Space
- beq DialEntry_OUT2
- cmp.b #27,Buffer2 ;ESC
- beq DialEntry_OUT3
- cmp.b #8,Buffer2 ;BS
- beq DialEntry_OUT4
- bra DialEntry2
- DialEntry4: lea.l BusyText1,a0
- bsr Printer
- move.l #50+25,d1
- lib Dos,Delay
- pull d2-d7/a2-a6
- move.l #1,d0
- rts
- DialEntry_OUT1: move.l #BUFLEN,d0 ;try to read extra stuff
- move.l #1,d1
- bsr Read
- lea.l ConnectText1,a0
- bsr Printer
- pull d2-d7/a2-a6
- clr.l d0
- rts
- DialEntry_OUT2: lea.l CRLFText1,a1
- bsr GetLength
- lea.l CRLFText1,a0
- bsr Writer2
- lea.l SkippedText1,a0
- bsr Printer
- move.l #50+25,d1
- lib Dos,Delay
- pull d2-d7/a2-a6
- move.l #1,d0
- rts
- DialEntry_OUT3: lea.l CancelledText1,a0
- bsr Printer
- lea.l CRLFText1,a1
- bsr GetLength
- lea.l CRLFText1,a0
- bsr Writer2
- move.l #50+25,d1
- lib Dos,Delay
- pull d2-d7/a2-a6
- move.l #2,d0
- rts
- DialEntry_OUT4: lea.l CRLFText1,a1
- bsr GetLength
- lea.l CRLFText1,a0
- bsr Writer2
- move.l #55,d1
- lib Dos,Delay
- lea.l RemoveText1,a0
- bsr Printer
- pull d2-d7/a2-a6
- move.l #3,d0
- rts
-
- Break: lea.l BreakText1,a0
- bsr Printer
- clr.l d0
- rts
-
- ClearSer: move.l IORRequest,a1
- lib Exec,CheckIO
- tst.l d0
- beq ClearSer1
- move.l IORRequest,a1
- lib Exec,WaitIO
- rts
-
- ClearSer1: move.l IORRequest,a1
- ABORTIO
- move.l IORRequest,a1
- lib Exec,WaitIO
- rts
-
- ;Buffered read from a device
- ;
- ;Inputs d0 = Buffer length (maximum amount to read)
- ; d1 = Minimum amout to read
- ;
- ;Result d0 = Amount actually read
- ;
-
- Read: push d2-d7/a2-a6
- move.l d0,d4
- move.l d1,d5
-
- move.l IOWRequest,a1 ;get amount of bytes
- move.w #SDCMD_QUERY,IO_COMMAND(a1) ;in buffer
- or.b #IOF_QUICK,IO_FLAGS(a1)
- lib Exec,DoIO
-
- move.l IOWRequest,a1
- move.l IO_ACTUAL(a1),d0
- beq Read_OUT1
- cmp.l d5,d0
- bmi Read_OUT1
- cmp.l d4,d0
- bls Read1
- move.l d4,d0 ;available > buffer size
- Read1: move.l IORRequest,a1
- move.l d0,IO_LENGTH(a1)
- BEGINIO
-
- move.l IORRequest,a1
- move.l IO_ACTUAL(a1),d0 ;even on error we return
- add.l d0,Received ;correct amount in buffer
- pull d2-d7/a2-a6
- rts
-
- Read_OUT1: clr.l d0
- pull d2-d7/a2-a6
- rts
-
- Writer: tst.w SerOpen
- beq Writer1.1
- add.l #1,Sent
- move.l IOWRequest,a1
- move.l #1,IO_LENGTH(a1) ;writes in one byte "chunks"
- move.w #CMD_WRITE,IO_COMMAND(a1)
- lea.l Buffer1,a0
- move.l a0,IO_DATA(a1)
- lib Exec,DoIO ;May freeze, too bad
- Writer1.1: rts
-
- ;Writes string to serial port
- ;
- ;D0 = Length
- ;A0 = String
-
- Writer2: tst.w SerOpen
- beq Writer2.1
- add.l d0,Sent
- move.l IOWRequest,a1
- move.w #CMD_WRITE,IO_COMMAND(a1)
- move.l d0,IO_LENGTH(a1)
- move.l a0,IO_DATA(a1)
- lib Exec,DoIO ;May freeze, too bad
- Writer2.1: rts
-
- DoCapture: move.l CaptureFile,d1
- beq DoCapture_OUT
- lea.l Buffer4,a1
- bsr GetLength
- move.l d0,d3
- lea.l Buffer4,a0
- move.l a0,d2
- lib Dos,Write
- DoCapture_OUT: rts
-
- SetSerParams: move.l IOWRequest,a1
- clr.l IO_LENGTH(a1)
- clr.l IO_DATA(a1)
- move.w #SDCMD_SETPARAMS,IO_COMMAND(a1)
- move.l Speed,IO_BAUD(a1)
- move.b DataBits,IO_READLEN(a1)
- move.b DataBits,IO_WRITELEN(a1)
- move.b StopBits,IO_STOPBITS(a1)
- lib Exec,DoIO
- rts
-
- SendBREAK: move.l IOWRequest,a1
- move.w #SDCMD_BREAK,IO_COMMAND(a1)
- or.b #IOF_QUICK,IO_FLAGS(a1)
- lib Exec,DoIO
- rts
-
- DoCLIInput: lea.l Buffer1,a0
- cmp.b #CR,Buffer1
- beq DoCLIInput3
- cmp.b #LF,Buffer1
- beq DoCLIInput4
- cmp.b #BS,Buffer1
- beq DoCLIInput5
- cmp.b #DEL,Buffer1
- beq DoCLIInput6
- cmp.b #CSI,Buffer1
- beq DoCSI
- DoCLIInput1: bsr Writer
- btst.b #0,LocalEcho
- beq DoCLIInput2
- lea.l Buffer1,a0
- bsr Printer
- DoCLIInput2: rts
- DoCLIInput3: tst.b CRTranslate
- beq DoCLIInput1
- cmp.b #1,CRTranslate
- beq DoCLIInput2
- cmp.b #2,CRTranslate
- bne DoCLIInput2
- bsr DoCLIInput1
- move.b #LF,Buffer1
- bra DoCLIInput1
- DoCLIInput4: tst.b LFTranslate
- beq DoCLIInput1
- cmp.b #1,LFTranslate
- beq DoCLIInput2
- cmp.b #2,LFTranslate
- bne DoCLIInput2
- move.b #CR,Buffer1
- bsr DoCLIInput1
- move.b #LF,Buffer1
- bra DoCLIInput1
- DoCLIInput5: tst.b SwapBSDEL
- beq DoCLIInput1
- move.b #DEL,Buffer1
- bra DoCLIInput1
- DoCLIInput6: tst.b SwapBSDEL
- beq DoCLIInput1
- move.b #BS,Buffer1
- bra DoCLIInput1
-
- DoCSI: tst.b CursorRemap
- beq DoCSI_OUT
- move.l _stdin,d1
- lea.l Buffer1,a0
- move.l a0,d2
- move.l #1,d3
- lib Dos,Read
- cmp.b #Cursor_Up,Buffer1
- beq DoCSI1
- cmp.b #Cursor_Down,Buffer1
- beq DoCSI2
- cmp.b #Cursor_Left,Buffer1
- beq DoCSI3
- cmp.b #Cursor_Right,Buffer1
- beq DoCSI4
- bra DoCLIInput1
- DoCSI1: move.b #CTRL_P,Buffer1
- bra DoCLIInput1
- DoCSI2: move.b #CTRL_N,Buffer1
- bra DoCLIInput1
- DoCSI3: move.b #CTRL_B,Buffer1
- bra DoCLIInput1
- DoCSI4: move.b #CTRL_F,Buffer1
- DoCSI_OUT: bra DoCLIInput1
-
- DoSerialInput: push d0-d7/a2-a6
- lea.l Buffer3,a0
- lea.l Buffer4,a1
- DoSerialInput1: tst.b (a0)
- beq DoSerialInput3.1
- cmp.b #CR,(a0)
- beq DoSerialInput4
- cmp.b #LF,(a0)
- beq DoSerialInput6
- DoSerialInput2: move.b (a0)+,(a1)+
- bra DoSerialInput1
- DoSerialInput3: pull d0-d7/a2-a6
- rts
- DoSerialInput3.1: clr.b (a1)
- pull d0-d7/a2-a6
- rts
- DoSerialInput4: tst.b CRTranslateIn
- beq DoSerialInput2
- cmp.b #1,CRTranslateIn
- bne DoSerialInput5
- add.l #1,a0
- bra DoSerialInput1
- DoSerialInput5: cmp.b #2,CRTranslateIn
- bne DoSerialInput2
- move.b #CR,(a1)+
- move.b #LF,(a1)+
- add.l #1,a0
- bra DoSerialInput1
- DoSerialInput6: tst.b LFTranslateIn
- beq DoSerialInput2
- cmp.b #1,LFTranslateIn
- bne DoSerialInput7
- add.l #1,a0
- bra DoSerialInput1
- DoSerialInput7: cmp.b #2,LFTranslateIn
- bne DoSerialInput2
- move.b #CR,(a1)+
- move.b #LF,(a1)+
- add.l #1,a0
- bra DoSerialInput1
-
- ;gets anykey from user
- ;
- ;Results d0 = -1 for error, otherwise d0 = key pressed
-
- GetAnyKey: lea.l AnyKeyText1,a0
- bsr Printer
- move.l _stdin,d1
- lib Dos,Flush
- move.l _stdin,d1
- lib Dos,FGetC
- lea.l CRLFText1,a0
- bsr Printer
- rts
-
- ;Gets a string from the user, null terminated
- ;
- ;Inputs a0 = pointer to buffer
- ; d3 = length of buffer
- ;
- ;Result d0 = -1 if failed
- ;
-
- GetString: push a0
- push a0
- move.l _stdin,d1
- move.l #FALSE,d2
- lib Dos,SetMode
-
- move.l _stdin,d1
- lib Dos,Flush
-
- move.l _stdin,d1
- pull d2
- lib Dos,FGets
- tst.l d0
- beq GetString_OUT2
-
- pull a0
- bsr GetLLength
- clr.b -1(a0,d1.l) ;remove LF
-
- move.l _stdin,d1
- move.l #TRUE,d2
- lib Dos,SetMode
-
- move.l _stdin,d1
- lib Dos,Flush
-
- clr.l d0
- rts
-
- GetString_OUT2: move.l #-1,d0
- rts
-
- ;Gets input from user
- ;
- ;Results d0 = 0 for N, 1 for S, 2 for A, -1 for error
-
- GetNSA: move.l _stdin,d1
- lib Dos,FGetC
- cmp.l #-1,d0
- beq GetNSA_ERR1
- cmp.l #'a',d0
- bcs GetNSA0.1
- cmp.l #'z',d0
- bhi GetNSA0.1
- sub.l #32,d0
- GetNSA0.1: cmp.l #'N',d0
- beq GetNSA1
- cmp.l #'S',d0
- beq GetNSA2
- cmp.l #'A',d0
- beq GetNSA3
- cmp.l #CR,d0
- beq GetNSA_ERR1
- cmp.l #LF,d0
- beq GetNSA_ERR1
- bra GetNSA
- GetNSA1: lea.l NoneText1,a0
- bsr Printer
- move.l #0,d0
- rts
- GetNSA2: lea.l StripText1,a0
- bsr Printer
- move.l #1,d0
- rts
- GetNSA3: lea.l AddText1,a0
- bsr Printer
- move.l #2,d0
- rts
- GetNSA_ERR1: move.l #-1,d0
- rts
-
- ;Give NSA
- ;
- ;Inputs d0 = NSA qualifier(?)
- ;
-
- GiveNSA: tst.b d0
- beq GiveNSA1
- cmp.b #1,d0
- beq GiveNSA2
- cmp.b #2,d0
- beq GiveNSA3
- lea.l NAText1,a0
- bsr Printer
- rts
- GiveNSA1: lea.l NText1,a0
- bsr Printer
- rts
- GiveNSA2: lea.l SText1,a0
- bsr Printer
- rts
- GiveNSA3: lea.l AText1,a0
- bsr Printer
- rts
-
- Nope: lea.l SpaceText1,a0
- bsr Printer
- rts
- Yep: lea.l StarText1,a0
- bsr Printer
- rts
-
- GiveSettings: clr.l SpeedText90
- clr.l SpeedText90+4
- lea.l fstrl3,a0 ;HEX->ASCII
- lea.l Speed,a1 ;Number2Print
- lea.l PutChProc,a2
- lea.l SpeedText90,a3 ;Destination
- lib Exec,RawDoFmt
-
- lea.l CurrentText1,a0
- bsr Printer
-
- tst.l Speed
- beq GiveSettings0.1
- lea.l SpeedText90,a0
- bsr Printer
- bra GiveSettings0.2
-
- GiveSettings0.1: lea.l DefText1,a0
- bsr Printer
-
- GiveSettings0.2: lea.l CurrentText2,a0
- bsr Printer
-
- tst.w LocalEcho
- bne GiveSettings1
- bsr Nope
- bra GiveSettings2
- GiveSettings1: bsr Yep
-
- GiveSettings2: lea.l CurrentText7,a0
- bsr Printer
-
- lea.l CurrentText3,a0
- bsr Printer
-
- move.b CRTranslate,d0
- bsr GiveNSA
-
- lea.l CurrentText4,a0
- bsr Printer
-
- move.b LFTranslate,d0
- bsr GiveNSA
-
- lea.l CurrentText7,a0
- bsr Printer
-
- lea.l CurrentText5,a0
- bsr Printer
-
- move.b CRTranslateIn,d0
- bsr GiveNSA
-
- lea.l CurrentText6,a0
- bsr Printer
-
- move.b LFTranslateIn,d0
- bsr GiveNSA
-
- lea.l CurrentText7,a0
- bsr Printer
-
- lea.l CurrentText8,a0
- bsr Printer
-
- cmp.b #7,DataBits
- bne GiveSettings3
- lea.l SevenText1,a0
- bsr Printer
- bra GiveSettings4
- GiveSettings3: cmp.b #8,DataBits
- bne GiveSettings3.1
- lea.l EightText1,a0
- bsr Printer
- bra GiveSettings4
- GiveSettings3.1: lea.l DefText1,a0
- bsr Printer
-
- GiveSettings4: lea.l CurrentText9,a0
- bsr Printer
-
- cmp.b #1,StopBits
- bne GiveSettings5
- lea.l OneText1,a0
- bsr Printer
- bra GiveSettings6
- GiveSettings5: cmp.b #2,StopBits
- bne GiveSettings5.1
- lea.l TwoText1,a0
- bsr Printer
- bra GiveSettings6
- GiveSettings5.1: lea.l DefText1,a0
- bsr Printer
-
- GiveSettings6: lea.l CurrentText7,a0
- bsr Printer
-
- lea.l CurrentText9.1,a0
- bsr Printer
-
- tst.b SwapBSDEL
- bne GiveSettings7
- bsr Nope
- bra GiveSettings8
- GiveSettings7: bsr Yep
-
- GiveSettings8: lea.l CurrentText9.11,a0
- bsr Printer
-
- tst.b UseANSI
- bne GiveSettings9
- bsr Nope
- bra GiveSettings10
- GiveSettings9: bsr Yep
-
- GiveSettings10: lea.l CurrentText7,a0
- bsr Printer
-
- lea.l CurrentText9.12,a0
- bsr Printer
-
- tst.b CursorRemap
- bne GiveSettings11
- bsr Nope
- bra GiveSettings12
- GiveSettings11: bsr Yep
-
- GiveSettings12: lea.l CurrentText7,a0
- bsr Printer
-
- lea.l CurrentText9.2,a0
- bsr Printer
-
- clr.w CPAssignText
- clr.l CTRLPASCII
- move.b CPAssign,CPAssignText+1
- lea.l fstrl4,a0 ;HEX->ASCII
- lea.l CPAssignText,a1 ;Number2Print
- lea.l PutChProc,a2
- lea.l CTRLPASCII,a3 ;Destination
- lib Exec,RawDoFmt
-
- lea.l CTRLPASCII,a0
- bsr Printer
-
- lea.l CRLFText1,a0
- bsr Printer
-
- lea.l CurrentText9.3,a0
- bsr Printer
-
- lea.l ULProgram,a0
- bsr Printer
-
- lea.l CurrentText9.4,a0
- bsr Printer
-
- lea.l DLProgram,a0
- bsr Printer
-
- lea.l CurrentText9.5,a0
- bsr Printer
-
- lea.l ULDir,a0
- bsr Printer
-
- lea.l CurrentText9.6,a0
- bsr Printer
-
- lea.l DLDir,a0
- bsr Printer
-
- lea.l CRLFText1,a0
- bsr Printer
-
- lea.l CurrentText10,a0
- bsr Printer
-
- lea.l SerDevNBuffer1,a0
- bsr Printer
-
- lea.l CurrentText11,a0
- bsr Printer
-
- lea.l fstrl3,a0 ;HEX->ASCII
- lea.l SerUnit,a1 ;Number2Print
- lea.l PutChProc,a2
- lea.l CurrentText12,a3 ;Destination
- lib Exec,RawDoFmt
-
- lea.l CurrentText12,a0
- bsr Printer
-
- lea.l CurrentText13,a0
- bsr Printer
-
- lea.l FileNameBuf1,a0
- bsr Printer
-
- lea.l CRLFText1,a0
- bsr Printer
-
- rts
-
- GiveStats: lea.l fstrl1,a0 ;HEX->ASCII
- lea.l Received,a1 ;Number2Print
- lea.l PutChProc,a2
- lea.l ReceivedText1,a3 ;Destination
- lib Exec,RawDoFmt
-
- lea.l fstrl2,a0 ;HEX->ASCII
- lea.l Sent,a1 ;Number2Print
- lea.l PutChProc,a2
- lea.l SentText1,a3 ;Destination
- lib Exec,RawDoFmt
-
- lea.l StatsText1,a0
- bsr Printer
- lea.l ReceivedText1,a0
- bsr Printer
- lea.l SentText1,a0
- bsr Printer
- lea.l CRLFText1,a0
- bsr Printer
- rts
-
- PrintEntries: tst.b DialPrefix
- beq PrintEntries1
- lea.l PrefixText1,a0
- bsr Printer
- lea.l DialPrefix,a0
- bsr Printer
- lea.l CRLFText1,a0
- bsr Printer
- PrintEntries1: tst.b Entry1
- beq PrintEntries2
- lea.l EntryText1,a0
- bsr Printer
- lea.l Entry1,a0
- bsr Printer
- lea.l CRLFText1,a0
- bsr Printer
- PrintEntries2: tst.b Entry2
- beq PrintEntries3
- lea.l EntryText2,a0
- bsr Printer
- lea.l Entry2,a0
- bsr Printer
- lea.l CRLFText1,a0
- bsr Printer
- PrintEntries3: tst.b Entry3
- beq PrintEntries4
- lea.l EntryText3,a0
- bsr Printer
- lea.l Entry3,a0
- bsr Printer
- lea.l CRLFText1,a0
- bsr Printer
- PrintEntries4: tst.b Entry4
- beq PrintEntries5
- lea.l EntryText4,a0
- bsr Printer
- lea.l Entry4,a0
- bsr Printer
- lea.l CRLFText1,a0
- bsr Printer
- PrintEntries5: tst.b Entry5
- beq PrintEntries6
- lea.l EntryText5,a0
- bsr Printer
- lea.l Entry5,a0
- bsr Printer
- lea.l CRLFText1,a0
- bsr Printer
- PrintEntries6: tst.b Entry6
- beq PrintEntries7
- lea.l EntryText6,a0
- bsr Printer
- lea.l Entry6,a0
- bsr Printer
- lea.l CRLFText1,a0
- bsr Printer
- PrintEntries7: tst.b Entry7
- beq PrintEntries8
- lea.l EntryText7,a0
- bsr Printer
- lea.l Entry7,a0
- bsr Printer
- lea.l CRLFText1,a0
- bsr Printer
- PrintEntries8: tst.b Entry8
- beq PrintEntries9
- lea.l EntryText8,a0
- bsr Printer
- lea.l Entry8,a0
- bsr Printer
- lea.l CRLFText1,a0
- bsr Printer
- PrintEntries9: tst.b Entry9
- beq PrintEntries10
- lea.l EntryText9,a0
- bsr Printer
- lea.l Entry9,a0
- bsr Printer
- lea.l CRLFText1,a0
- bsr Printer
- PrintEntries10: tst.b Entry10
- beq PrintEntries11
- lea.l EntryText10,a0
- bsr Printer
- lea.l Entry10,a0
- bsr Printer
- lea.l CRLFText1,a0
- bsr Printer
- PrintEntries11: rts
-
- PrintSelect: lea.l SelectedText1,a0
- bsr Printer
- lea.l SelectText1,a0
- bsr Printer
- tst.b EntrySelected1
- beq PrintSelect1
- lea.l SelectText11,a0
- bsr Printer
- bra PrintSelect2
- PrintSelect1: lea.l SelectText12,a0
- bsr Printer
- PrintSelect2: lea.l SelectText2,a0
- bsr Printer
- tst.b EntrySelected2
- beq PrintSelect3
- lea.l SelectText11,a0
- bsr Printer
- bra PrintSelect4
- PrintSelect3: lea.l SelectText12,a0
- bsr Printer
- PrintSelect4: lea.l SelectText3,a0
- bsr Printer
- tst.b EntrySelected3
- beq PrintSelect5
- lea.l SelectText11,a0
- bsr Printer
- bra PrintSelect6
- PrintSelect5: lea.l SelectText12,a0
- bsr Printer
- PrintSelect6: lea.l SelectText4,a0
- bsr Printer
- tst.b EntrySelected4
- beq PrintSelect7
- lea.l SelectText11,a0
- bsr Printer
- bra PrintSelect8
- PrintSelect7: lea.l SelectText12,a0
- bsr Printer
- PrintSelect8: lea.l SelectText5,a0
- bsr Printer
- tst.b EntrySelected5
- beq PrintSelect9
- lea.l SelectText11,a0
- bsr Printer
- bra PrintSelect10
- PrintSelect9: lea.l SelectText12,a0
- bsr Printer
- PrintSelect10: lea.l SelectText6,a0
- bsr Printer
- tst.b EntrySelected6
- beq PrintSelect11
- lea.l SelectText11,a0
- bsr Printer
- bra PrintSelect12
- PrintSelect11: lea.l SelectText12,a0
- bsr Printer
- PrintSelect12: lea.l SelectText7,a0
- bsr Printer
- tst.b EntrySelected7
- beq PrintSelect13
- lea.l SelectText11,a0
- bsr Printer
- bra PrintSelect14
- PrintSelect13: lea.l SelectText12,a0
- bsr Printer
- PrintSelect14: lea.l SelectText8,a0
- bsr Printer
- tst.b EntrySelected8
- beq PrintSelect15
- lea.l SelectText11,a0
- bsr Printer
- bra PrintSelect16
- PrintSelect15: lea.l SelectText12,a0
- bsr Printer
- PrintSelect16: lea.l SelectText9,a0
- bsr Printer
- tst.b EntrySelected9
- beq PrintSelect17
- lea.l SelectText11,a0
- bsr Printer
- bra PrintSelect18
- PrintSelect17: lea.l SelectText12,a0
- bsr Printer
- PrintSelect18: lea.l SelectText0,a0
- bsr Printer
- tst.b EntrySelected0
- beq PrintSelect19
- lea.l SelectText13,a0
- bsr Printer
- bra PrintSelect20
- PrintSelect19: lea.l SelectText14,a0
- bsr Printer
- PrintSelect20: lea.l CRLFText1,a0
- bsr Printer
- rts
-
- LoadPrefsFile: lea.l FileNameBuf1,a0
- move.l a0,d1
- move.l #MODE_OLDFILE,d2
- lib Dos,Open
- move.l d0,PrefsFile
- bne LoadPrefsFile1
-
- lea.l FileErrorText1,a0
- bsr Printer
- lea.l FileNameBuf1,a0
- bsr Printer
- lea.l CRLFText1,a0
- bsr Printer
- bra LoadPF_ERR1
-
- LoadPrefsFile1: move.l PrefsFile,d1
- lea.l PrefsStart,a0
- move.l a0,d2
- move.l #2,d3
- lib Dos,Read
- cmp.l #2,d0
- beq LoadPrefsFile2
-
- lea.l FileErrorText2,a0
- bsr Printer
- bra LoadPF_ERR1
-
- LoadPrefsFile2: cmp.w #'ST',PrefsStart
- beq LoadPrefsFile3
-
- lea.l FileErrorText3,a0
- bsr Printer
- bra LoadPF_ERR1
-
- LoadPrefsFile3: move.l PrefsFile,d1
- lea.l SerDevNBuffer1,a0
- move.l a0,d2
- move.l #PrefsSize-2,d3
- lib Dos,Read
- cmp.l #PrefsSize-2,d0
- beq LoadPrefsFile4
-
- lea.l FileErrorText2,a0
- bsr Printer
- bra LoadPF_ERR2
-
- LoadPrefsFile4:
- LoadPF_OUT: bsr KillPFile
- move.l #-1,d0
- rts
- LoadPF_ERR1: clr.l d0
- rts
- LoadPF_ERR2: bsr KillPFile
- clr.l d0
- rts
-
- SavePrefsFile: lea.l FileNameBuf1,a0
- move.l a0,d1
- move.l #MODE_NEWFILE,d2
- lib Dos,Open
- move.l d0,PrefsFile
- bne SavePrefsFile1
-
- lea.l FileErrorText1,a0
- bsr Printer
- lea.l FileNameBuf1,a0
- bsr Printer
- lea.l CRLFText1,a0
- bsr Printer
- bra SavePF_ERR1
-
- SavePrefsFile1: move.w #'ST',PrefsStart
-
- move.l PrefsFile,d1
- lea.l PrefsStart,a0
- move.l a0,d2
- move.l #PrefsSize,d3
- lib Dos,Write
- cmp.l #PrefsSize,d0
- beq SavePF_OUT
-
- lea.l FileErrorText4,a0
- bsr Printer
- bra SavePF_ERR2
-
- SavePF_OUT: bsr KillPFile
- move.l #-1,d0
- rts
- SavePF_ERR1: clr.l d0
- rts
- SavePF_ERR2: bsr KillPFile
- clr.l d0
- rts
-
- KillPFile: move.l PrefsFile,d1
- beq KillPFile1
- lib Dos,Close
- clr.l PrefsFile
- KillPFile1: rts
-
- ShutDown: bsr CloseSerial
- ShutDown9000: move.l IORRequest,a0
- lib Exec,DeleteIORequest
-
- move.l SRRPort,a0
- lib Exec,DeleteMsgPort
-
- move.l IOWRequest,a0
- lib Exec,DeleteIORequest
-
- move.l SWRPort,a0
- lib Exec,DeleteMsgPort
-
- move.l _stdin,d1
- beq ShutDown8000
- move.l #FALSE,d2
- lib Dos,SetMode
-
- ShutDown8000: bsr KillPFile
-
- move.l CaptureFile,d1
- beq ShutDown7000
- lib Dos,Close
- ShutDown7000:
- ShutDown1000: closlib Dos
- pull d2-d7/a2-a6
- clr.l d0
- rts
-
- ;open serial.device
-
- OpenSerial: lea.l SerDevNBuffer1,a0
- move.l SerUnit,d0
- move.l IORRequest,a1
- move.b #SERF_SHARED,IO_SERFLAGS(a1)
- move.l Speed,IO_BAUD(a1)
- move.b DataBits,IO_READLEN(a1)
- move.b DataBits,IO_WRITELEN(a1)
- move.b StopBits,IO_STOPBITS(a1)
- clr.l d1 ;no flags
- lib Exec,OpenDevice
- tst.l d0
- bne NoSerial
- move.w #$1,SerOpen ;just to tell if open
-
- ;Copy info from one req to the other
-
- move.l IORRequest,a0
- move.l IOWRequest,a1
- move.l IO_DEVICE(a0),IO_DEVICE(a1)
- move.l IO_UNIT(a0),IO_UNIT(a1)
- add.l #48,a0 ;get start of ioser
- add.l #48,a1
- move.l #34,d0
- lib Exec,CopyMem
-
- move.l #BUFLEN,d0 ;just so the request is used
- move.l #0,d1
- bsr Read
-
- clr.l d0
- rts
-
- CloseSerial: tst.w SerOpen
- beq CloseSerial1
- bsr ClearSer
- move.l IORRequest,a1
- lib Exec,CloseDevice
- clr.w SerOpen
- CloseSerial1: rts
-
- ;Get length of text in given address
- ;
- ;Input a1 = Address of null terminated text string
- ;
- ;Result d0 = Length
-
- GetLength: clr.l d0
- cmp.l #$00,a1 ;fixes enforcer hit
- beq GetLength_OUT
- GetLength2: add.l #1,d0
- tst.b (a1)+
- bne GetLength2
- sub.l #1,d0 ;don't include NULL
- GetLength_OUT: rts
-
-
- ;Get line length of text in given address, including LF
- ;
- ;Input a0 = Address of LF terminated text string
- ;
- ;Result d1 = Length
-
- GetLLength: push a0
- clr.l d1
- cmp.l #$00,a0 ;fixes enforcer hit
- beq GetLLength_OUT
- GetLLength2: add.l #1,d1
- cmp.b #10,(a0)+
- bne GetLLength2
- GetLLength_OUT: pull a0
- rts
-
- ;Finds a string in another string
- ;
- ;Inputs a0 = Pointer to string1 (from what to find)
- ; d0 = Word (what to search for)
- ;
- ;Result d0 = 0 if not found
-
- FindWord: tst.b (a0)
- beq FindWord1
- cmp.w (a0),d0
- beq FindWord2
- add.l #1,a0
- bra FindWord
- FindWord1: clr.l d0 ;keep right before rts
- rts
- FindWord2: move.l #-1,d0 ;keep right before rts
- rts
-
- ;Input a0 = Address of text string
- ;
- ;Result d0 = Length
-
- ConvASCII: clr.l d0
- clr.l d1
- cmp.b #' ',(a0)
- bne ConvASCII2
- add.l #1,a0
- ConvASCII2: move.b (a0),d1
- cmp.b #'0',d1
- bcs ConvASCII_OUT
- cmp.b #'9',d1
- bhi ConvASCII_OUT
- sub.b #'0',d1
- push d1/a0
- move.l #10,d1
- lib Utility,UMult32
- pull d1/a0
- add.l d1,d0
- add.l #1,a0
- bra ConvASCII2
- ConvASCII_OUT: rts
-
- MakeCmdString: lea.l FileNameBuf3,a0
- lea.l ULProgram,a4
- move.l a4,a5
- add.l #128,a5
- bsr MCS1
-
- move.b #' ',(a0)+
-
- lea.l FileNameBuf2,a4
- move.l a4,a5
- add.l #128,a5
- bsr MCS1
-
- ; lea.l FileNameBuf3,a0 ;DEBUG
- ; bsr Printer ;DEBUG
- rts
-
- MCS1: move.b (a4)+,(a0)+
- tst.b (a4)
- beq MCS2
- cmp.l a4,a5
- bne MCS1
- MCS2: rts
-
- ;Error etc. messages
-
- Usage: lea.l UsageText1,a0
- bsr Printer
- bra ShutDown
-
- NoUtility: lea.l NoUtiText1,a0
- bsr Printer
- bra ShutDown
-
- NoDos: add.l #8,sp
- pull d2-d7/a2-a6
- move.l #RETURN_FAIL,d0
- rts
-
- NotInteractive: add.l #8,sp
- lea.l NotIntText1,a0
- bsr Printer
- bra ShutDown
-
- NoMsgPort: lea.l NoMsgPortText1,a0
- bsr Printer
- bra ShutDown
-
- NoIOReq: lea.l NoIOReqText1,a0
- bsr Printer
- bra ShutDown
-
- NoSerial: lea.l NoSerialText1,a0
- bsr Printer
- lea.l SerDevNBuffer1,a0
- bsr Printer
- lea.l CRLFText1,a0
- bsr Printer
- move.l #-1,d0
- rts
-
- Printer: printa a0,_stdout
- rts
-
- PutChProc: tst.b d0
- beq PutChProc_OUT
- move.b d0,(a3)+
- PutChProc_OUT: rts
-
- ;Structures
-
- ;lib stuff
-
- libnames
-
- ;Other stuff, part I
-
- SRRPort: dc.l 0
- IORRequest: dc.l 0
- SWRPort: dc.l 0
- IOWRequest: dc.l 0
- _stdout: dc.l 0
- _stdin: dc.l 0
- Sent: dc.l 0 ;Count sent chars
- Received: dc.l 0 ;Count reveived chars
- PrefsFile: dc.l 0
-
- ;Other stuff part II
-
- OldLock: dc.l 0 ;dir we started from
- ULLock: dc.l 0 ;uload dir
- DLLock: dc.l 0 ;dload dir
- CaptureFile: dc.l 0 ;Capture everything here..
-
- EntrySelected1: dc.b 0
- EntrySelected2: dc.b 0
- EntrySelected3: dc.b 0
- EntrySelected4: dc.b 0
- EntrySelected5: dc.b 0
- EntrySelected6: dc.b 0
- EntrySelected7: dc.b 0
- EntrySelected8: dc.b 0
- EntrySelected9: dc.b 0
- EntrySelected0: dc.b 0
- ModifyMode: dc.w 0 ;0=No, 1=Yes
- CPAssignText: dc.w 0
-
- ;Serial device stuff
-
- SerOpen: dc.w 0
-
- ;Strings, error
-
- BreakText1: dc.b "***Break",13,10,0
- NotIntText1: dc.b "ERROR: Please don't redirect input!",13,10,0
- NoUtiText1: dc.b "ERROR: Couldn't open utility.library!",13,10,0
- NoMsgPortText1: dc.b "ERROR: Couldn't get message port!",13,10,0
- NoIOReqText1: dc.b "ERROR: Couldn't get SerialIOReq!",13,10,0
- NoSerialText1: dc.b "ERROR: Couldn't open ",0
- FileErrorText1: dc.b 13,10,"ERROR: Couldn't open file: ",0
- FileErrorText2: dc.b "ERROR: Couldn't read file!",13,10,0
- FileErrorText3: dc.b "ERROR: Incorrect filetype!",13,10,0
- FileErrorText4: dc.b "ERROR: Couldn't write to file!",13,10,0
- NoULDLProgText1: dc.b 13,10,"ERROR: No transfer program specified!",13,10,0
- NoULDirText1: dc.b 13,10,"ERROR: Couldn't access upload directory!",13,10,0
- NoDLDirText1: dc.b 13,10,"ERROR: Couldn't access download directory!",13,10,0
- CaptureErrorText1: dc.b 13,10,"ERROR: Couldn't open capture!",13,10,0
- CaptureErrorText2: dc.b 13,10,"ERROR: Capture already open!",13,10,0
-
- ;Strings
-
- StartText1: dc.b "Welcome to ShellTerm. Use CTRL-P to get menu.",13,10,0
-
- ;Main menu
-
- MenuText1: dc.b 13,10,"ShellTerm menu. Please choose item:",13,10
- dc.b 13,10,"(S) Statistics (C) Clear statistics"
- dc.b 13,10,"(B) Send BREAK (O) Send CTRL-P"
- dc.b 13,10,"(F) Reset font (X) Clear screen"
- dc.b 13,10,"(R) Reset modem (H) Hangup line"
- dc.b 13,10,"(+) Upload (-) Download"
- dc.b 13,10,"(D) Dialer (P) Preferences"
- dc.b 13,10,"(L) Open capture (K) Close capture",13,10
- dc.b 13,10,"(?) Information"
- dc.b 13,10,"(Q) Quit ShellTerm (E) Exit menus",13,10
- dc.b 13,10,"Selection: ",0
- InfoText1: dc.b "Information",13,10,0
- BreakText2: dc.b "Break sent",13,10,0
- CTRL_PText1: dc.b "CTRL-P sent",13,10,0
- ExitText1: dc.b "Exit",13,10
- TerminalText1: dc.b 13,10,"Terminal mode active:",13,10,0
- ResetFText1: dc.b "Reset font",13,10,0
- QuitText1: dc.b "Quit",13,10,0
- StatsText1: dc.b "Statistics:",13,10,0
- StatsText2: dc.b "Statistics",13,10,13,10,0
- DialerText1: dc.b "Dialer",13,10,0
- PrefsText1: dc.b "Preferences",13,10,0
- ULText1: dc.b "Upload program (SZ)",13,10
- dc.b "Program name: ",0
- ULText2: dc.b "Upload file",13,10
- dc.b "File to upload: ",0
- ULText3: dc.b "Uploading file, please wait...",13,10,0
- ULText5: dc.b "Upload dir",13,10
- dc.b "Directory: ",0
- DLText1: dc.b "Download program (RZ)",13,10
- dc.b "Program name: ",0
- DLText2: dc.b "Downloading file, please wait...",13,10,0
- DLText5: dc.b "Download dir",13,10
- dc.b "Directory: ",0
- OpenCaptureText1: dc.b "Open capture",13,10
- dc.b "Name of file: ",0
- CloseCaptureText1: dc.b "Close capture",13,10,0
-
- ReceivedText1: dc.b " ",00,00,0 ;max of 4294967295
- ; " 4294967295 bytes received",CR,LF
- SentText1: dc.b " ",00,00,0 ;max of 4294967295
- ; " 4294967295 bytes sent",CR,LF
- fstrl1: dc.b " %10.ld bytes received",13,10,0
- fstrl2: dc.b " %10.ld bytes sent",0
- ClearText1: dc.b "Cleared",13,10,0
- ClearText3: dc.b "Reset",13,10,0
- CRLFText1: dc.b CR,LF,0
- ResetText1: dc.b "Reset",13,10,0
- ResetText2: dc.b "ATZ",13,10,0
- HangUpText1: dc.b "Hangup",13,10,0
- HangUpText2: dc.b "+++",0
- HangUpText3: dc.b "ATH0",13,10,0
- PlainText1: dc.b $9b,$30,$6d,$1b,$63
- ClearSText1: dc.b $1B,$5B,$30,$3B,$30,$48,$1B,$5B,$4A,0
-
- ;Preferences
-
- PrefsText2: dc.b 13,10,"ShellTerm preferences:",13,10
- dc.b 13,10,"(S)erial settings (T)erminal settings"
- dc.b 13,10,"(R)eset settings (V)iew settings"
- dc.b 13,10,"(L)oad prefs (W)rite prefs"
- dc.b 13,10,"(N)ame prefsfile (A)ssign CTRL-P"
- dc.b 13,10,"(+) Upload program (-) Download program"
- dc.b 13,10,"(U)pload dir (D)ownload dir",13,10
- dc.b 13,10,"(M)ain menu (E)xit menus",13,10
- dc.b 13,10,"Selection: ",0
- ViewText1: dc.b "View settings",13,10,0
- SpeedText11: dc.b "Serial settings",13,10,0
- SpeedText13: dc.b "Speed",13,10,0
- STerminalText1: dc.b "Terminal settings",13,10,0
- LoadText1: dc.b "Load prefs",13,10,0
- SaveText1: dc.b "Write prefs",13,10,0
- AssignText1: dc.b "Assign CTRL-P",13,10,0
- AssignText2: dc.b 13,10,"Press key to assign CTRL-P to: ",0
- EnterNText1: dc.b "Enter name",13,10,0
- EnterNText2: dc.b 13,10,"File name: ",0
- DBitsText1: dc.b "Using 7 databits",13,10,0
- DBitsText2: dc.b "Using 8 databits",13,10,0
- DBitsText3: dc.b 13,10,"ERROR: Couldn't set databits!",13,10,0
- SBitsText1: dc.b "Using 1 stopbit",13,10,0
- SBitsText2: dc.b "Using 2 stopbits",13,10,0
- SBitsText3: dc.b 13,10,"ERROR: Couldn't set stopbits!",13,10,0
- CRTransText2: dc.b 13,10,"(N)one, (S)trip, (A)dd LF: ",0
- LFTransText2: dc.b 13,10,"(N)one, (S)trip, (A)dd CR: ",0
- AnyKeyText1: dc.b 13,10,"Please press any key: ",0
- NoneText1: dc.b "None",13,10,0
- StripText1: dc.b "Strip",13,10,0
- AddText1: dc.b "Add",13,10,0
-
- STerminalText2: dc.b 13,10,"Terminal settings:",13,10
- dc.b 13,10,"OUT: (1) CR translate (2) LF translate"
- dc.b 13,10,"IN: (3) CR translate (4) LF translate"
- dc.b 13,10," (L)ocal echo (S)wap DEL & BS"
- dc.b 13,10," (A)nsi codes (C)ursor remap",13,10
- dc.b 13,10,"(M)ain menu (-) Previous menu (E)xit menus",13,10
- dc.b 13,10,"Selection: ",0
- CRTransText1: dc.b "CR translate (OUT)",13,10,0
- LFTransText1: dc.b "LF translate (OUT)",13,10,0
- CRTransText3: dc.b "CR translate (IN)",13,10,0
- LFTransText3: dc.b "LF translate (IN)",13,10,0
- EchoText1: dc.b "Local echo enabled",13,10,0
- EchoText2: dc.b "Local echo disabled",13,10,0
- SwapText1: dc.b "BS & DEL swapping enabled",13,10,0
- SwapText2: dc.b "BS & DEL swapping disabled",13,10,0
- ANSIText1: dc.b "ANSI mode on",13,10,0
- ANSIText2: dc.b "ANSI mode off",13,10,0
- CRemapText1: dc.b "Cursor remap on",13,10,0
- CRemapText2: dc.b "Cursor remap off",13,10,0
-
- CurrentText1: dc.b 13,10,"Current settings: Speed (",0
- CurrentText2: dc.b "), Local echo (",0
- CurrentText3: dc.b " CR xlate out (",0
- CurrentText4: dc.b "), LF xlate out (",0
- CurrentText5: dc.b " CR xlate in (",0
- CurrentText6: dc.b "), LR xlate in (",0
- CurrentText7: dc.b ")",13,10,0
- CurrentText8: dc.b " Databits (",0
- CurrentText9: dc.b "), Stopbits (",0
- CurrentText9.1: dc.b " Swap BS & DEL (",0
- CurrentText9.11: dc.b "), ANSI mode (",0
- CurrentText9.12: dc.b " Remap cursor keys (",0
- CurrentText9.2: dc.b 13,10,"CTRL-P assigned to ASCII: ",0
- CurrentText9.3: dc.b 13,10,"Upload program : ",0
- CurrentText9.4: dc.b 13,10,"Download program: ",0
- CurrentText9.5: dc.b 13,10,"Upload dir : ",0
- CurrentText9.6: dc.b 13,10,"Download dir : ",0
- CurrentText10: dc.b 13,10,"Device name: ",0
- CurrentText11: dc.b 13,10,"Unit number: ",0
- CurrentText12: dcb.b 14,0
- CurrentText13: dc.b 13,10,"Prefs file : ",0
- NAText1: dc.b "N/A",0
- DefText1: dc.b "Default",0
- StarText1: dc.b "*",0
- SpaceText1: dc.b " ",0
- NText1: dc.b "N",0
- SText1: dc.b "S",0
- AText1: dc.b "A",0
- OneText1: dc.b "1",0
- TwoText1: dc.b "2",0
- SevenText1: dc.b "7",0
- EightText1: dc.b "8",0
- fstrl4: dc.b "%d",0
-
- ;Speed prefs
- SpeedText1: dc.b 13,10,"Serial settings:",13,10
- dc.b 13,10,"(1) 110 bps (2) 300 bps"
- dc.b 13,10,"(3) 1200 bps (4) 2400 bps"
- dc.b 13,10,"(5) 4800 bps (6) 9600 bps"
- dc.b 13,10,"(7) 19 200 bps (8) 38 400 bps"
- dc.b 13,10,"(9) 57 600 bps (0) 115 200 bps"
- dc.b 13,10,"(N)ame & Unit (R)e-open"
- dc.b 13,10,"(D)atabits (S)topbits",13,10
- dc.b 13,10,"(M)ain menu (-) Previous menu (E)xit menus",13,10
- dc.b 13,10,"Selection: ",0
- SpeedText12: dc.b 13,10,"ERROR: Couldn't set that speed. Please reselect!",13,10,0
- SerSetText1: dc.b 13,10,"ERROR: Couldn't set serial parameters!",13,10,0
- fstrl3: dc.b "%ld",0
- ds.w 0
- CTRLPASCII: dc.b 0,0,0,0,0,0
- SpeedText90: dc.b 0,0,0,0,0,0,0,0
- NameText1: dc.b "Set device unit & name",13,10,0
- NameText2: dc.b 13,10,"Device name: ",0
- NameText3: dc.b 13,10,"Unit number: ",0
- ReOpenText1: dc.b "Re-open device",13,10,0
-
- ;Dialer stuff
-
- DialerText2: dc.b 13,10,"Auto-dialer (phonebook)",13,10
- dc.b 13,10,"Entries:",13,10,13,10,0
- PrefixText1: dc.b "Prefix: ",0
- EntryText1: dc.b "1) ",0
- EntryText2: dc.b "2) ",0
- EntryText3: dc.b "3) ",0
- EntryText4: dc.b "4) ",0
- EntryText5: dc.b "5) ",0
- EntryText6: dc.b "6) ",0
- EntryText7: dc.b "7) ",0
- EntryText8: dc.b "8) ",0
- EntryText9: dc.b "9) ",0
- EntryText10: dc.b "0) ",0
- DialerText3: dc.b 13,10,"(0-9) Un/select entry (R)elist numbers"
- dc.b 13,10," (S)ingle dial (D)ial list"
- dc.b 13,10," (C)lear list (A)ll"
- dc.b 13,10,"Ed(I)t mode (P)refix",13,10
- dc.b 13,10," (M)ain menu (E)xit menus",13,10
- SelectionText1: dc.b 13,10,"Selection: ",0
- DialText1: dc.b "Dial list",13,10,0
- MainMenuText1: dc.b "Main menu",13,10,0
- SingleText1: dc.b "Dial number",13,10,0
- SingleText2: dc.b "Number to dial: ",0
- RelistText1: dc.b "Relist",13,10,13,10,0
- EntryTextXIV: dc.b "Entry",13,10,0
- ClearText2: dc.b "Clear",13,10,0
- AllText1: dc.b "All",13,10,0
- HelpText1: dc.b "Help",13,10,0
- ModifyText1: dc.b "Edit mode on",13,10,0
- ModifyText2: dc.b "Edit mode off",13,10,0
- EditEntryText1: dc.b "Edit entry",13,10,0
- EditEntryText2: dc.b 13,10,"Enter number: ",0
- EditEntryText3: dc.b "Edit prefix",13,10,0
- EditEntryText4: dc.b 13,10,"Enter prefix: ",0
- DialingText1: dc.b 13,10,"Dialing: ",0
- DialText2: dc.b 13,10,"[Space] to skip, [Backspace] to remove this entry, [Escape] to quit",13,10,0
- ConnectText1: dc.b "Connection established",13,10,0
- BusyText1: dc.b "Busy",13,10,0
- SkippedText1: dc.b "Skipping entry",13,10,0
- CancelledText1: dc.b "Quitting",13,10,0
- RemoveText1: dc.b "Removing this entry",13,10,0
- EmptyText1: dc.b 13,10,"List is empty",13,10,0
- SelectedText1: dc.b 13,10,"Entries selected:",13,10,0
- SelectText1: dc.b "1 (",0
- SelectText2: dc.b "2 (",0
- SelectText3: dc.b "3 (",0
- SelectText4: dc.b "4 (",0
- SelectText5: dc.b "5 (",0
- SelectText6: dc.b "6 (",0
- SelectText7: dc.b "7 (",0
- SelectText8: dc.b "8 (",0
- SelectText9: dc.b "9 (",0
- SelectText0: dc.b "0 (",0
- SelectText11: dc.b "*) ",0
- SelectText12: dc.b " ) ",0
- SelectText13: dc.b "*)",0
- SelectText14: dc.b " )",0
-
- ;Strings, names
-
- STVersion: dc.b "$VER: "
- UsageText1: dc.b "ShellTerm 1.09 (6.9.92) (C)opyright Tomi Blinnikka 1992",13,10,13,10
- ; dc.b 10," !!! BETA TESTER VERSION !!!",13,10,13,10,13,10
- dc.b "USAGE: ShellTerm [FileName]",13,10,13,10
- dc.b " Where: [FileName] is the prefs/phonebook file",13,10
- dc.b " Default [FileName] is S:ShellTerm.PREFS",13,10,13,10
- dc.b "Use current shell as a terminal program.",13,10
- dc.b "See docs for more information.",13,10,0
- AuthorText1: dc.b 13,10,"Name : ShellTerm",13,10
- dc.b "Version : 1.09 (6.9.92)",13,10
- dc.b "Author : Tomi Blinnikka",13,10,13,10
- dc.b "(C)opyright Tomi Blinnikka 1992",13,10,0
- ds.l 0
-
- ;Buffers
-
- Buffer1: dcb.b 2,0 ;For writes to serial (read from CLI)
- Buffer2: dcb.b 2,0 ;For reads
- Buffer3: dcb.b BUFLEN,0 ;For reads from serial
- Buffer4: dcb.b BUFLEN*2,0 ;For writes to CLI
-
- DialBuffer1: dcb.b ENTRYLENGTH,0 ;for single dial/serial unit number :)
-
- FileNameBuf1: dc.b "S:ShellTerm.PREFS"
- dcb.b 128-19,0
- FileNameBuf2: dcb.b 128,0 ;File to UL/capture filename
- FileNameBuf3: dcb.b 2*128,0 ;CMD string with arguments
-
- PREFS_START:
-
- PrefsStart: dc.b "ST"
- SerDevNBuffer1: dc.b "serial.device"
- dcb.b 32-13,0 ;device name
- SerUnit: dc.l 0
- Speed: dc.l 9600
- LocalEcho: dc.w 0 ;(0=no echo, 1=echo)
- CRTranslate: dc.b 0 ;0=none, 1=strip, 2=add LF
- LFTranslate: dc.b 0 ;0=none, 1=strip, 2=add CR
- CRTranslateIn: dc.b 0 ;0=none, 1=strip, 2=add LF
- LFTranslateIn: dc.b 0 ;0=none, 1=strip, 2=add CR
- DataBits: dc.b 8
- StopBits: dc.b 1
- SwapBSDEL: dc.b 0 ;1=yes
- UseANSI: dc.b 0 ;1=yes
- CPAssign: dc.b 0 ;key to assign CTRL-P to
- CursorRemap: dc.b 0 ;remap cursor keys
-
- ULProgram: dcb.b 128,0 ;SZ
- DLProgram: dcb.b 128,0 ;RZ
- ULDir: dcb.b 128,0 ;SZ
- DLDir: dcb.b 128,0 ;RZ
- DialPrefix: dc.b "ATDT" ;dial prefix
- dcb.b 16-4,0
- Entry1: dcb.b ENTRYLENGTH,0 ;Entry 1
- Entry2: dcb.b ENTRYLENGTH,0 ;Entry 2
- Entry3: dcb.b ENTRYLENGTH,0 ;Entry 3
- Entry4: dcb.b ENTRYLENGTH,0 ;Entry 4
- Entry5: dcb.b ENTRYLENGTH,0 ;Entry 5
- Entry6: dcb.b ENTRYLENGTH,0 ;Entry 6
- Entry7: dcb.b ENTRYLENGTH,0 ;Entry 7
- Entry8: dcb.b ENTRYLENGTH,0 ;Entry 8
- Entry9: dcb.b ENTRYLENGTH,0 ;Entry 9
- Entry10: dcb.b ENTRYLENGTH,0 ;Entry 10
-
- PREFS_END: dc.l 0,0
-
- PrefsSize: EQU (PREFS_END-PREFS_START)
- end
-
-