home *** CD-ROM | disk | FTP | other *** search
- ********************************************************************************
- * *
- * CBterm/C64 *
- * (C) (TM) 1985 by Chrisdos. All rights reserved. *
- * Ver 4.5 *
- * *
- ********************************************************************************
-
- Note: This program OK to upload to local BBS systems ONLY. All Copywrite and
- author notice must be preserved.
- THIS PROGRAM MAY NOT BE UPLOADED TO ANY COMMERCIAL COMPUTER NETWORK OR
- SERVICE WITOUT EXPRESS WRITTEN PERMISSION OF CHRIS DUNN. (A.K.A. Chrisdos)
- --------------------------------------------------------------------------------
- 80 column routines (TERM80) (C) 1984 by Frank Prindle and Eric Lavitsky.
- --------------------------------------------------------------------------------
-
- OVERVIEW
- ========
- CBterm/C64 (herein called CBterm) is a fine general purpose terminal program
- for the Commodore 64 computer. Written in machine language, it provides the
- following features:
-
- 40 or 80 column display with no extra hardware.
-
- Split-Screen service in 80 column mode.
-
- 300/1200 baud operation.
-
- Fast XMODEM Up and Downloading.
-
- AUTO Dialer control supporting many types of dialers.
-
- Hi and Med. Resolution CIS Graphics.
-
- Hi Res. Screen Dump to a suitable printer.
- ASCII/PETSCII File control.
-
- CIS .IMG File compatibility.
-
- 22.5K RAM Buffer.
-
- 6 programable FUNCTION KEYS.
-
- On Screen Clock.
-
- Disk Directory and Functions.
-
- Full/Half Duplex.
-
- RAM Buffer Read/Write/Load/Save.
-
- Special Line Feed handling.
-
- Screen Color Control.
-
- Help Screen.
-
- And More........
-
- And, if used with the CBTVTX subroutine file, the following functions
- will be added to CBterm:
-
- Semigraphics 4 (low Res.)
-
- Vidtex screen Cursor Positioning.
-
- Automatic RAM Buffer control.
-
- Automatic switching between 40 and 80 column screens.
-
- --------------------------------------------------------------------------------
- Setup and Operation
- ===================
- Simply load CBterm as you would any normal basic program and RUN. CBterm
- relocates itself and sets up all important memory areas. CBterm will ask
- you for an initial BAUD RATE to run at. Enter 3 for 300 or 12 for 1200 baud.
- This setting may be altered later. Press <RETURN> after your entry and CBterm
- will clear the screen and present the initial message in 40 column mode.
- At this point you are in terminal mode, and if you are using a manual connect
- modem, dial your phone and go on line.
-
- Commands to CBterm
- ==================
- Just about all commands and functions in CBterm are initiated with the C=
- (Commodore) key. This key is held while pressing the letter or number key for
- the function you want. For example, you might wish to alter the SCREEN COLORS,
- this is done by holding the C= key and pressing:
- + to step the foreground colors (40 or 80 column)
- - to step the background (Screen) colors (40 or 80)
- @ to step the foreground color of the OUTPUT LINE in 80 column
- * to step the background color of the OUTPUT LINE in 80 column
- @ in 40 column mode to change the border color.
- * in 40 column mode to stop/start the CURSOR FLASH.
- Again, all the keys, unless otherwize stated, are pressed with the C= key too.
-
- To view a list of C= Commands, press C= H. This will present the HELP SCREEN.
-
- Modem Control
- =============
- CBterm has the ability to operate with a wide variety of modems, this includes
- the CBM modems,MightyMo,HES and HAYES Smart(?) Modems. Simply connect the
- modems to the computer, CBterm supports all modems at the same time.
- Some 'CLICK' type modems require you set CBterm to 'NEGITIVE DIALING' this is
- simply reversing the dialing pulses sent to the modem. This is done by pressing
- C= 5. This is a toggle function and pressing c= 5 again will switch back to
- 'POSITIVE DIALING'. MightyMo and HES modems use negitive dialing. If you tell
- cbterm to PICK UP and the modem HANGS UP insttead, you know you are in the
- wrong mode.
- The 1660 dialer uses Negitive dialing also, but does not support DCD (connect)
- signals, so to help simulate this connect signal, when in Negitive dialing
- mode, CBterm will send out a <RETURN> every 4 seconds. If a <RETURN> is echoed
- back to CBterm (assuming a connect) then CBterm will go ON LINE.
- The DCD Signal from the other modems must be present for a solid 4 seconds
- for CBterm to respond online. This is to prevent modems that are fooled by
- loud busy signals from tripping CBterm.
- You may have an AUTO MODEM 'PICK UP' by pressing the C= 1 keys. To 'HANG UP'
- press C= 2. Hayes modem users please note that C=1 will not work for your
- modem, you must enter the pick up command from the keyboard.
- When doing a 'HANG UP' there will be a 4 second delay before the modem is
- hung up, this gives you time to stop the hang up by pressing the <CTRL> key.
- (The <CTRL> key is used to ABORT alot of CBterm's functions.)
- (Hayes users, if they abort, must issue the return to online command.)
-
- CBterm will automaticly DIAL and REDIAL a phone number untill a connection is
- made. (Automatic redial can only be used if your modem supports Data Carrier
- Detect or is a Hayes type or in negitive mode and a <CR> is echoed.)
- To start the dialing sequence, press C= 3. You will be prompted for the
- telephone number you wish to dial. If you do not enter any digits, the function
- will abort. After entering in the phone number digits (Numbers only, no
- punctuations)and pressing <RETURN> you will be asked for an EXTRA WAIT DELAY
- value. CBterm will initialy wait 20 seconds after dialing for the connection
- to be made, if you require a longer time, enter a digit (1-9) for additional
- 20 second wait periods. (Entering a 2 would provide 60 seconds.)
- CBterm will then dial the number and cycle, waiting for a connection.
- (Hayes users please note that CBterm will try to dial the 'click' modems first
- then send the dialing commands to the Hayes.)
- If your modem does not support the Data Carrier Detect (DCD) signal to tell
- CBterm when the connectin is made, then you must press <CTRL> after the number
- has dialed to return to terminal mode, otherwize CBterm will hang up.
-
- Anytime CBterm sees a change in the state of the Data Carrier Detect line
- on the modem port, you will see the message: [DCD Switched]
- If you were off line, you are now on and vice-a-versa. If you are in the middle
- of a conversation and you see that message, you got knocked off line.
-
- If you wish to change the BAUD RATE from the initial selection, press the C= 7
- keys, this will toggle between 300 and 1200 baud. It also causes CBterm to
- reset, so it should only be done offline.
-
- Pressing C= X will toggle CBterm between FULL and HALF Duplex.
-
- One other control is C= I. CBterm operates at 7 bits no parity. You may make
- CBterm recieve and store in RAM all 8 bits by pressing C= I. This is a toggle
- function and pressing it again will return to 7 bits.
-
- SCREEN MODES
- ============
- CBterm supports 40 and 80 column screens. The 80 column screen is software
- generated HI-RES image and you will need a sharp TV or monitor to view it
- without eye strain. To switch to 80 column mode press C= 8. To switch back to
- 40 column mode press C= 4. In 80 column mode you will note that the last line
- is a different color. This is they OUTPUT LINE and anything you type will
- display here. It may or may not display on the main screen depending on your
- duplex setting. This OUTPUT LINE is very handy when using Compuserve's CB
- Simulator because you can see what you are typing between messages.
- The OUTPUT LINE does not scroll and when you type to its end the characters
- are not displayed, but they are transmitted. The line will reset when <RETURN>
- or a control character is sent. A special feature of the output line is the
- BATCH MODE. This is toggeled on or off with C= B. When ON, all the typed
- characters are held in a buffer and not transmitted untill a <RETURN> or other
- control character is pressed. In batch mode, only 80 characters may be buffered
- any past that but before the line is sent will be lost.
- If you find a screen hard to read, try a different color combination.
-
- SPECIAL SETUP CONTROLS
- ======================
- The following controls are provided to give CBterm flexibility in dealing
- with many types of host computer setups. They may seem a bit complicated, but
- really provide great power in connecting to other computers.
- C= A Output Extra LF
- C= E Input Extra LF
- C= M Mask/Local LF
- C= F File Type (Ascii/Petscii)
-
- When C= A is toggeled on, it meas that when ever a <RETURN> (hereafter called
- <CR>) is sent from the keyboard or the RAM buffer, CBterm will send a LINE FEED
- <LF> after it. This is used to talk to oter computers or terminals that require
- a <LF> be recieved to goto the next line. Pressing C= A again turns this off.
-
- C= E, when it is on, simulates the reception of a <LF> after a <CR> is recieved.
- That is, when C= E is on and a <CR> is recieved, CBterm will act as if it has
- recieved a <LF> too. It will also place a <LF> in the RAM buffer if it is open.
- There is one exception and that is when C=M is on.
-
- C= M is a varient on C= E and it operates like this: When C= M is on CBterm is
- MASKING all recieved line feeds from the RS232 port, that is all <LF> are tossed
- out, and never used or saved. (Even if C= E is on.) At the same time CBterm
- provides a LOCAL screen <LF> after a <CR> is recieved so that the incomming
- data is not all displayed on one line. In other words, all <LF>s are ignored
- and a <CR> will now both return the cursor and force a new screen line.
- C= M also is involved when READING or WRITING the RAM buffer and in XMODEM file
- transfers. This will be explained.
-
- C= F selects the file type to be used in READING, WRITING, or PRINTING RAM and
- in XMODEM transfers. Please note the following information:
- In 99% of the cases, CBterm wants ASCII data in its RAM or XMODEM buffers.
- That is, mostly all communication between computers is done in standard ASCII
- code, and this is what CBterm wants to see in its RAM or XMODEM buffers. It can
- be translated when written to disk or printer, but 99% of the time it wants
- ASCII. Does this mean CBterm cannot send/recieve Petscii files? No, CBterm has
- a built in translation routine. You must follow the next statements:
- An ASCII file is composed of standard ASCII code, and could have linefeeds
- following its RETURN codes.
- A PETSCII file uses a somewhat reveresed ascii and does NOT use linefeeds
- because they are not needed, if anything, it might use CURSOR DOWN to start a
- new line.
- So the basic difference is ASCII code and may or may not have LINE FEEDS vs.
- PETSCII code and never LINE FEEDS.
- The 2 main functions for converting one to the other are C= F and C= M as will
- be explained.
-
- RAM BUFFER CONTROL
- ==================
- CBterm's RAM buffer will capture MODEM RECIEVED DATA ONLY. (It wont capture in
- half duplex.) The buffer is about 22.5K bytes long. You OPEN the buffer
- with C= O. Close it with C= C and Zero it out (clear) with C= Z. You will
- get a message telling you the amount of RAM left when you use any of the
- 3 controls. The number counts down to 0. If the RAM is open and it fills, you
- will get a message and the buffer closes. You may see what is is the buffer by
- pressing C= D (display), the buffer will display to the screen and you may
- HALT the display by pressing the <SHIFT> (or <SHIFT LOCK>) key. You may abort
- the display by pressing <CTRL>.
- The setting of C= M effects the buffer display any may be set to best
- display the file.
- Don't forget that the settings of C= E and C= M effect the RAM as it is
- RECIEVING the data too.
-
- PRINTER CONTROL
- ===============
- CBterm lets you send to the printer any data that is stored in the RAM buffer.
- No provision was made to print in real time as this is a very slow process and
- can lead to garbeled data.The printer is initialy opened as 4,4,5 and ASCII data
- is expected. This is the setup for a Card/? +G and Gemini-10X printer.
- There are a number of options that can be used with the printer and the first
- is C= V. This will pronmpt you for a new SECONDARY ADDRESS to be sent to the
- printer. Use this option to tell your printer what type of data to expect and
- to add the optionl <LF> after <CR> if you need it. (See your printer
- instructions for the proper secondary address.)
- The second printer control is C= G. This allows you to send ESCAPE CONTROL codes
- to your printer, perhaps to activate special features. When you press C= G, you
- are placed in a mode where the keyboard cyode images are sent directly to the
- printer. You may send the codes CHR$(0) thru CHR$(27), the capital letters
- A thru Z, and some other values that correspond the the keyboard decode tables
- in the C64. ESCAPE is CHR$(27) and is produced with a <CTRL> <:>. (Control
- colon. Note: These keypresses are only for the printer control, not characters
- being sent out to the modem.) This is because the keyboard decode value for
- a <CTRL> <:> is 27. To send CHR$(1) thr CHR$(26) use <CTRL> <<A> thru <Z>.
- <CTRL> <A> being CHR$(1) and so on to <CTRL> <Z> being CHR$(26). The upper
- case ASCII letters A to Z are entered WITHOUT the shift key. So to send a
- uppercase "B" you simply press <B>. The codes for lower case ASCII letters
- were not included in the keyboard decode tables and cannot be sent. The code
- for CHR$(0) may be produced by pressing <CTRL> <0>.
- When a key is pressed, nothing will be displayed on the screen but a slight
- click or beep may be heard to indicate the code was sent to the printer.
- So to send, lets say, ESCAPE "B" chr$(3), which would put a Gemini-10X into
- condenced print mode, you would press C= G to goto control mode, then press
- <CTRL> <:> -Escape
- <B> -No shift, just B.
- <CTRL> <C> -C = Third letter = CHR$(3)
- Then press <SHIFT> <CTRL> to exit printer control mode.
- The third setting you might have to change is our old friend C= F. This tells
- CBterm to convert the RAM data to PETSCII when sending to the printer. If the
- data in RAM is ASCII (which is should be 90% of the time) and your printer
- wants PETSCII, then set C= F to PETSCII MODE. More on C= F will be explained
- later.
- You PRINT the RAM buffer by pressing C= P. The data will be sent to the printer
- and you may abort the process by pressing the <CTRL> key.
-
- Here is how C= F and C= M change things in CBterm. If you are talking with
- a mainframe computer or BBS system or just about any computer link, you are
- using ASCII code to communicate. Most files stored on large systems and BBS's
- are in ASCII code also. However, if you are talking directyly to another C64
- (Which CBterm will do with no problem.) Then you may be in what is called
- 64 to 64 mode, in which case you are using PETSCII. And just about all .SEQ
- files stored on a C64's disk are in PETSCII. As stated above there are some
- differences between the two formats, notably the Case Swapping and the Line
- Feed conversion. Now, in using CBterm's RAM buffer, you must be aware of the
- type of dyata you are recieving and how you want CBterm to treat that data
- once it is recieveyd. 90% of the time the data will be ASCII, you get PETSCII
- when you are talking directly to another C64 or you are downloading a file
- that was uploaded in PETSCII to begin with.
- If you are going to capture an ASCII file in RAM, and you know you only want
- to save or print it in PETSCII, then you may set C= M to ON, BEFORE doing the
- capture. As the data is being recieved, all Line Feeds will be stripped as
- PETSCII files do not use Line Feeds. Now you have an ASCII image in RAM minus
- the linefeeds. You may now set the C= F mode to PETSCII and Write the file to
- disk or Print it as PETSCII. If you failed to set C= M to mask the line feeds
- before reciving the file, you may do so before Writing or Printing and the
- linfeeds in RAM will be discarded.
- If you were not sure if you wanted ASCII or PETSCII, you can allways leave C= M
- OFF and C= F in ASCII mode, Write the file to disk (as ASCII then) and reread
- and convert the file to PETSCII later if that is what you need. CBterm can
- allways convert ASCII to PETSCII, and in most cases PETSCII to ASCII.
-
- RAM BUFFER AND DISK
- ===================
- Up till now we delt with recieveing data into the RAM buffer. Now here are the
- other uses. You can READ a file into the RAM, and WRITE a file out to disk.
- You can also LOAD and SAVE RAM. The difference is that LOAD and SAVE use ythe
- C64's Kernal routines and store all data in a .PRG format. The data can be
- sequential of course, but the kernal routines dont know this. This is the
- format used by some word processing programs, and was included in CBterm
- because it is fast. Also, no ASCII/PETSCII translation can be done on a LOAD
- or SAVE, you get an exact copy of the disk into RAM or RAM to disk.
- You activate the LOAD with the C= L keys, you will be prompted for the
- file name. You SAVE with C= S.
-
- You can READ a disk file to ram, or WRITE it to disk with C= R and C= W.
- These will be the functions most often used. To read the the disk file into RAM
- press C= R. You will be prompted for the filename and is the file is (S)eq or
- (P)rg. CBterm will then check to see if the disk drive is on line and then
- prompt you for the format of the file. You have 3 options:
- (A)scii, (P)etscii, (N)o change.
- If you select ASCII then the C= M (mask/local LF) and C= F (File type) flags
- will be set to assume you are reading a ASCII file. (C= M off, C= F ascii).
- Then the file will be read into RAM. If you select PETSCII the flags will
- be set for a petscii type file. If you select NO CHANGE then the original
- settings of the C= M and C= F flags will be used. (Note: If you change
- the flag settings for a READ, WRITE, UPLOAD or DOWNLOAD, you will have to
- manually change them back to what may require later on. Just be aware of the
- flags and what you are doing. Ie. you may have to set C= F back to petscii
- to send petscii to your printer.)
- The WRITE function works in the same manner, it has all the prompts for READ,
- it just stores the RAM to disk.
-
- Once you have loaded the ram buffer, you can transmit it out to the host
- computer with the C= T function. The buffer will be dummped to the modem and
- you may abort the transmit by pressing the <CTRL> key. You may adjust the
- speed of the transmit during the transmit by pressing the + or - keys.
- + will speed it up somewhat, and - will slow it down.
-
- There are a number of disk functions built into CBterm. Pressing C= Y will give
- you a directorY of your disk. Pressing C= Q will prompt you for a command to be
- sent to the disk drive.
-
-
- XMODEM UPLOAD AND DOWNLOAD
- ==========================
- CBterm supports a fast (all ML) version of the popular XMODEM file transfer
- protocol. This can be used to transfer files of any size and type to/from
- Compuserve or any other computer or BBS that supports XMODEM checksum protocol.
-
- DOWNLOADING
- ===========
- You instruct the host computer to begin an XMODEM download of the file you want.
- When the host indicates that it is ready, you press C= N to put CBterm into
- dowNload mode. You are prompted for the file name you want to save the incomming
- file as, and its file type (seq or Prg). If you enter download mode by mistake
- you can exit by not entering a file name.
- If you enter a file type of PRG then CBterm will go directly into download.
- If you enter SEQ, you will be prompted for (A)scii, (P)etscii (N)o chenge
- Just as in a RAM load. If the file you are downloading is an ASCII image,
- and you want an ASCII image on your disk, then hit (A). If the file you
- are downloading is an ASCII image and you want to store it on disk as PETSCII
- then hit (P). No change will keep the present value of the C= M and C= F flags.
- IMPORTANT: If the file you are downloading is a PETSCII image, and you
- want to save it as a PETSCII image on your disk, select ASCII MODE.
- . In other words, ASCII MODE does NO translation of the incomming file. If it
- is PETSCII, it will remain PETSCII. You can think of ASCII mode as NO TRANSLATE
- and PETSCII MODE as TRANSLATE.
-
- CBterm will then start its protocol tansfer. The host computer will send its
- data and CBterm will display [GOT BLOCK] ### for each block recived.
- If the block is OK, it will be written to disk and a new block will be recived.
- If the block fails a number of checks, you will see an error message and the
- host computer will be instructed to resend the block. This continues untill
- the entire file is recieved. CBterm will beep at then end.
-
- (Note: If a .SEQ PETSCII file was uploaded to Compuserve with VIDTEX, it
- will be in an ASCII ! image. VIDTEX converts PETSCII to ASCII on upload and
- back again on download. If you are planning to upload a .seq file to a service
- like CIS or a non-C64 type BBS, you should do it in ASCII, as a PETSCII image
- file is no good to a non-c64 computer.)
-
- UPLOADING
- =========
- Operates much the same as downloading, you instruct the host computer you wish
- to upload a file and when it is read you press C= U. You are prompted for
- file name, Seq or Prg and (A),(P) or (N).
- If your file is a PETSCII image, and you want to upload it as ASCII then
- pick (P)etscii mode (Translate). If your file is ASCII and you want to upload
- Ascii, then pick (A). If you have a PETSCII image and you are transfering
- it to another C64 or some other computer and you want to keep it PETSCII, then
- pick (A) (no translate).
- CBterm will then display the message [SENT BLOCK] ### as it sends out the file.
- Continued in file CBTP2.DOC
- F┼