home *** CD-ROM | disk | FTP | other *** search
- RUMPF.DOC
- Autor: Klaus Peper
-
- Der NAXOS-Compiler erstellt in jedem Fall folgenden Code
- und reserviert folgende Speicherzellen in jedem .COM-File
- (Das eigentliche Programm der Wörterbücher beginnt
- dann bei Adresse $01C8):
-
- ( START: )
- CS:0100 EB3E JMP 140
-
- ( Systemadressen, vom Compiler gesetzt: )
- 102 main
- 104 r0
- 106 s0
- 108 dp
- 10A-10F frei für System
-
- ( Registerinhalte beim Einstieg: )
- 110 inreg: AX
- 112 CX
- 114 DX
- 116 BX
- 118 SP
- 11A BP
- 11C SI
- 11E DI
- 120 CS ( der aufrufenden Prozedur )
- 122 DS
- 124 ES
- 126 SS
- 128 Flags
-
- ( Feste Speicheradressen zur Laufzeit: )
- 12A-12C frei
- 12D exno
- 12E dosflag
- 12A spsave
- 12F breakbyte
- 130 INT0-offsett
- 132 INT0-segment
- 134 videobyte
- 135 mousebyte
- 136-13C frei
-
- ( Einstieg für Debug etc: )
- CS:013D FFD7 CALL DI
- CS:013F CB RET Far
-
- ( Hauptprogramm: )
- ( Register retten: )
- CS:0140 2E8C1E2201 MOV CS:[0122],DS
- CS:0145 2EA31001 MOV CS:[0110],AX
- CS:0149 8CC8 MOV AX,CS
- CS:014B 8ED8 MOV DS,AX
- CS:014D FA CLI
- CS:014E 8C162601 MOV [0126],SS
- CS:0152 89261801 MOV [0118],SP
- CS:0156 8C062401 MOV [0124],ES
- CS:015A 891E1601 MOV [0116],BX
- CS:015E 5B POP BX
- CS:015F 58 POP AX
- CS:0160 50 PUSH AX
- CS:0161 53 PUSH BX
- CS:0162 A32001 MOV [0120],AX
- CS:0165 890E1201 MOV [0112],CX
- CS:0169 89161401 MOV [0114],DX
- CS:016D 892E1A01 MOV [011A],BP
- CS:0171 89361C01 MOV [011C],SI
- CS:0175 893E1E01 MOV [011E],DI
- CS:0179 9C PUSHF
- CS:017A 58 POP AX
- CS:017B A32801 MOV [0128],AX
- CS:017E FB STI
-
- ( INT0 retten: )
- CS:017F B80035 MOV AX,3500
- CS:0182 CD21 INT 21
- CS:0184 891E3001 MOV [0130],BX
- CS:0188 8C063201 MOV [0132],ES
-
- ( Video-Mode retten: )
- CS:018C B40F MOV AH,0F
- CS:018E CD10 INT 10
- CS:0190 2EA23401 MOV CS:[0134],AL
- CS:0194 FA CLI
-
- ( Registermaschine bauen: )
- CS:0195 8CC8 MOV AX,CS
- CS:0197 8ED8 MOV DS,AX
- CS:0199 8ED0 MOV SS,AX
- CS:019B 31DB XOR BX,BX
- CS:019D FC CLD
- CS:019E 8B260401 MOV SP,[0104]
- CS:01A2 8B360601 MOV SI,[0106]
- CS:01A6 FB STI
-
- ( MAIN aufrufen: )
- CS:01A7 8B3E0201 MOV DI,[0102]
- CS:01AB FFD7 CALL DI
-
- ( Video-Mode restaurieren: )
- CS:01AD A03401 MOV AL,[0134]
- CS:01B0 B400 MOV AH,00
- CS:01B2 CD10 INT 10
-
- ( INT0 restaurieren: )
- CS:01B4 B80025 MOV AX,2500
- CS:01B7 8B1E3001 MOV BX,[0130]
- CS:01BB 8E063201 MOV ES,[0132]
- CS:01BF CD21 INT 21
-
- ( An DOS zurückgeben: )
- CS:01C1 B44C MOV AH,4C
- CS:01C3 A03501 MOV AL,[0135]
- CS:01C6 CD21 INT 21