# Category : Miscellaneous Language Source Code

Archive : PRGCALC.ZIP

Filename : PRGCALC.DOC

PRGCALC - Programmer's Calculator

Users Guide for

Version 2.5

07 November 1987

Copyright (C) 1987 by Michael Burton

Michael Burton

15540 Boot Hill Rd.

Hayden Lake, Idaho 83835

(208) 772-9347 (after 6 p.m. Pacific Time)

PRGCALC - Programmer's Calculator Version 2.5

Copyright (C) 1987 by Michael Burton 07 Nov 87

TABLE OF CONTENTS

I. Introduction. . . . . . . . . . . . . . . . . . . . . . . 1

A. Overview. . . . . . . . . . . . . . . . . . . . . . . . 1

B. Purpose . . . . . . . . . . . . . . . . . . . . . . . . 1

C. Program Specifications. . . . . . . . . . . . . . . . . 1

D. PRGCALC as ShareWare. . . . . . . . . . . . . . . . . . 1

II. Getting Started. . . . . . . . . . . . . . . . . . . . . 2

A. Running PRGCALC . . . . . . . . . . . . . . . . . . . . 2

B. Making PRGCALC RAM-resident . . . . . . . . . . . . . . 3

C. PRGCALC Command Line Switches . . . . . . . . . . . . . 3

a. The Color Switch (/C) . . . . . . . . . . . . . . . . 3

b. The Position Switch (/P). . . . . . . . . . . . . . . 4

c. The Hotkey Switch (/H). . . . . . . . . . . . . . . . 4

d. The Install Switch (/I) . . . . . . . . . . . . . . . 5

e. The Suspend Switch (/S) . . . . . . . . . . . . . . . 5

f. The Resume Switch (/R). . . . . . . . . . . . . . . . 5

g. The Delete Switch (/D). . . . . . . . . . . . . . . . 5

D. Calculator Keys Operation . . . . . . . . . . . . . . . 6

a. The Right Side Keys . . . . . . . . . . . . . . . . . 6

b. The Left Side Keys. . . . . . . . . . . . . . . . . . 6

E. Reverse Polish Notation and the Stack . . . . . . . . . 7

a. Stack Operation . . . . . . . . . . . . . . . . . . . 7

b. One number (Monadic) Operations . . . . . . . . . . . 9

c. Two number (Dyadic) Operations. . . . . . . . . . . . 9

III. Calculator Functions. . . . . . . . . . . . . . . . . .10

A. Stack Functions . . . . . . . . . . . . . . . . . . . .10

B. Number Base Functions . . . . . . . . . . . . . . . . .10

C. Logical Functions . . . . . . . . . . . . . . . . . . .11

D. Shift/Rotate Functions. . . . . . . . . . . . . . . . .11

E. Display Functions . . . . . . . . . . . . . . . . . . .12

F. Arithmetic Functions. . . . . . . . . . . . . . . . . .12

G. Other Functions . . . . . . . . . . . . . . . . . . . .12

IV. Memory Functions . . . . . . . . . . . . . . . . . . . .13

A. Storing Numbers in Memory Registers . . . . . . . . . .13

B. Recalling Numbers from Memory Registers . . . . . . . .13

Appendix A - Display Colors. . . . . . . . . . . . . . . . .14

Appendix B - Keyboard Scan Codes . . . . . . . . . . . . . .15

Appendix C - Software Discrepancy Report Form. . . . . . . .16

Page i

PRGCALC - Programmer's Calculator Version 2.5

Copyright (C) 1987 by Michael Burton 07 Nov 87

I. Introduction

A. Overview

PRGCALC is an integer calculator specifically designed for

use by programmers. All registers used in, and

calculations done by PRGCALC use 32 bit integers. PRGCALC

can perform number base conversions, bit manipulations,

logical operations and normal arithmetic operations.

PRGCALC is a Reverse Polish Notation (RPN) calculator with

