home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power-Programmierung
/
CD2.mdf
/
tools
/
last
/
@last.doc
< prev
Wrap
Text File
|
1988-03-06
|
13KB
|
311 lines
@LAST - A Programmer's Pop-up Utility
by Duane A. Bowen
Ever notice how commercially available pop-ups seem to be designed for
users with 640 Mb of RAM while most of us have only 640 Kb of it. @LAST is a
terminate and stay resident (TSR) program that provides most of the functions
needed by programmers while using less than 6 Kb of available RAM. Highlights
of @LAST include:
* Low memory consumption
* Consolidation of many functions into one pop up menu
* Windows return to where you left them
* Un-installable
* Command line customizable
* User selectable hot-key
* Has 'Auto-Klone' feature
Main Menu Selections:
╔════════╡ @LAST ╞════════╗ Ctrl-Insert (default) pops up
║ { A } - Ascii Table ║
║ { B } - Box Characters ║ Entering letter in braces { }
║ { E } - Eject Page ║ selects that item.
║ { N } - Normal Screen ║
║ { P } - Peek-Poke Hex ║ Esc key returns to underlying
║ { Q } - Quick Screen ║ application.
║ { R } - Ruler ║
║ { S } - Scan Codes ║
║ { U } - Un-Install ║
║ {Esc} - Exit ║
╚═════════════════════════╝
**** { A } - Ascii Table (and color chart)
┌────────────────────────────┐
│ Dec Hex Chr Dec Hex Chr │
│ 64 40 @ * 80 50 P * │ <-- *'s appear in the color that
│ 65 41 A * 81 51 Q * │ they would if the ascii value
│ 66 42 B * 82 52 R * │ were used as an "attribute".
│ 67 43 C * 83 53 S * │
│ 68 44 D * 84 54 T * │ Up and Down arrows, PgUp, PgDn
│ 69 45 E * 85 55 U * │ Home and End keys move through
│ 70 46 F * 86 56 V * │ Ascii values 0 - 255.
│ 71 47 G * 87 57 W * │
│ 72 48 H * 88 58 X * │ Esc key returns to main menu.
│ 73 49 I * 89 59 Y * │
│ 74 4A J * 90 5A Z * │
│ 75 4B K * 91 5B [ * │
│ 76 4C L * 92 5C \ * │
│ 77 4D M * 93 5D ] * │
│ 78 4E N * 94 5E ^ * │
│ 79 4F O * 95 5F _ * │
└────────────────────────────┘
**** { B } - Box Characters
┌─────────────┬─────────────┐
│ 218 194 191 │ Shows the character codes
│ │ required to build line boxes.
│ │ 179 │
│ │ Esc key returns to main menu.
│ 196 197 │
├ 195 ─ ┼ 180 ┤ Any other key cycles between
│ │ the 4 combinations of single
│ │ and double horizontal and
│ <Key> to cycle 4 types │ vertical lines.
│ │
│ 192 193 217 │
└─────────────┴─────────────┘
**** { P } - Peek-Poke Hex
__ CURRENT segment (16 byte window) shown here ( FFFE hex )
|
|
| |<- hex contents of offsets +0 - +F shown below ->|< Ascii equivalent >|
^^^^ | | |
╒══════════════════════════════════════════════════════════════════════════════╕
│ SEG: +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 01234567 89ABCDEF │
│ FFFE: EE 59 E2 EB C3 FF 47 20 20 20 43 4F 4D 50 41 51 .Y....G COMPAQ │
╞══════════════════════════════════════════════════════════════════════════════╡
│ ** <F1> to enter Segment **** <+|-|> to Scroll **** <0-F> to POKE offset ** │
╘══════════════════════════════════════════════════════════════════════════════╛
| ^ | | ^
| | | Up/Down arrows | A digit 0 - F lets |
| F1 to type in a | | increment/decrement | you enter a HEX BYTE |
| new HEX segment | | segment by 1. | to POKE at offset |
| value - here ------>^ | | 0 - F - here ------->^
| | + / - increment / |
| C/R completes it or | | decrement segment | C/R completes it or |
| Esc key aborts. | | by 100 HEX. | Esc key aborts. |
Notes: RAM or ROM can be peeked but only RAM can be poked.
POKE WITH CARE
Esc key returns to main menu.
**** { S } - Scan Codes
╓──────────────────────────────────╖
║ [ Press a Key ] ║ Press the key of interest.
║ Register AH AL ║
║ Decimal 104 0 ║ Results are shown here as
║ Hex 68 00 ║ returned by BIOS in AX reg.
║ Ascii h ║
║ Press <Esc> TWICE to exit ║ <- First Esc shows codes.
╙──────────────────────────────────╜
The results above are for Alt-F1. BIOS returns al=0 indicating an
extended key has been pressed and ah = 104 which is the extended code for
Alt-F1. BASIC's INKEY$ function would report chr$(104);chr$(0).
***** { R } - Ruler
The following ruler line appears on the screen in reverse video. A one
character wide "cursor" appears at some position along the line. By moving the
cursor horizontally and the ruler vertically you can measure the position of
any charater on the screen both in terms of row and column and in terms of
offset into video RAM. The upper left corner of the screen is row 0, column 0
and video offset 0. The lower right hand corner of the screen is row 24,
column 79 and video offset 3998 (both character and attribute bytes are
counted).
Row = 12, Col = 1 , Video offset = 1954, Row = 12, Col = 17, Video offset = 1954
In the above sample, the ruler is at row 12 and the cursor (which you
can't see here) is at column 1 which translates to a video offset of 1954.
Note that the right and left sides of the ruler are duplicates of each other.
This is because the cursor, which acts like a window into the underlying
screen, will often fall on one of the numbers of interest. The movement keys
are as follows:
Up / Down arrows - Ruler up / down one line
PgUp / PgDn - Ruler to top / bottom of screen
Left / Right arrows - Cursor left / right one column
Home / End - Cursor to start / end of line
Esc - Returns to main menu
**** { E } - Eject Page
Nothin special. Just sends a form feed character to the printer using
BIOS so it should work through most spoolers.
**** { N } - Normal Screen **** { Q } - Quick Screen
These selections toggle between normal DOS screen updating and enhanced
updating. The default is "Normal". Selecting "Quick" invokes function 44h of
the DOS function dispatcher to set bit 5 (the so-called "raw" bit) in the
standard output device (the screen). Selecting "Normal" reverses the process.
The quick mode is great MOST OF THE TIME. DOS screen updating is
significantly faster. There are a few (Microsoft) programs which gag in
quick mode (e.g. DOS's LABEL.COM). Such programs lock up when run while quick
mode is in effect and require reboot. Depending on how often you use programs
which conflict, it may not be worth the effort to use quick mode at all. If,
like me, you don't use them very often then it's merely a matter of remembering
to return to normal mode before you do.
**** { U } - Un-Install
This selection causes @LAST to remove itself from memory and return the
memory it was using to DOS. @LAST will only remove itself if it is the last
resident item in memory. Thus, if any other TSR's were loaded after @LAST,
they must be removed prior to un-installing @LAST. If you hear a beep after
selecting un-install then un-installation was NOT SUCCESSFUL, otherwise it was.
Command Line Customization:
@LAST [m|c] [0|1|2|3|4] [h] [k]
All switches are optional, "|" means select only one
m - Specifies monochrome operation
c - Specifies color operation { default }
0 - Printer is attached to com1
1 - Printer is attached to com2
2 - Printer is attached to lpt1 { default }
3 - Printer is attached to lpt2
4 - Printer is attached to lpt3
h - Pause for user specified hot key { default is Ctrl-Insert }
k - Pause for Auto-Klone selections (see below)
Auto-Klone Feature:
You can avoid having to specify the above switches every time the program
is run by *** going to the directory where @LAST resides *** and invoking @LAST
with @LAST k . The following choices presented:
<1> - Change monitor type
<2> - Change printer port
<3> - Change hot key
<4> - Save changes & Continue
<5> - Continue without saving
<0> - Abort program
**** <1> - Change monitor type - leads to either ...
Now MONO, change to COLOR? <1>=Yes
OR
Now MONO, change to COLOR? <1>=Yes
**** <2> - Change printer port - leads to ...
<0>=COM1
<1>=COM2
<2>=LPT1 <= Current setting
<3>=LPT2
<4>=LPT3
Make new selection or press <Esc> to cancel.
**** <3> - Change hot key - leads to ...
Selecting a hot key is a TWO STEP PROCESS:
First . . .
Press YOUR combination of Ctrl, Alt, Left-Shift, and Right-Shift keys and,
WITH THESE KEYS HELD DOWN, press any normal key. <Esc> to cancel.
Second . . .
With the above keys RELEASED, press the normal key to be used with them.
e.g. Ctrl-Alt from above plus <A> now would make Ctrl-Alt-A the hot key.
<Esc> to cancel.
**** <4> - Save changes & Continue
The changes you made are written back to @LAST.COM to be used each
time @LAST is loaded. After writing the chages, @LAST continues on
to become resident using your newly specified changes.
**** <5> - Continue without saving
@LAST continues on to become resident using the changes you have
just specified but DOES NOT clone these changes back into
@LAST.COM.
**** <0> - Abort program
This abandons any changes - they are NOT cloned back into @LAST.COM
and @LAST does NOT become resident.
DISCLAIMER:
This software is provided "as is" without any warranty either express or
implied. The user assumes all responsibility in determining its usefulness and
or fitness for any purpose, and assumes all risks associated therewith.
It should be noted that although great care was taken in the preparation
of this software, the author's primary occupation is NOT as a programmer.
COPYRIGHT NOTICE:
This software is provided on a user supported basis and is protected by a
federal copyright. This software may be used for evaluation purposes for a
period of up to two (2) weeks. Continued use beyond two weeks requires
permanent liscensing (registration) of the user and payment of a fifteen dollar
($15) registration fee.
This software specifically MAY NOT be distributed:
1. In connection with another product or service whether "free" or not.
2. Without this documentation and notice.
3. For any consideration (other than a disk fee not exceeding $5).
================================================================================
S O F T W A R E R E G I S T R A T I O N F O R M
No. Copies Item Fee/Copy Registration Fee
------------ ------------------------- ---------- ----------------
____________ @LAST ver. 2.00 $15 ea. _______________
Send registration to: Duane A. Bowen
9444 Parkway Drive
Highland, IN 46322
Contact author for site liscensing of quantities of 50 or more.
================================================================================
PS:
If sufficient interest is shown in @LAST, I will make a serious effort at
adding a good calculator and clipboard. With those two additions, some of the
old standby memory hogs should be gone forever. I am also interested in
hearing your recommendations for future enhancements.
Duane