…Show last 298 lines
61
62F000:D08D BD13DC MOV BP,DC13 message "internal FDC enabled"
63F000:D090 E87405 CALL D607
64
65F000:D0E8 BD29DC MOV BP,DC29 "boot drive set to external drive"
66F000:D0EB E81905 CALL D607
67
68F000:D11A BD4ADC MOV BP,DC4A "disk error"
69F000:D11D E8E704 CALL D607
70
71F000:D156 B002 MOV AL,02 this is the actual initialization start,display POST code 02
72F000:D158 E680 OUT 80,AL
73F000:D15A FC CLD
74
75F000:D1C9 B005 MOV AL,05
76F000:D1CB E680 OUT 80,AL
77F000:D1CD BE0080 MOV SI,8000
78F000:D1D0 B90080 MOV CX,8000
79F000:D1D3 32C0 XOR AL,AL
80F000:D1D5 2E CS:
81F000:D1D6 0204 ADD AL,[SI]
82F000:D1D8 46 INC SI
83F000:D1D9 E2FA LOOP D1D5 verify checksum, POST 05
84F000:D1DB 0AC0 OR AL,AL
85F000:D1DD 740E JZ D1ED
86F000:D1DF B233 MOV DL,33
87F000:D1E1 BCE7D1 MOV SP,D1E7
88F000:D1E4 E90B26 JMP F7F2
89F000:D1E7 E9D1FA JMP CCBB
90F000:D1EA F4 HLT
91F000:D1EB EBFC JMP D1E9
92F000:D1ED B006 MOV AL,06 Checksum OK
93
94F000:D1F5 33FF XOR DI,DI 0000 0000 0000 0000 (DI tracks the RTC error codes during Startup)
95F000:D27B 33FF XOR DI,DI 0000 0000 0000 0000
96
97F000:D2A7 BD40D4 MOV BP,D440 Copyright Schneider
98F000:D2AA E85A03 CALL D607
99
100F000:D2BD 813E400053FF CMP WORD PTR [0040],FF53 +++++++++++++0040 4 Interrupt Vector for INT 10h (video) ,FF53 is IRET
101F000:D2C3 751D JNZ D2E2
102F000:D2C5 813E420000F0 CMP WORD PTR [0042],F000
103F000:D2CB 7515 JNZ D2E2
104F000:D2CD 81CF1080 OR DI,8010 DI 1000 0000 0001 0000 Video Setup error!
105F000:D2D1 E84D15 CALL E821 Speaker Beep code?
106F000:D2D4 C706400065F0 MOV WORD PTR [0040],F065 +++++++++++++0040 4 Interrupt Vector for INT 10h (video)
107
108F000:D2DF E8E319 CALL ECC5 set screen mode
109F000:D2E2 BD40D4 MOV BP,D440 Copyright 1988-1989 Schneider
110F000:D2E5 E81F03 CALL D607
111
112F000:D2EC E8F0BF CALL 92DF check DI error code
113F000:D2EF B00F MOV AL,0F
114F000:D2F1 E680 OUT 80,AL
115F000:D2F3 E8360F CALL E22C Setup CPU speed
116
117F000:D394 803E1204FF CMP BYTE PTR [0412],FF
118F000:D399 7509 JNZ D3A4
119F000:D39B BDF4DE MOV BP,DEF4
120F000:D39E E86602 CALL D607 message run setup
121F000:D3A1 E8BA02 CALL D65E wait for keypress on error
122F000:D3A4 B01C MOV AL,1C
123F000:D3A6 E680 OUT 80,AL error code 1C
124F000:D3A8 CD19 INT 19 boot the system
125F000:D3AA CD18 INT 18
126
127F000:D4E0 E82E01 CALL D611
128F000:D4E3 BD64DE MOV BP,DE64 hd Setup error
129F000:D4E6 E81E01 CALL D607
130
131
132F000:D577 B10F MOV CL,0F sub: Setup System status
133F000:D579 E8EA19 CALL EF66 result in AX
134F000:D57C 7238 JB D5B6
135F000:D57E 3C01 CMP AL,01
136F000:D580 7410 JZ D592
137F000:D582 B001 MOV AL,01
138F000:D584 E8D713 CALL E95E
139F000:D587 722D JB D5B6
140F000:D589 B234 MOV DL,34
141F000:D58B E86422 CALL F7F2
142F000:D58E 81CF0880 OR DI,8008 DI 8008 1000 0000 0000 1000
143F000:D592 E8A905 CALL DB3E
144F000:D595 721F JB D5B6
145F000:D597 E8D819 CALL EF72
146F000:D59A 721A JB D5B6
147F000:D59C 3AC3 CMP AL,BL
148F000:D59E 750B JNZ D5AB
149F000:D5A0 FEC1 INC CL
150F000:D5A2 E8CD19 CALL EF72
151F000:D5A5 720F JB D5B6
152F000:D5A7 3AC7 CMP AL,BH
153F000:D5A9 7415 JZ D5C0
154F000:D5AB B224 MOV DL,24
155F000:D5AD E84222 CALL F7F2 Speaker
156F000:D5B0 81CF0480 OR DI,8004 DI 8004 1000 0000 000 0100
157F000:D5B4 EB0A JMP D5C0
158F000:D5B6 B244 MOV DL,44
159F000:D5B8 E83722 CALL F7F2 Speaker
160F000:D5BB 83CF01 OR DI,+01 DI 01 0000 0000 0000 0001 RTC error!
161F000:D5BE EB0D JMP D5CD
162F000:D5C0 E83502 CALL D7F8
163F000:D5C3 7308 JNB D5CD
164F000:D5C5 B214 MOV DL,14
165F000:D5C7 E82822 CALL F7F2
166F000:D5CA 83CF02 OR DI,+02 0000 0000 0000 00010
167F000:D5CD C3 RET
168
169
170F000:E22C Sub: Setup speed
171
172E8350B call ef66 get CPU Speed / RTC
173F000:jb e239
174
175F000:E233 24C0 AND AL,C0
176F000:E235 3CC0 CMP AL,C0
177F000:E237 750D JNZ E246
178F000:E239 B202 MOV DL,02
179F000:E23B E8B415 CALL F7F2
180F000:E23E BD9ADE MOV BP,DE9A Speed Setup error
181F000:E241 E8C3F3 CALL D607
182F000:E244 32C0 XOR AL,AL
183F000:E246 BA5502 MOV DX,0255
184F000:E249 0236B604 ADD DH,[04B6]
185F000:E24D EE OUT DX,AL
186F000:E24E 32E4 XOR AH,AH
187F000:E250 8BD8 MOV BX,AX
188F000:E252 0C11 OR AL,11
189F000:E254 E663 OUT 63,AL
190F000:E256 B103 MOV CL,03
191F000:E258 D2C3 ROL BL,CL
192F000:E25A 9A030000C0 MOV BP, DF3B "CPU Speed is "
193F000:E25F 90 CALL D5F7
194F000:E260 2E CS:
195F000:E261 8BAFAEDF MOV BP,[BX+DFAE]
196F000:E265 E88FF3 CALL D5F7
197F000:E268 BDD5DC MOV BP,DCD5 "MHZ"
198F000:E26B E899F3 CALL D607
199F000:E26E C3 RET
200
201F000:E05B CLI BIOS start
202F000:E05C B011 MOV AL,11
203F000:E05E E663 OUT 63,AL
204F000:E060 32C0 XOR AL,AL
205F000:E062 E680 OUT 80,AL POST code 00
206F000:E064 33C0 XOR AX,AX
207F000:E066 8ED8 MOV DS,AX
208F000:E068 8B2E7204 MOV BP,[0472] set to 1234h after initial power up telling a warm boot to skip mem check
209F000:E06C BB00D0 MOV BX,D000
210F000:E06F 8EC3 MOV ES,BX
211F000:E071 33FF XOR DI,DI
212F000:E073 BE54D4 MOV SI,D454
213F000:E076 B91100 MOV CX,0011
214F000:E079 F3 REPZ
215F000:E07A 2E CS:
216F000:E07B A6 CMPSB
217F000:E07C E303 JCXZ E081
218F000:E07E E9D5F0 JMP D156 continue with init of this BIOS at D156
219F000:E081 B001 MOV AL,01
220F000:E083 E680 OUT 80,AL error code 01 on port 80
221F000:E085 BE9EE9 MOV SI,E99E
222F000:E088 BF56D1 MOV DI,D156
223F000:E08B BB58F8 MOV BX,F858
224F000:E08E EA1B0000D0 JMP D000:001B seems to check for an optional ROM at D000 segment and if detected jumps to D000:001B
225
226F000:E646 81C70004 ADD DI,0400 0100 0000 0000 DI error code
227
228F000:E721 BD76DB MOV BP,DB76 "boot error"
229F000:E724 E8E0EE CALL D607
230
231F000:E804 BD57DF MOV BP,DF57 8087
232F000:E807 E8FDED CALL D607
233
234Sub: write RTC data (CL)
235F000:E952 1E PUSH DS RTC write, value in cl
236F000:E953 E84815 CALL FE9E
237F000:E956 BA5A02 MOV DX,025A
238F000:E959 0236B604 ADD DH,[04B6]
239F000:E95D 1F POP DS
240F000:E95E 53 PUSH BX
241F000:E95F 8AE0 MOV AH,AL
242F000:E961 EC IN AL,DX
243F000:E962 BB280D MOV BX,0D28
244F000:E965 4B DEC BX
245F000:E966 F9 STC
246F000:E967 741C JZ E985
247F000:E969 EC IN AL,DX
248F000:E96A 240F AND AL,0F
249F000:E96C 75F7 JNZ E965
250F000:E96E 8AC1 MOV AL,CL
251F000:E970 90 NOP
252F000:E971 EE OUT DX,AL
253F000:E972 8AC4 MOV AL,AH
254F000:E974 D0E8 SHR AL,1
255F000:E976 D0E8 SHR AL,1
256F000:E978 D0E8 SHR AL,1
257F000:E97A D0E8 SHR AL,1
258F000:E97C EE OUT DX,AL
259F000:E97D 8AC4 MOV AL,AH
260F000:E97F 90 NOP
261F000:E980 90 NOP
262F000:E981 90 NOP
263F000:E982 90 NOP
264F000:E983 EE OUT DX,AL
265F000:E984 F8 CLC
266F000:E985 5B POP BX
267F000:E986 C3 RET
268
269F000:ECC5 sub: Video Setup
270looks atequipment list word at 0000:0410h
271........ ..XX.... Initial video mode
272 01 - 40 column color
273 10 - 80 column color
274 11 - monochrome
275 00 - none of the Above
276F000:ECD2 8A1E1004 MOV BL,[0410]
277F000:ECD6 C606100430 MOV BYTE PTR [0410],30 Video monochrome!
278F000:ECDB CD10 INT 10 AL=00h Textmodus, 40 x 25 Zeichen, 16 Graustufen
279F000:ECDD B800B0 MOV AX,B000 check MDA RAM
280…
281F000:ED05 C606100420 MOV BYTE PTR [0410],20 10 - 80 column color
282F000:ED0A 33C0 XOR AX,AX
283F000:ED0C CD10 INT 10 AL=00h Textmodus, 40 x 25 Zeichen, 16 Graustufen
284F000:ED0E B800B8 MOV AX,B800 ********Check CGA RAM******
285…
286F000:ED39 E82A02 CALL EF66 read RTC
287F000:ED3C 7308 JNB ED46
288F000:ED3E 83CF01 OR DI,+01 DI 01 0000 0000 0000 0001 RTC error
289F000:ED41 E8DDFA CALL E821 Speaker?
290...
291F000:ED67 81CF1080 OR DI,8010 DI8010 1000 0000 0001 0000 Video Setup error!
292…
293F000:ED73 E8F001 CALL EF66 RTC lesen
294F000:ED76 7215 JB ED8D
295F000:ED78 F7C70C00 TEST DI,000C DI 0000 0000 0000 1100 Setup checksum/RTC Status correted
296…
297F000:ED97 83CF40 OR DI,+40 DI 40 0000 0000 0100 0000
298…
299F000:EDC2 81CF1080 OR DI,8010 DI 8010 1000 0000 0001 0000 Video Setup error
300..
301F000:EDCA 81CF1080 OR DI,8010 1000 0000 0001 0000 Video Setup error
302…
303F000:EE8E B90020 MOV CX,2000
304F000:EE91 BAD803 MOV DX,03D8 use CGA
305F000:EE94 BB00B8 MOV BX,B800
306F000:EE97 32C0 XOR AL,AL
307F000:EE99 80FC30 CMP AH,30
308F000:EE9C 750B JNZ EEA9
309F000:EE9E B90008 MOV CX,0800 AH=30
310F000:EEA1 BAB803 MOV DX,03B8 use MDA
311F000:EEA4 BB00B0 MOV BX,B000
312…
313F000:EED3 83CF20 OR DI,+20 0000 0000 0010 0000
314F000:EED6 E848F9 CALL E821 Speaker
315…
316F000:EEEA 83CF20 OR DI,+20 0000 0000 0010 0000
317F000:EEED E831F9 CALL E821 Speaker?
318...
319F000:EF44 C3 RET
320
321Sub: Read RTC, input Byte in CL
322F000:EF66 1E PUSH DS
323F000:EF67 E8340F CALL FE9E
324F000:EF6A BA5A02 MOV DX,025A
325F000:EF6D 0236B604 ADD DH,[04B6] add Offset to port?
326F000:EF71 1F POP DS
327F000:EF72 53 PUSH BX
328F000:EF73 EC IN AL,DX
329F000:EF74 BB280D MOV BX,0D28
330F000:EF77 4B DEC BX
331F000:EF78 F9 STC
332F000:EF79 741D JZ EF98
333F000:EF7B EC IN AL,DX
334F000:EF7C 240F AND AL,0F
335F000:EF7E 75F7 JNZ EF77
336F000:EF80 8AC1 MOV AL,CL
337F000:EF82 90 NOP
338F000:EF83 EE OUT DX,AL
339F000:EF84 90 NOP
340F000:EF85 90 NOP
341F000:EF86 90 NOP
342F000:EF87 90 NOP
343F000:EF88 EC IN AL,DX
344F000:EF89 8AE0 MOV AH,AL
345F000:EF8B D0E4 SHL AH,1
346F000:EF8D D0E4 SHL AH,1
347F000:EF8F D0E4 SHL AH,1
348F000:EF91 D0E4 SHL AH,1
349F000:EF93 EC IN AL,DX
350F000:EF94 240F AND AL,0F
351F000:EF96 0AC4 OR AL,AH
352F000:EF98 5B POP BX
353F000:EF99 C3 RET Carry = error, result in AL
354
355F000:F086 83E730 AND DI,+30 0000 0000 0011 0000
356
357
358F000:FFF0 EA5BE000F0 JMP F000:E05B BIOS init