a four entry stack and sixteen memory registers. The user

can control PRGCALC's display colors, calculator

positioning on the display, its RAM-residency status and

even what 'hot key' is used to activate it if it is RAM-

resident.

PRGCALC was written in Borland International Turbo C. It

uses three routines that were written in assembly language.

B. Purpose

The purpose of this users guide is to provide help with

running PRGCALC, as well as helping you to get the most out

of the calculator. It will explain how to run PRGCALC, how

to use the command line switches, how to key in operations,

how Reverse Polish Notation works, how the different

calculator functions work and how to use the calculator's

memory registers.

C. Program Specifications

Program date: 07 Nov 87

Program version: 2.5

Program size: 24978

RAM-residence memory requirement: 37792

Disk Drives required: None

Display required: Any IBM compatible MDA, CGA, EGA, VGA,

Hercules, etc. in text mode.

Special hardware required: None

D. PRGCALC as ShareWare

The PRGCALC program and this manual are both Copyright (C)

1987 by Michael Burton. They are being distributed under

the 'ShareWare' concept. This means that if after trying

out PRGCALC, you decide to use it on a regular basis, you

are expected to register the program by sending $18 to

Michael Burton

15540 Boot Hill Rd.

Hayden Lake, ID 83835

In return for your registration, you will immediately

receive via first class mail the latest version of PRGCALC

Page 1

PRGCALC - Programmer's Calculator Version 2.5

Copyright (C) 1987 by Michael Burton 07 Nov 87

and a printed version of this guide, as well as several

other ShareWare programs written in both C and Pascal.

You are encouraged to copy and distribute PRGCALC to anyone

with the following restrictions:

1. The PRGCALC program and the file for this manual

must be distributed as a set. It is important that

the manual be included for those who know little or

nothing about RPN.

2. No changes may be made to either file. PRGCALC and

this manual are both copyrighted and should remain

unchanged.

3. You may not charge for PRGCALC's distribution or

copying. The exception to this is User Groups, who

may make a small charge for the cost of disks and

copying, not to exceed $10.

4. Commercial use of PRGCALC in any manner is

prohibited without the express written consent of

the author. Commercial users of PRGCALC MUST

register the number of copies that they will be

using.

The PRGCALC program and this accompanying users guide are

provided 'as is' without warranty of any kind. The

correctness, accuracy, reliability and currentness of

PRGCALC and this users guide is not warranted. The entire

risk as to results and performance of PRGCALC is assumed by

the user.

II. Getting Started

A. Running PRGCALC

PRGCALC is very easy to run. The only file required is

PRGCALC.EXE. You may run it by entering:

PRGCALC

This will load and execute PRGCALC with default display

colors and calculator positioning. PRGCALC will NOT be

RAM-resident when invoked in this way. The default display

colors have been picked so that the calculator and its help

screens display correctly on a monochrome display.

If you are not satisfied with where the calculator is

positioned on the screen, you may move it with the cursor

keys.

To leave the PRGCALC program, simply press the Esc key.

Page 2

PRGCALC - Programmer's Calculator Version 2.5

Copyright (C) 1987 by Michael Burton 07 Nov 87

B. Making PRGCALC RAM-resident

PRGCALC may be made RAM-resident, that is, it will be

loaded into memory but will not be invoked until you press

a special combination of keys called a 'hot key'. To make

PRGCALC RAM-resident, enter:

PRGCALC /I

A message will be printed indicating that PRGCALC is

resident. To invoke the calculator, press the hot key.

The default hot key is Alt = (press and hold down the Alt

key, then press the equals key).

C. PRGCALC Command Line Switches

PRGCALC has several command line switches that you may use

to customize the calculator's operation. Some of these

switches are useful only if PRGCALC is already RAM-

resident. Other switches control other display and

invocation aspects of the calculator. There may be more

than one switch on the command line and they may be in any

order. The PRGCALC command line with all switches looks

