home *** CD-ROM | disk | FTP | other *** search
- *.............................................................................
- * Program Name: FOXCOM02 Copyright: Magna Carta Software, Inc.
- * Date Created: 06-18-91 Language: FoxPro 2.0
- *.............................................................................
- * Description: FOXCOM01 plus...
- * a) user control of data transfer rate
- * b) FoxPro pulldown menu system
- *.............................................................................
- CLEAR
- SET TALK OFF
- SET ESCAPE OFF
-
- * Load the right library
- foxid = VERS()
- IF "2.0" $ foxid
- SET LIBR TO ctf && Identified FoxPro 2.0
- ELSE
- IF "2.5" $ VERS()
- IF "Windows" $ foxid && Identified FoxPro 2.5 for Windows
- SET LIBR TO ctfw
- ELSE
- SET LIBR TO ctf25 && Identified FoxPro 2.5 for DOS
- ENDIF
- ENDIF
- ENDIF
-
- DO ctfhdr
-
- SET COLOR OF SCHEME 17 TO SCHEME 1 && save default color scheme
- SET COLOR OF SCHEME 18 TO SCHEME 2
-
- version = 2
- portid = 0
-
- * Define Pull-Down Bar
- DEFINE MENU main_menu IN SCREEN COLOR SCHEME 3
- DEFINE PAD p_ct_quit OF main_menu PROMPT "\<Quit" AT 00, 00
- ON SELECTION PAD p_ct_quit OF main_menu =ct_quit(portid)
- DEFINE PAD p_ct_online OF main_menu PROMPT "\<Go Online" AT 00, 06
- ON SELECTION PAD p_ct_online OF main_menu =ct_online(portid)
- DEFINE PAD p_ct_speed OF main_menu PROMPT "\<Speed" AT 00, 17
- ON SELECTION PAD p_ct_speed OF main_menu =do_speed(portid, 17)
-
- * Define Windows
- DEFINE WINDOW w_term FROM 01, 00 TO SROWS()-4, SCOLS()-1;
- IN SCREEN;
- TITLE " FoxCom Terminal " DOUBLE COLOR SCHEME 7
-
- DEFINE WINDOW w_status FROM SROWS()-3, 00 TO SROWS()-1, 79;
- IN SCREEN;
- TITLE " FoxCom Status " DOUBLE COLOR SCHEME 17
-
- ACTIVATE WINDOW w_status
- ACTIVATE WINDOW w_term
- ret = u8250_init(portid, COM1, 2400, 8, PARITY_NONE, 1) && initialize COM1 (I/O address = 1016)
- IF ret < 0
- ? ret
- =INKEY(0)
- CANCEL
- ENDIF
- ret =install_ipr(portid, RECEIVE, NULL, 2048) && initialize receive IPR
- IF ret < 0
- ? ret-1
- =INKEY(0)
- CANCEL
- ENDIF
- ret =install_isr(portid, 4, NULL) && IRQ4 (use 3 for COM2)
- IF ret < 0
- ? ret-2
- =INKEY(0)
- CANCEL
- ENDIF
-
- @ 00,00 SAY "CommTools Terminal Version " + LTRIM(STR(version)) + ": Press ESC to Exit"
-
- ACTIVATE MENU main_menu
-
-
-
- FUNCTION ct_online
- PARAMETERS portid
-
- ACTIVATE WINDOW w_term
- =c_term(portid) && switch to dumb terminal mode
- RETURN (0)
-
-
-
- *
- * C_TERM -- This is a dumb terminal loop in FoxPro.
- * Alternately poll the serial input buffer and the keyboard for data.
- *
- FUNCTION c_term
- PARAMETERS portid
- PRIVATE c
-
- ?
- DO WHILE .T.
- * CHECK SERIAL PORT FOR BYTE *
- c = c_inchar(portid) && check the serial port for a byte
- IF c <> CT_EOF && if a valid character display it
- ?? CHR(c)
- ENDIF
- * CHECK KEYBOARD FOR A KEY PRESS *
- c = INKEY() && check keyboard for a key
- DO CASE && evaluate the received key
- CASE c == ESC && ESC was pressed
- RETURN (0)
- CASE c <> 0
- =c_putc(portid, c)
- ENDCASE
- ENDDO && do while .t.
- RETURN (0)
-
-
-
- FUNCTION ct_quit
- PARAMETERS portid
- =deinit_port(portid) && deinitialize the port
- DEACTIVATE WINDOW w_term
- DEACTIVATE WINDOW w_status
- DEACTIVATE MENU main_menu
- CLEAR ALL
- @ 24, 00 SAY "End of CommTools Terminal Version " + LTRIM(STR(version))
- @ 22, 00 SAY PADC("Thank You for Using CommTools", WCOLS())
- EXIT
- RETURN (0)
-
-
-
- *
- * SPEED_MENU(expN portid)
- * This menu allows the user to select the data transfer rate.
- *
- PROCEDURE do_speed
- PARAMETERS portid, col
- PRIVATE speed
-
- DEFINE POPUP pop_speed FROM 01, col;
- IN SCREEN;
- SHADOW
- DEFINE BAR 1 OF pop_speed PROMPT "50"
- DEFINE BAR 2 OF pop_speed PROMPT "75"
- DEFINE BAR 3 OF pop_speed PROMPT "110"
- DEFINE BAR 4 OF pop_speed PROMPT "150"
- DEFINE BAR 5 OF pop_speed PROMPT "300"
- DEFINE BAR 6 OF pop_speed PROMPT "600"
- DEFINE BAR 7 OF pop_speed PROMPT "1200"
- DEFINE BAR 8 OF pop_speed PROMPT "2400"
- DEFINE BAR 9 OF pop_speed PROMPT "4800"
- DEFINE BAR 10 OF pop_speed PROMPT "9600"
- DEFINE BAR 11 OF pop_speed PROMPT "19200"
- DEFINE BAR 12 OF pop_speed PROMPT "38400"
- DEFINE BAR 13 OF pop_speed PROMPT "57600"
- DEFINE BAR 14 OF pop_speed PROMPT "115200"
-
- ON SELECTION POPUP pop_speed =_speed_menu(portid, VAL(PROMPT()))
- speed = get_speed(portid)
- ret=status_msg(0, "Current Speed: " + ALLTRIM(STR(speed)) + " bits-per-second")
- ACTIVATE POPUP pop_speed
- RELEASE pop_speed
- RETURN (0)
-
-
-
- FUNCTION _speed_menu
- PARAMETERS portid, speed
- PRIVATE ret
-
- ret=status_msg(0, "Current Speed: " + ALLTRIM(STR(speed)) + " bits-per-second")
- ret = set_speed(portid, speed)
- speed = get_speed(portid)
- RETURN (ret)
-
-
-
- PROCEDURE clear_status_line
- PARAMETERS rstart, rend
- PRIVATE row
- ACTIVATE WINDOW w_status
- row = WROWS() - 1
- @row, rstart CLEAR TO row, rend
- RETURN
-
-
-
- FUNCTION status_msg
- PARAMETERS col, msg
- =clear_status_line(col, 78)
- @WROWS()-1, col SAY msg
- RETURN (0)
-