home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / qbnewsl / qbnws202 / fastprnt / figures.txt < prev   
Text File  |  1991-05-09  |  5KB  |  103 lines

  1. ──────────────────────────────────────────────────────────────────────
  2. Figure 1.1    Stack contents after entry into FastPrint.    
  3.  
  4.      ┌───────────────────────┐
  5.      │  First Parameter      │ BP + 12    ROW% co-ordinate
  6.      ├───────────────────────┤
  7.      │  Second Parameter     │ BP + 10    COLUMN% co-ordinate
  8.      ├───────────────────────┤
  9.      │  Third Parameter      │ BP + 8    Pointer to string
  10.      ├───────────────────────┤
  11.      │  Fourth Parameter     │ BP + 6    ATTRIBUTE% value
  12.      ├───────────────────────┤ ┐
  13.      │  Return Segment       │ │  This is a FAR call so both the
  14.      ├───────────────────────┤ ├  Segment & Offset of the return
  15.      │  Return Offset        │ │  address are pushed.
  16.      ├───────────────────────┤ ┘
  17.      │  Saved BP register    │ <--    Base Pointer (BP) stays here.
  18.      ├───────────────────────┤
  19.      │  Saved ES register    │
  20.      ├───────────────────────┤
  21.      │  Saved SI register    │
  22.      ├───────────────────────┤    Stack Pointer (SP) register
  23.      │  Saved DI register    │ <--    points to last item pushed.
  24.      └───────────────────────┘
  25.  
  26. ──────────────────────────────────────────────────────────────────────
  27. Figure 1.2    The interrupt sequence used on computers such as the IBM-PC
  28.             which use the Intel 80x86 family of micro-processors.
  29.  
  30.  Interrupt Vector       Program         Interrupt Handler
  31.       Table                           at address 1DA6:01E3
  32.  
  33.    ├───────────┤      ├──────────┤        ┌──────────┐
  34. 14 │ 167F:0439 │   ┌─>│  INT 16  │───────>│ PUSH AX  │
  35.    ├───────────┤   │  ├──────────┤        ├──────────┤
  36. 15 │ 0070:0774 │   │  │          │<───┐   │ PUSH BX  │
  37.    ├───────────┤   │                  │   ├──────────┤
  38. 16 │ 1DA6:01E3 │<──┘     Stack        │   │   etc.   │
  39.    ├───────────┤      ├──────────┤    │   ├    .     ┤
  40. 17 │ F000:F84D │      │ saved IP │──┐ │
  41.    ├───────────┤      ├──────────┤  │ │   ├    .     ┤
  42. 18 │ F000:F841 │      │ saved CS │──┤ │   │    .     │
  43.    ├───────────┤      ├──────────┤  │ │   ├──────────┤
  44.                       │   Flags  │──┤ └───│   IRET   │
  45.                       ├──────────┤  │     └──────────┘
  46.                                     └───────────┘
  47.  
  48. ──────────────────────────────────────────────────────────────────────
  49. Figure 1.3    PC Memory map highlighting the BIOS data area in low RAM
  50.  
  51. Segment address (in hex)
  52.  
  53. FFFF   ┌─────────────────────┐ 1024K
  54.        │       ROM-BIOS      │
  55. E000   ├─────────────────────┤
  56.        │ Hardware extensions │
  57. C000   ├─────────────────────┤ Color screen is at segment B800
  58.        │   Display  memory   │ Mono screen is at segment B000
  59. A000   └─────────────────────┘ 
  60.                                up to 640K
  61. 9FFF   ┌─────────────────────┐
  62.        │  Transient part of  │
  63.        │         DOS         │
  64.        ├─────────────────────┤
  65.        │                     │
  66.        │                     │
  67.                               
  68.        │      far data       │
  69.        │  (dynamic arrays)   │
  70.       ┌┼─────────────────────┼┐
  71.       │├                     ┤│
  72.       ││   QuickBASIC data   │├─ Default DEF SEG address
  73.       ││   segment (DGROUP)  ││
  74.       │├                     ┤│ ┌──────────────────────────────┐
  75.       └┼─────────────────────┼┘ │ Offsets from segment 40(Hex) │█
  76.        │  QuickBASIC program │  │                              │█
  77.        ├─                   ─┤  │ 0050 ├─                  ─┤  │█
  78.        │        TSRs         │  │      │ Offset address of  │  │█
  79.        ├─                   ─┤  │      │   current page     │  │█
  80.        │   Resident part of  │  │ 004E ├─                  ─┤  │█
  81.        │         DOS         │  │      │ Number of bytes in │  │█
  82.        ├─────────────────────┤  │      │   cureent screen   │  │█
  83.        │    BIOS Data area   │  │ 004C ├─                  ─┤  │█
  84. 0040   ├─────────────────────┤<─┤      │ Characters per row │  │█
  85.        │  Interrupt vectors  │  │ 0049 ├─                  ─┤  │█
  86. 0000   └─────────────────────┘  │                              │█
  87.                                 └──────────────────────────────┘█ 
  88.                                   ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
  89. ──────────────────────────────────────────────────────────────────────
  90.  
  91. Figure 1.4     Structure of the String Descriptor passed by QuickBASIC
  92.  
  93.                    ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
  94.                 ┌──────┬──────┬──────┬──────┐█
  95.                 │  LSB   MSB  │  LSB   MSB  │█
  96.                 └──────┴──────┴──────┴──────┘
  97.                     Length        Offset
  98.                  (0 to 32767)  (0 to 65535)
  99.  
  100.       LSB = Least Significant Byte    MSB = Most Significant Byte
  101.  
  102. ──────────────────────────────────────────────────────────────────────
  103.