like this:

PRGCALC /Chhdd /Prrcc /Hsscc /I /S /R /D

We will look at each of these switches separately.

a. The Color Switch (/C)

The /C color switch allows you to pick your own

favorite colors for the PRGCALC calculator and help

screens. The switch is invoked as:

PRGCALC /Chhdd

where hh is a hexadecimal number for the help screen

colors and dd is a hexadecimal number for the

calculator display colors. The upper digit of each

hex number is the background color and the lower digit

of each hex number is the text color. The allowable

values for colors are shown in Appendix A of this

guide.

Example:

Suppose you wish your help screens to be black letters

on a lightgray background and the calculator to be

yellow letters on a red background. The color switch

would look like:

Page 3

PRGCALC - Programmer's Calculator Version 2.5

Copyright (C) 1987 by Michael Burton 07 Nov 87

/C704E

||||

|||+-> Yellow text for calculator

||+-> Red background for calculator

|+-> Black text for help screens

+-> Lightgray background for help screens

b. The Position Switch (/P)

The /P position switch allows you to change the

initial position of where PRGCALC appears on the

screen. The switch is invoked as:

PRGCALC /Prrcc

where rr is a hexadecimal number for the starting row

and cc is a hexadecimal number for the starting

column. rr and cc refer to the coordinates of the

upper left corner of the calculator. rr must be

between 1 and 08h and cc must be between 1 and 18h (1

and 24 decimal).

Example:

Suppose you wanted the calculator to be initially

displayed at row 7 and column 17 (11h). The position

switch would look like:

/P0711

c. The Hotkey Switch (/H)

The /H hot key switch allows you to change the

combination of keys that are used as the hot key which

invokes the calculator when it is RAM-resident. The

switch is invoked as:

PRGCALC /Hsscc

where ss is a hexadecimal number that is the shift

key(s) to use and cc is a hexadecimal number of the

scan code for the hot key to use. ss looks like the

following:

bit 7 6 5 4 3 2 1 0

value 0 0 0 0 ALT CTL LSHF RSHF

The hot key scan codes may be obtained from Appendix

B of this users guide.

Example:

Suppose you want the hot key to be Ctl-Alt-1. The

shift key byte would look like:

Page 4

PRGCALC - Programmer's Calculator Version 2.5

Copyright (C) 1987 by Michael Burton 07 Nov 87

00001100 in binary, which is 0C in hex.

From the scan code table in Appendix B, the scan code

for '1' is 02, so the hot key switch would look like:

/H0C02

d. The Install Switch (/I)

The /I install switch instructs PRGCALC to make itself

RAM-resident. If you attempt to install PRGCALC and

it is already installed, nothing will happen.

If you wish to change the color, position and/or the

hot key used in a RAM-resident version of PRGCALC,

you must do so at the same time you make it RAM-

resident, i.e., at the same time the /I switch is

used.

Example:

Make PRGCALC RAM-resident with a hot key of Ctl-Alt-1.

PRGCALC /I /H0C02

e. The Suspend Switch (/S)

The /S suspend switch turns off the RAM-resident

PRGCALC, i.e., PRGCALC stops looking for its hot key.

This is useful if you are trying to run a program that

makes use of your PRGCALC hot key for one of its

internal functions. If you attempt to use the suspend

switch when PRGCALC is not RAM-resident, nothing will

happen.

f. The Resume Switch (/R)

The /R resume switch turns the RAM-resident PRGCALC

back on, i.e., PRGCALC starts looking for its hot key

again. If you attempt to use the resume switch when

PRGCALC is not RAM-resident, nothing will happen.

g. The Delete Switch (/D)

The /D delete switch allows you to remove the RAM-

resident PRGCALC from memory, IF POSSIBLE. There will

be certain times when it is not possible to remove the

program. PRGCALC will inform you whether it has

removed itself from memory or merely suspended itself.

If you attempt to delete PRGCALC and it is not RAM-

