]> wirehaze git hosting - MS-DOS.git/blob - v2.0/source/DEBMES.ASM

wirehaze git hosting

Add Turkish translation for README
[MS-DOS.git] / v2.0 / source / DEBMES.ASM
1 TITLE DEBUGger Messages
2 FALSE EQU 0
3 TRUE EQU NOT FALSE
4
5 SYSVER EQU FALSE ;if true, i/o direct to bios
6 ; so DOS can be debugged
7 IBMJAPVER EQU FALSE ; true for their special parity stuff
8
9 .xlist
10 .xcref
11 INCLUDE DOSSYM.ASM
12 .cref
13 .list
14
15 FIRSTDRV EQU "A"
16
17 CODE SEGMENT PUBLIC BYTE 'CODE'
18 CODE ENDS
19
20 CONST SEGMENT PUBLIC BYTE
21 CONST ENDS
22
23 DATA SEGMENT PUBLIC BYTE
24 EXTRN ParityFlag:BYTE
25 DATA ENDS
26
27 DG GROUP CODE,CONST,DATA
28
29
30 CODE SEGMENT PUBLIC BYTE 'CODE'
31 ASSUME CS:DG,DS:DG,ES:DG,SS:DG
32
33 EXTRN RPRBUF:NEAR,RESTART:NEAR
34 PUBLIC DRVERR, TrapParity, ReleaseParity, NMIInt, NMIIntEnd
35 TrapParity:
36 IF IBMJAPVER
37 PUSH BX
38 PUSH ES
39 PUSH DX ; save location of new offset
40 MOV DX,OFFSET DG:NMIInt ; DS:DX has new interrupt vector
41 CALL SwapInt ; diddle interrupts
42 ASSUME ES:NOTHING
43 MOV WORD PTR [NMIPtr],BX ; save old offset
44 MOV WORD PTR [NMIPtr+2],ES ; save old segment
45 POP DX ; get old regs back
46 POP ES ; restore old values
47 ASSUME ES:DG
48 POP BX
49 MOV BYTE PTR [ParityFlag],0 ; no interrupts detected yet!
50 RET
51 SwapInt:
52 PUSH AX
53 MOV AX,(Get_interrupt_vector SHL 8) + 2
54 INT 21h ; get old nmi vector
55 MOV AX,(Set_Interrupt_Vector SHL 8) + 2
56 INT 21h ; let OS set new vector
57 POP AX
58 ENDIF
59 RET
60 ReleaseParity:
61 IF IBMJAPVER
62 PUSH DX
63 PUSH DS
64 PUSH BX
65 PUSH ES
66 LDS DX,DWORD PTR [NMIPtr] ; get old vector
67 CALL SwapInt ; diddle back to original
68 POP ES
69 POP BX
70 POP DS
71 POP DX
72 MOV [ParityFlag],0 ; no interrupts possible!
73 ENDIF
74 RET
75
76 NMIInt:
77 IF IBMJAPVER
78 PUSH AX ; save AX
79 IN AL,0A0h ; get status register
80 OR AL,1 ; was there parity check?
81 POP AX ; get old AX back
82 JZ NMIChain ; no, go chain interrupt
83 OUT 0A2h,AL ; reset NMI detector
84 MOV CS:[ParityFlag],1 ; signal detection
85 IRET
86 NMIChain:
87 JMP DWORD PTR CS:[NMIPtr] ; chain the vectors
88 NMIPtr DD ? ; where old NMI gets stashed
89 ENDIF
90 NMIIntEnd:
91
92 DRVERR: MOV DX,OFFSET DG:DISK
93 OR AL,AL
94 JNZ SAVDRV
95 MOV DX,OFFSET DG:WRTPRO
96 SAVDRV:
97 PUSH CS
98 POP DS
99 PUSH CS
100 POP ES
101 ADD BYTE PTR DRVLET,FIRSTDRV
102 MOV SI,OFFSET DG:READM
103 MOV DI,OFFSET DG:ERRTYP
104 CMP BYTE PTR RDFLG,WRITE
105 JNZ MOVMES
106 MOV SI,OFFSET DG:WRITM
107 MOVMES:
108 MOVSW
109 MOVSW
110 CALL RPRBUF
111 MOV DX,OFFSET DG:DSKERR
112 JMP RESTART
113 CODEEND:
114
115 CODE ENDS
116
117
118 CONST SEGMENT PUBLIC BYTE
119
120 PUBLIC BADVER,ENDMES,CARRET,NAMBAD,NOTFND,NOROOM
121 PUBLIC NOSPACE,DRVLET
122 PUBLIC ACCMES
123 PUBLIC TOOBIG,SYNERR,ERRMES,BACMES
124 PUBLIC EXEBAD,HEXERR,EXEWRT,HEXWRT,WRTMES1,WRTMES2
125 PUBLIC EXECEMES, ParityMes
126 EXTRN RDFLG:BYTE
127
128 IF SYSVER
129 PUBLIC BADDEV,BADLSTMES
130 BADDEV DB "Bad device name",13,10,"$"
131 BADLSTMES DB "Couldn't open list device PRN",13,10
132 DB "Enter name of list device? $"
133 ENDIF
134
135 BADVER DB "Incorrect DOS version",13,10,"$"
136 ENDMES DB 13,10,"Program terminated normally"
137 CARRET DB 13,10,"$"
138 NAMBAD DB "Invalid drive specification",13,10,"$"
139 NOTFND DB "File not found",13,10,"$"
140 NOROOM DB "File creation error",13,10,"$"
141 NOSPACE DB "Insufficient space on disk",13,10,"$"
142
143
144 DISK DB "Disk$"
145 WRTPRO DB "Write protect$"
146 DSKERR DB " error "
147 ERRTYP DB "reading drive "
148 DRVLET DB "A",13,10,"$"
149 READM DB "read"
150 WRITM DB "writ"
151
152
153 TOOBIG DB "Insufficient memory",13,10,"$"
154 SYNERR DB '^'
155 ERRMES DB " Error",13,10+80H
156 BACMES DB 32,8+80H
157 EXEBAD LABEL BYTE
158 HEXERR DB "Error in EXE or HEX file",13,10,"$"
159 EXEWRT LABEL BYTE
160 HEXWRT DB "EXE and HEX files cannot be written",13,10,"$"
161 WRTMES1 DB "Writing $"
162 WRTMES2 DB " bytes",13,10,"$"
163 EXECEMES DB "EXEC failure",13,10,"$"
164 ACCMES DB "Access denied",13,10,"$"
165 ParityMes DB "Parity error or nonexistant memory error detected",13,10,"$"
166
167 CONSTEND:
168
169 CONST ENDS
170 END
171