UTILS\PROGINFO.HLP ·
HLP ·
21.9 KB ·
1988-01-22 ·
from PCPlus_Issue-20_May-1988
╒════════════════════════════════════════════════════════════════════════════╕
│ PROGRAMMER'S QUICK REFERENCE GUIDE │
│ Copyright (C)1988 AWARE SOFTWARE by Mark Cummins │
╘════════════════════════════════════════════════════════════════════════════╛
SUBJECT PAGE
╒═══════════════════════════╤════╗
│ASCII Chart │ 2 ║
├───────────────────────────┼────╢
│Box Drawing Characters │ 3 ║
├───────────────────────────┼────╢
│8088 Instruction Set │ 4 ║
├───────────────────────────┼────╢
│Special Key Codes │ 8 ║
├───────────────────────────┼────╢
│Universal MS-DOS Functions │ 10 ║
├───────────────────────────┼────╢
│New MS-DOS Functions │ 13 ║
├───────────────────────────┼────╢
│ROM-BIOS Services │ 14 ║
└───────────────────────────┴────╜
@
0 20 40 60 80 100 120 140 160 180 200 220 240
┌───────────────────────────────────────────────────────────────────────────
1│ ) = Q e y ì í ╡ ╔ ▌ ±
2│ * > R f z Ä ó ╢ ╩ ▐ ≥
3│ + ? S g { Å ú ╖ ╦ ▀ ≤
4│ , @ T h | É ñ ╕ ╠ α ⌠
5│ - A U i } æ Ñ ╣ ═ ß ⌡
6│ ^Z . B V j ~ Æ ª ║ ╬ Γ ÷
7│ [ / C W k ô º ╗ ╧ π ≈
8│ \ 0 D X l Ç ö ¿ ╝ ╨ Σ °
9│ ] 1 E Y m ü ò ⌐ ╜ ╤ σ ∙
10│^J ^ 2 F Z n é û ¬ ╛ ╥ µ ·
11│ _ 3 G [ o â ù ½ ┐ ╙ τ √
12│ 4 H \ p ä ÿ ¼ └ ╘ Φ ⁿ
13│^M ! 5 I ] q à Ö ¡ ┴ ╒ Θ ²
14│ " 6 J ^ r å Ü « ┬ ╓ Ω ■
15│ # 7 K _ s ç ¢ » ├ ╫ δ
16│ $ 8 L ' t ê £ ░ ─ ╪ ∞
17│ % 9 M a u ë ¥ ▒ ┼ ┘ φ
18│ & : N b v è ₧ ▓ ╞ ┌ ε
19│ ' ; O c w ï ƒ │ ╟ █ ∩
20│ ( < P d x î á ┤ ╚ ▄ ≡
@
BOX DRAWING CHARACTERS
┌─────────────────────────────┐ ╔═════════════════════════════╗
│ 218 196 194 191 │ ║ 201 205 203 187 ║
│ ┌ ─ ┬ ┐ │ ║ ╔ ═ ╦ ╗ ║
│179 │ │ ║186 ║ ║
│195 ├ ┼ ┤ 180│ ║204 ╠ ╬ ╣ 185║
│ 197 │ ║ 206 ║
│ └ ┴ ┘ │ ║ ╚ ╩ ╝ ║
│ 192 193 217 │ ║ 200 202 188 ║
└─────────────────────────────┘ ╚═════════════════════════════╝
╒═════════════════════════════╕ ╓─────────────────────────────╖
│ 213 209 184 │ ║ 214 210 183 ║
│ ╒ ╤ ╕ │ ║ ╓ ╥ ╖ ║
│ │ ║ ║
│198 ╞ ╪ ╡ 181│ ║199 ╟ ╫ ╢ 182║
│ 216 │ ║ 215 ║
│ ╘ ╧ ╛ │ ║ ╙ ╨ ╜ ║
│ 212 207 190 │ ║ 211 208 189 ║
╘═════════════════════════════╛ ╙─────────────────────────────╜
@
8088 INSTRUCTION SET
──────────────────────────────────────────────────────────────────────────────
Mnemonic Full Name Mnemonic Full Name
────────────────────────────────────────┬─────────────────────────────────────
AAA ASCII adjust for addition │ CMPSW Compare word string
AAD ASCII adjust for division │ CWD Convert word to double word
AAM ASCII adjust for multiplication│ DAA Decimal adjust for addition
AAS ASCII adjust for subtraction │ DAS Decimal adjust for subtract
ADC Add with carry │ DEC Decrement
ADD Add │ DIV Divide
AND And │ ESC Escape
CALL Call │ HLT Halt
CBW Convert byte to word │ IDIV Integer divide
CLC Clear carry flag │ IMUL Integer multiply
CLD Clear direction flag │ IN Input byte or word
CLI Clear interrupt flag │ INC Increment
CMC Complement carry flag │ INT Interrupt
CMP Compare │ INTO Interrupt on overflow
CMPS Compare byte or word(of string)│ IRET Interrupt return
CMPSB Compare byte string │ JA Jump on above
────────────────────────────────────────┴─────────────────────────────────────
continued....
@
8088 INSTRUCTION SET continued...
──────────────────────────────────────────────────────────────────────────────
Mnemonic Full Name Mnemonic Full Name
────────────────────────────────────────┬─────────────────────────────────────
JAE Jump on above or equal │ JNG Jump on not greater
JB Jump on below │ JNGE Jump on not greater or equal
JBE Jump on below or equal │ JNL Jump on not less than
JC Jump on carry │ JNLE Jump on not less or equal
JCXZ Jump on CX zero │ JNO Jump on not overflow
JE Jump on equal │ JNP Jump on not parity
JG Jump on greater │ JNS Jump on not sign
JGE Jump on greater or equal │ JNZ Jump on not zero
JL Jump on less than │ JO Jump on overflow
JLE Jump on less than or equal │ JP Jump on parity
JMP Jump │ JPE Jump on parity even
JNA Jump on not above │ JPO Jump on parity odd
JNAE Jump on not above or equal │ JS Jump on sign
JNB Jump on not below │ JZ Jump on zero
JNBE Jump on not below or equal │ LAHF Load AH with flags
JNC Jump on no carry │ LDS Load pointer into DS
JNE Jump on not equal │ LEA Load effective address
────────────────────────────────────────┴─────────────────────────────────────
continued....
@
8088 INSTRUCTION SET continued...
──────────────────────────────────────────────────────────────────────────────
Mnemonic Full Name Mnemonic Full Name
────────────────────────────────────────┬─────────────────────────────────────
LES Load pointer into ES │ NOT NOT
LOCK LOCK bus │ OR OR
LODS Load byte or word (of string) │ OUT Output byte or word
LODSB Load byte (string) │ POP POP
LODSW Load word (string) │ POPF POP flags
LOOP LOOP │ PUSH PUSH
LOOPE LOOP while equal │ PUSHF PUSH flags
LOOPNE LOOP while not equal │ RCL Rotate through carry left
LOOPNZ LOOP while not zero │ RCR Rotate through carry right
LOOPZ LOOP while zero │ REP Repeat
MOV Move │ REPE Repeat if equal
MOVS Move byte or word (of string) │ REPNE Repeat if not equal
MOVSB Move byte (string) │ REPNZ Repeat if not zero
MOVSW Move word (string) │ REPZ Repeat if zero
MUL Multiply │ RET Return
NEG Negate │ ROL Rotate left
NOP No operation │ ROR Rotate right
────────────────────────────────────────┴─────────────────────────────────────
continued....
@
8088 INSTRUCTION SET continued...
──────────────────────────────────────────────────────────────────────────────
Mnemonic Full Name Mnemonic Full Name
────────────────────────────────────────┬─────────────────────────────────────
SAHF Store AH into flags │ WAIT WAIT
SAL Shift arithmetic left │ XCHG Exchange
SAR Shift arithmetic right │ XLAT Translate
SBB Subtract with borrow │ XOR Exclusive OR
SCAS Scan byte or word (of string) │
SCASB Scan byte (string) │
SCASW Scan word (string) │
SHL Shift left │
SHR Shift right │
STC Set carry flag │
STD Set direction flag │
STI Set interrupt flag │
STOS Store byte or word (of string) │
STOSB Store byte (string) │
STOSW Store word (string) │
SUB Subtract │
TEST TEST │
────────────────────────────────────────┴─────────────────────────────────────
@
Value Keys Value Keys Value Keys Value Keys
(Dec) Pressed (Dec) Pressed (Dec) Pressed (Dec) Pressed
──────────────────────────────────────────────────────────────────────────────
59 F1 89 Shift-F6 104 Alt-F1 125 Alt-6
60 F2 90 Shift-F7 105 Alt-F2 126 Alt-7
61 F3 91 Shift-F8 106 Alt-F3 127 Alt-8
62 F4 92 Shift-F9 107 Alt-F4 128 Alt-9
63 F5 93 Shift-F10 108 Alt-F5 129 Alt-0
64 F6 109 Alt-F6 130 Alt-Hyphen
65 F7 94 Ctrl-F1 110 Alt-F7 131 Alt-=
66 F8 95 Ctrl-F2 111 Alt-F8
67 F9 96 Ctrl-F3 112 Alt-F9 16 Alt-Q
68 F10 97 Ctrl-F4 113 Alt-F10 17 Alt-W
98 Ctrl-F5 18 Alt-E
84 Shift-F1 99 Ctrl-F6 120 Alt-1 19 Alt-R
85 Shift-F2 100 Ctrl-F7 121 Alt-2 20 Alt-T
86 Shift-F3 101 Ctrl-F8 122 Alt-3 21 Alt-Y
87 Shift-F4 102 Ctrl-F9 123 Alt-4 22 Alt-U
88 Shift-F5 103 Ctrl-F10 124 Alt-5 23 Alt-I
──────────────────────────────────────────────────────────────────────────────
The auxiliary byte value of the 97 special keys on the standard IBM PC
keyboard. The main byte value is always 0.
continued...
@
Value Keys Value Keys Value Keys Value Keys
(Dec) Pressed (Dec) Pressed (Dec) Pressed (Dec) Pressed
──────────────────────────────────────────────────────────────────────────────
24 Alt-O 47 Alt-V 77 Right arrow 132 Ctrl-PgUp
25 Alt-P 48 Alt-B
49 Alt-N 79 End
30 Alt-A 50 Alt-M 80 Down arrow
31 Alt-S 81 PgDn
32 Alt-D 3 Null (0) 82 Insert
33 Alt-F 83 Delete
34 Alt-G 15 Reverse Tab
35 Alt-H (Shift-Tab) 114 Echo
36 Alt-J (Ctrl-PrtScr)
37 Alt-K 71 Home 115 Ctrl <--
38 Alt-L 72 Up arrow 116 Ctrl -->
73 PgUp 117 Ctrl-End
44 Alt-Z 118 Ctrl-PgDn
45 Alt-X 75 Left arrow 119 Ctrl-Home
46 Alt-C
──────────────────────────────────────────────────────────────────────────────
The auxiliary byte value of the 97 special keys on the standard IBM PC
keyboard. The main byte value is always 0.
@
UNIVERSAL MS-DOS FUNCTIONS
──────────────────────────────────────────────────────────────────────────────
Function Function
Dec Hex Description Dec Hex Description
──────────────────────────────────────────────────────────────────────────────
0 0 Terminate: end program 16 10 Close file
1 1 Keyboard input with echo 17 11 Search for first
2 2 Display output matching file
3 3 Serial input 18 12 Search for next
4 4 Serial output matching file
5 5 Printer output 19 13 Delete file
6 6 Direct keyboard display I/O 20 14 Read sequential file
7 7 Direct keyboard input without echo record
8 8 Keyboard input without echo 21 15 Write sequential file
9 9 Display string record
10 A Buffered keyboard input 22 16 Create file
11 B Check keyboard input status 23 17 Rename file
12 C Clear keyboard and do function 25 19 Report current drive
13 D Reset disk 26 1A Set disk transfer area
14 E Select current drive 27 1B Get FAT info, current
15 F Open file drive
──────────────────────────────────────────────────────────────────────────────
continued...
@
UNIVERSAL MS-DOS FUNCTIONS continued...
──────────────────────────────────────────────────────────────────────────────
Function Function
Dec Hex Description Dec Hex Description
──────────────────────────────────────────────────────────────────────────────
28 1C Get FAT info, any drive 40 28 Write random file records
33 21 Read random file record 41 29 Parse filename
34 22 Write random file record 42 2A Get date
35 23 Get file size 43 2B Set date
36 24 Set random record field 44 2C Get time
37 25 Set interrupt vector 45 2D Set time
38 26 Create program segment 46 2E Set disk write verify
39 27 Read random file records
──────────────────────────────────────────────────────────────────────────────
@
NEW MS-DOS FUNCTIONS (MS-DOS 2.00 AND LATER)
──────────────────────────────────────────────────────────────────────────────
Function Function
Dec Hex Description Dec Hex Description
──────────────────────────────────────────────────────────────────────────────
47 2F Get DTA address 65 41 Delete file
48 30 Get DOS version number 66 42 Move file pointer
49 31 KEEP: Advanced terminate-but-stay- 67 43 CHMOD: Get/set file
resident attributes
51 33 Get/set control break 68 44 IOCTL: I/O control for
53 35 Get interrupt vector devices
54 36 Get disk free space 69 45 DUP: Duplicate file
56 38 Get country-dependent information handle
57 39 MKDIR: Make directory 70 46 CDUP: Force handle
58 3A RMDIR: Remove directory duplication
59 3B CHDIR: Change current directory 71 47 Get current directory
60 3C CREAT: Create file 72 48 Allocate memory
61 3D Open file 73 49 Free allocated memory
62 3E Close file handle 74 4A SETBLOCK: Modify
63 3F Read from file or device allocated memory block
64 40 Write to file or device
──────────────────────────────────────────────────────────────────────────────
continued...
@
NEW MS-DOS FUNCTIONS (MS-DOS 2.00 AND LATER) continued...
──────────────────────────────────────────────────────────────────────────────
Function Function
Dec Hex Description Dec Hex Description
──────────────────────────────────────────────────────────────────────────────
75 4B EXEC: Load/execute program DOS 3.00 FUNCTIONS
76 4C Terminate process
77 4D Get return code of sub-program 89 59 Get extended error code
78 4E FIND FIRST: Start file search 90 5A Create temporary file
79 4F FIND NEXT: Continue file search 91 5B Create new file
84 54 Get verify state 92 5C Lock/unlock file access
86 56 Rename file 98 62 Get PSP address
87 57 Get/set file date and time
──────────────────────────────────────────────────────────────────────────────
@
ROM-BIOS SERVICES
──────────────────────────────────────────────────────────────────────────────
Interrupt Service
Subject Dec Hex (hex) Description
──────────────────────────────────────────────────────────────────────────────
Print Screen 5 5 n/a Send screen contents to printer
Video 16 10 0 Set video mode
Video 16 10 1 Set cursor size
Video 16 10 2 Set cursor position
Video 16 10 3 Read cursor position
Video 16 10 4 Read light-pen position
Video 16 10 5 Set active display page
Video 16 10 5(AL:128) Get display page registers
Video 16 10 5(AL:129) Set CPU display page register
Video 16 10 5(AL:130) Set CRT display page register
Video 16 10 5(AL:131) Set both display page registers
Video 16 10 6 Scroll window up
Video 16 10 7 Scroll window down
Video 16 10 8 Read character and attribute
Video 16 10 9 Write character and attribute
Video 16 10 A Write character
──────────────────────────────────────────────────────────────────────────────
continued...
@
ROM-BIOS SERVICES continued...
──────────────────────────────────────────────────────────────────────────────
Interrupt Service
Subject Dec Hex (hex) Description
──────────────────────────────────────────────────────────────────────────────
Video 16 10 B Set colour palette
Video 16 10 C Write pixel dot
Video 16 10 D Read pixel dot
Video 16 10 E Write character as TTY
Video 16 10 F Get current video mode
Equipment 17 11 n/a Get list of peripheral equipment
Memory 18 12 n/a Get usable memory size (in K-bytes)
Disk 19 13 0 Reset disk system
Disk 19 13 1 Get disk status
Disk 19 13 2 Read disk sectors
Disk 19 13 3 Write disk sectors
Disk 19 13 4 Verify disk sectors
Disk 19 13 5 Format disk track
Serial port 20 14 0 Initialise serial port parameters
Serial port 20 14 1 Send out one character
Serial port 20 14 2 Receive one character
──────────────────────────────────────────────────────────────────────────────
continued...
@
ROM-BIOS SERVICES continued...
──────────────────────────────────────────────────────────────────────────────
Interrupt Service
Subject Dec Hex (hex) Description
──────────────────────────────────────────────────────────────────────────────
Serial port 20 14 3 Get serial port status
Cassette 21 15 0 Turn on cassette motor
Cassette 21 15 1 Turn off cassette motor
Cassette 21 15 2 Read data blocks
Cassette 21 15 3 Write data blocks
Keyboard 22 16 0 Read next keyboard character
Keyboard 22 16 1 Report whether character ready
Keyboard 22 16 2 Get shift status
Printer 23 17 0 Send one byte to printer
Printer 23 17 1 Initialise printer
Printer 23 17 2 Get printer status
BASIC 24 18 n/a Switch control to BASIC
Bootstrap 25 19 n/a Reboot computer
Time 26 1A 0 Read current clock count
Time 26 1A 1 Set current clock count
──────────────────────────────────────────────────────────────────────────────