resident, nothing will happen.

Page 5

PRGCALC - Programmer's Calculator Version 2.5

Copyright (C) 1987 by Michael Burton 07 Nov 87

D. Calculator Keys Operation

Looking at the PRGCALC display (see below), you can see

that the keys are divided into two basic groups; those to

the left of the double line and those to the right. Since

the keys on the right are activated differently from the

keys on the left, we will address each group separately.

+--------------------------------------------------------+

| Programmer's +--------------------------------+ |

| Calculator Dec| 0| |

| Version 2.5 +--------------------------------+ |

+--------------------------------------------------------+

| F1 F2 F3 F4 F5 || |

| +---+---+---+---+---+ || +---+---+---+---+---+---+ |

| |HLP|CLX|ROL|XCH|SHW| || | A | B | 7 | 8 | 9 | / | |

| +---+---+---+---+---+ || +---+---+---+---+---+---+ |

| SHF |HEX|DEC|OCT|BIN|SHM| || | C | D | 4 | 5 | 6 | * | |

| +---+---+---+---+---+ || +---+---+---+---+---+---+ |

| CTL |AND| OR|XOR|NOT|STO| || | E | E | 1 | 2 | 3 | - | |

| +---+---+---+---+---+ || | N +---+---+---+---+---+ |

| ALT | SL| SR| RL| RR|RCL| || | T | F | 0 |BSP|SGN| + | |

| +---+---+---+---+---+ || +---+---+---+---+---+---+ |

+--------------------------------------------------------+

Left Side Keys Right Side Keys

a. The Right Side Keys

The keys on the right side of the calculator are very

easy to use. You simply press the corresponding key

on your keyboard and that operation takes place. If

you accidently hit a number that is not valid in the

number base you are working in, nothing will happen.

The three keys on the right side that might not be

immediately obvious are the ENT, BSP and SGN keys.

ENT means the Enter key, BSP means the backspace key

and SGN means the 'S' key.

b. The Left Side Keys

The keys on the left side of the calculator are

activated by using combinations of function keys F1

through F5 and the Shift, Control and Alt keys. For

instance, if you wished to activate the BIN key, you

would press Shift-F4, since the BIN key is in the F4

column and the SHF row.

Each of the keys on the left side will be explained

later in this users guide.

Page 6

PRGCALC - Programmer's Calculator Version 2.5

Copyright (C) 1987 by Michael Burton 07 Nov 87

E. Reverse Polish Notation and the Stack

PRGCALC uses Reverse Polish Notation (RPN), which is an

operating method that allows you to perform complex

calculator operations without using parentheses. RPN puts

intermediate results onto a 4 register stack and retrieves

them when required. The stack looks like this:

+--------------------------------+

| 0| X register

+--------------------------------+

| 0| Y register

+--------------------------------+

| 0| Z register

+--------------------------------+

| 0| T register

+--------------------------------+

The X register is the stack element that you see in the

window at the top of the calculator. To help understand

stack operations, you can display the other stack registers

by pressing SHW (F5).

When you enter a number, PRGCALC must be told that you have

finished entering it. You can do this by pressing any of

the function keys, but if you just want the number

available, you may press the Enter key. This is called

terminating the number. When you terminate a number, it is

pushed onto the stack.

a. Stack Operation

To make maximum effective use of PRGCALC, it is

necessary for you to understand how the stack works.

This understanding will increase if you use PRGCALC

with the SHW option turned on while you are performing

operations.

When a number is terminated, it is pushed onto the

stack. This means that the other numbers on the stack

are pushed down also. For example, if while you are

entering the number 121 into X and the stack looks

like this:

+--------------------------------+

| 121| X register

+--------------------------------+

| 0| Y register

+--------------------------------+

| 34| Z register

+--------------------------------+

| -2| T register

+--------------------------------+

Page 7

PRGCALC - Programmer's Calculator Version 2.5

