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
──────────────────────────────────────────────────────────────────────────────