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