Copyright (C) 1987 by Michael Burton 07 Nov 87

When you press the Enter key, everything is pushed

down and the stack looks like this:

+--------------------------------+

| 121| X register

+--------------------------------+

| 121| Y register

+--------------------------------+

| 0| Z register

+--------------------------------+

| 34| T register

+--------------------------------+

Note that the number that was in T is lost. Now when

you enter 67 into X, the 121 in it is written over:

+--------------------------------+

| 67| X register

+--------------------------------+

| 121| Y register

+--------------------------------+

| 0| Z register

+--------------------------------+

| 34| T register

+--------------------------------+

When you perform a dyadic operation (two number

operation) such as adding, Y will be added to X and

the terminated result will be placed in X. Press the

'+' key and the operation is performed and the rest of

the stack is popped:

+--------------------------------+

| 188| X register

+--------------------------------+

| 0| Y register

+--------------------------------+

| 34| Z register

+--------------------------------+

| 34| T register

+--------------------------------+

Note that when the stack is popped T is COPIED into Z.

Now if you enter another number, such as 201, the

terminated 188 is automatically pushed:

+--------------------------------+

| 201| X register

+--------------------------------+

| 188| Y register

+--------------------------------+

| 0| Z register

+--------------------------------+

| 34| T register

+--------------------------------+

Page 8

PRGCALC - Programmer's Calculator Version 2.5

Copyright (C) 1987 by Michael Burton 07 Nov 87

There are a couple of other ways to manipulate the

stack that we will explore later.

b. One number (Monadic) Operations

Monadic (one number) operations only affect the X

register. This means that you can key in your number,

press the key for the monadic operation and the

operation will be performed on the X register. The

number is terminated following the operation, but is

not pushed until you key in the next number. For

example, suppose you key in 8191:

+--------------------------------+

| 8191| X register

+--------------------------------+

| 0| Y register

+--------------------------------+

| 0| Z register

+--------------------------------+

| 0| T register

+--------------------------------+

Then change its sign by pressing S for SGN:

+--------------------------------+

| -8191| X register

+--------------------------------+

| 0| Y register

+--------------------------------+

| 0| Z register

+--------------------------------+

| 0| T register

+--------------------------------+

X is now terminated, so when you key in your next

number, the stack will be pushed:

+--------------------------------+

| 32| X register

+--------------------------------+

| -8191| Y register

+--------------------------------+

| 0| Z register

+--------------------------------+

| 0| T register

+--------------------------------+

PRGCALC's monadic functions are NOT, SL, SR, RL, RR and SGN.

c. Two number (Dyadic) Operations

Dyadic (two number) operations affect both the X and Y

registers. This means that both numbers involved in

Page 9

PRGCALC - Programmer's Calculator Version 2.5

Copyright (C) 1987 by Michael Burton 07 Nov 87

the operation must be keyed in before the operation is

performed, as in the addition example above.

PRGCALC's dyadic functions are AND, OR, XOR, addition,

subtraction, multiplication and division.

III. Calculator Functions

This section presents detailed explanations of each

calculator function. The functions are grouped into seven

areas; stack functions, number base functions, logical

functions, shift/rotate functions, display functions,

arithmetic functions and other functions. Memory functions

are addressed in a later section.

A. Stack Functions

The stack functions are those functions that are used to

rearrange the stack registers. They include ROL, XCH and

ENT.

ROL stands for roll. Its function is to roll the stack

registers up one register. When you press ROL, the X

register is put into T, T is put into Z, Z is put into Y

and Y is put into X. Following a ROL operation, the number

in X is terminated, i.e., when you key in another number,

the stack is pushed.

XCH exchanges the X and Y registers. It does not affect Z

or T. Following an XCH, the number in X is terminated.

ENT is used to immediately enter (push) the number in X

into Y. This affects the entire stack, as all registers

are pushed. The contents of T is lost.

B. Number Base Functions

Number base functions are used to convert between various

