home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / dtx9203 / naxos / doc / rumpf.doc < prev    next >
Encoding:
Text File  |  1992-02-09  |  3.4 KB  |  117 lines

  1. RUMPF.DOC
  2. Autor: Klaus Peper
  3.  
  4. Der NAXOS-Compiler erstellt in jedem Fall folgenden Code
  5. und reserviert folgende Speicherzellen in jedem .COM-File
  6. (Das eigentliche Programm der Wörterbücher beginnt
  7. dann bei Adresse $01C8):
  8.  
  9. ( START: )
  10. CS:0100 EB3E           JMP    140
  11.  
  12. ( Systemadressen, vom Compiler gesetzt: )
  13.     102                main
  14.     104                r0
  15.     106                s0
  16.     108                dp
  17.     10A-10F            frei für System
  18.  
  19. ( Registerinhalte beim Einstieg: )
  20.     110         inreg: AX
  21.     112                CX
  22.     114                DX
  23.     116                BX
  24.     118                SP
  25.     11A                BP
  26.     11C                SI
  27.     11E                DI
  28.     120                CS ( der aufrufenden Prozedur )
  29.     122                DS
  30.     124                ES
  31.     126                SS
  32.     128                Flags
  33.  
  34. ( Feste Speicheradressen zur Laufzeit: )
  35.     12A-12C            frei
  36.     12D                exno
  37.     12E                dosflag
  38.     12A                spsave
  39.     12F                breakbyte
  40.     130                INT0-offsett
  41.     132                INT0-segment
  42.     134                videobyte
  43.     135                mousebyte
  44.     136-13C            frei
  45.  
  46. ( Einstieg für Debug etc: )
  47. CS:013D FFD7           CALL   DI
  48. CS:013F CB             RET    Far
  49.  
  50. ( Hauptprogramm: )
  51. ( Register retten: )
  52. CS:0140 2E8C1E2201     MOV    CS:[0122],DS
  53. CS:0145 2EA31001       MOV    CS:[0110],AX
  54. CS:0149 8CC8           MOV    AX,CS
  55. CS:014B 8ED8           MOV    DS,AX
  56. CS:014D FA             CLI
  57. CS:014E 8C162601       MOV    [0126],SS
  58. CS:0152 89261801       MOV    [0118],SP
  59. CS:0156 8C062401       MOV    [0124],ES
  60. CS:015A 891E1601       MOV    [0116],BX
  61. CS:015E 5B             POP    BX
  62. CS:015F 58             POP    AX
  63. CS:0160 50             PUSH   AX
  64. CS:0161 53             PUSH   BX
  65. CS:0162 A32001         MOV    [0120],AX
  66. CS:0165 890E1201       MOV    [0112],CX
  67. CS:0169 89161401       MOV    [0114],DX
  68. CS:016D 892E1A01       MOV    [011A],BP
  69. CS:0171 89361C01       MOV    [011C],SI
  70. CS:0175 893E1E01       MOV    [011E],DI
  71. CS:0179 9C             PUSHF
  72. CS:017A 58             POP    AX
  73. CS:017B A32801         MOV    [0128],AX
  74. CS:017E FB             STI
  75.  
  76. ( INT0 retten: )
  77. CS:017F B80035         MOV    AX,3500
  78. CS:0182 CD21           INT    21
  79. CS:0184 891E3001       MOV    [0130],BX
  80. CS:0188 8C063201       MOV    [0132],ES
  81.  
  82. ( Video-Mode retten: )
  83. CS:018C B40F           MOV    AH,0F
  84. CS:018E CD10           INT    10
  85. CS:0190 2EA23401       MOV    CS:[0134],AL
  86. CS:0194 FA             CLI
  87.  
  88. ( Registermaschine bauen: )
  89. CS:0195 8CC8           MOV    AX,CS
  90. CS:0197 8ED8           MOV    DS,AX
  91. CS:0199 8ED0           MOV    SS,AX
  92. CS:019B 31DB           XOR    BX,BX
  93. CS:019D FC             CLD
  94. CS:019E 8B260401       MOV    SP,[0104]
  95. CS:01A2 8B360601       MOV    SI,[0106]
  96. CS:01A6 FB             STI
  97.  
  98. ( MAIN aufrufen: )
  99. CS:01A7 8B3E0201       MOV    DI,[0102]
  100. CS:01AB FFD7           CALL   DI
  101.  
  102. ( Video-Mode restaurieren: )
  103. CS:01AD A03401         MOV    AL,[0134]
  104. CS:01B0 B400           MOV    AH,00
  105. CS:01B2 CD10           INT    10
  106.  
  107. ( INT0 restaurieren: )
  108. CS:01B4 B80025         MOV    AX,2500
  109. CS:01B7 8B1E3001       MOV    BX,[0130]
  110. CS:01BB 8E063201       MOV    ES,[0132]
  111. CS:01BF CD21           INT    21
  112.  
  113. ( An DOS zurückgeben: )
  114. CS:01C1 B44C           MOV    AH,4C
  115. CS:01C3 A03501         MOV    AL,[0135]
  116. CS:01C6 CD21           INT    21
  117.