number bases. When a number base function is performed,

the display changes to indicate the new base and to

display the X register in that base. Using a number base

function terminates X. The number base functions are HEX,

DEC, OCT and BIN.

HEX changes the number base to hexadecimal. Entry of

digits 0 through 9 and A through F are allowed.

DEC changes the number base to decimal. Entry of digits 0

through 9 are allowed.

OCT changes the number base to octal. Entry of digits 0

through 7 are allowed.

BIN changes the number base to binary. Entry of digits 0

and 1 are allowed.

Page 10

PRGCALC - Programmer's Calculator Version 2.5

Copyright (C) 1987 by Michael Burton 07 Nov 87

C. Logical Functions

Logical functions are used to perform a bit by bit

operation on the number in X. The logical functions are

AND, OR, XOR and NOT. NOT is a monadic function, all the

rest are dyadic.

The AND function compares each corresponding bit of X and

Y. If both bits are a one, the result will be one. If

either bit is a zero the result is zero. The result of

this bit by bit ANDing is placed in X.

The OR function compares each corresponding bit of X and Y.

If either bit or both bits are a one, the result will be

one. If both bits are zero, the result will be zero. The

result of this bit by bit ORing is placed in X.

The XOR function compares each corresponding bit of X and

Y. If both bits are a one or both bits are a zero, the

result will be a zero. Otherwise the result will be a one.

The result of this bit by bit XORing is placed in X.

The NOT function performs a ones-complement of the X

register, making all zero bits into ones and all one bits

into zeroes. The result is placed in X.

D. Shift/Rotate Functions

Shift and rotate functions are monadic operations that move

the bits in the X register to the left or right. The shift

functions are SL and SR. The rotate functions are RL and

RR.

The SL shift function shifts the bits in X one posiion to

the left. The bit that was in the high order position is

lost.

The SR shift function shifts the bits in X one position to

the right. The bit that was in the low order position is

lost.

The RL rotate function shifts the bits in X one position to

the left. The bit that was in the high order position is

shifted into the low order position.

The RR rotate function shifts the bits in X one position to

the right. The bit that was in the low order position is

shifted into the high order position.

Page 11

PRGCALC - Programmer's Calculator Version 2.5

Copyright (C) 1987 by Michael Burton 07 Nov 87

E. Display Functions

Display functions are used to alter the calculator display

in some way. They include HLP, SHW and SHM. Activating a

display function does not affect the X register or any of

the other stack registers.

The HLP help function is used to pop up some help screens.

They will not take the place of this manual, but they will

give enough information to allow you to perform rudimentary

operations with the calculator. You may use the Esc key to

leave the HLP screens.

The SHW show function is a toggle that, when toggled on,

will display the entire stack in whatever number base that

has been selected. Pressing SHW again will disable the

stack display.

The SHM show memory function will display the sixteen

memory registers, 0 through 9 and A through F, in the

selected number base. Pressing Esc will disable the

display and allow you to continue using the calculator.

F. Arithmetic Functions

The arithmetic functions are the four functions that are

found on any calculator; add (+), subtract (-), multiply

(*) and divide (/). They are all dyadic operations.

The add function adds X to Y and places the result in X.

No checks are made for overflow - any overflow is

truncated.

The subtract function subtracts X from Y and places the

result in X.

The multiply function multiplies Y by X and places the

result in X. No checks are made for overflow - any

overflow is truncated.

The divide function divides Y by X and places the result in

X. Any remainder is lost. A check is made to ensure no

attempt to divide by 0 - nothing is done in that case.

G. Other Functions

The other functions include any function that doesn't fit

into a nice cosy category above. They include CLX, BSP and

SGN.

CLX is used to set the X register to zero. It does not

affect any of the other stack registers. The zero is not

terminated, i.e., it will not be pushed when you start to

key in another number.

Page 12

PRGCALC - Programmer's Calculator Version 2.5

Copyright (C) 1987 by Michael Burton 07 Nov 87

The BSP backspace function is used to delete a mistaken key

press from the X register. If, for instance, you keyed in

127 and meant to key in 128, you could use BSP to delete

the 7, then press 8 to get 128.

SGN simply changes the sign of the value in the X register.

This is the same as taking the 2's complement of X. When

SGN is used, the number in X is terminated.

IV. Memory Functions

PRGCALC has sixteen memory registers that can be used to

retain constants or intermediate calculation results. They

are labelled 0 through 9 and A through F. There are two

functions that allow you to use the memory registers - STO

allows you to store into a memory register and RCL allows

you to recall a memory register value. In either case, the

number in X is terminated.

A. Storing Numbers in Memory Registers

To store the value of X into a memory register, press STO,

then press the number of the memory register that you wish

to use. The value in X will be stored in the memory

register and will also remain in X.

B. Recalling Numbers from Memory Registers

To get a value back from a memory register, press RCL, then

press the number of the memory register from which you wish

to recall the number. The value will appear in the X

register and will also remain in the memory register.

Page 13

PRGCALC - Programmer's Calculator Version 2.5

Copyright (C) 1987 by Michael Burton 07 Nov 87

Appendix A - Display Colors

Display Colors For Calculator and Help Screens

Background colors

0 - black 4 - red

1 - blue 5 - magenta

2 - green 6 - brown

3 - cyan 7 - lightgray

Foreground colors

0 - black 8 - darkgray

1 - blue 9 - light blue

2 - green A - light green

3 - cyan B - light cyan

4 - red C - light red

5 - magenta D - light magenta

6 - brown E - yellow

7 - lightgray F - white

Page 14

PRGCALC - Programmer's Calculator Version 2.5

Copyright (C) 1987 by Michael Burton 07 Nov 87

Appendix B - Keyboard Scan Codes

Scan Codes for Keyboard Keys

Key Code Key Code Key Code

A 1E TAB 0F [ 1A

B 30 BSP 0E ] 1B

C 2E SPACE 39 ; 27

D 20 1 02 ' 28

E 12 2 03 , 33

F 21 3 04 . 34

G 22 4 05 / 35

H 23 5 06 ESC 01

I 17 6 07 NUML 45

J 24 7 08 SCRL 46

K 25 8 09 SYS 54

L 26 9 0A HOME 47

M 32 0 0B UPARRW 48

N 31 F1 3B PGUP 49

O 18 F2 3C LTARRW 4B

P 19 F3 3D NUM 5 4C

Q 10 F4 3E RTARRW 4D

R 13 F5 3F END 4F

S 1F F6 40 DNARRW 50

T 14 F7 41 PGDN 51

U 16 F8 42 PRTSC 37

V 2F F9 43 NUM - 4A

W 11 F10 44 NUM + 4E

X 2D ` 29 INS 52

Y 15 - 0C DEL 53

Z 2C = 0D

ENTER 1C \ 2B

Page 15

PRGCALC - Programmer's Calculator Version 2.5

Copyright (C) 1987 by Michael Burton 07 Nov 87

Appendix C - Software Discrepancy Report Form

Software Discrepancy Report

If you detect any errors in PRGCALC, please fill out this form

and send it to:

Michael Burton

15540 Boot Hill Rd.

Hayden Lake, ID 83835

Name: __________________________________________________________

Address: _______________________________________________________

City: _____________________________ State: ____ Zip: _________

Computer (PC, XT, AT, PS/2, etc.): _____________________________

Display adapter: _________________ Monitor Type: ______________

RAM size: _______ Operating System: __________ Version: _____

RAM-resident software loaded (in order loaded): ________________

________________________________________________________________

________________________________________________________________

Describe any unusual hardware in your system: __________________

________________________________________________________________

________________________________________________________________

Please describe the problem you encountered in detail: _________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

________________________________________________________________

Page 16

Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/