I have carried out the following patches on the original PCjr BIOS to bypass various errors up to this point:
PCJR BIOS FAILS HERE (IN THIS CASE IT IS NORMAL BECAUSE WE ARE MODIFYING THE BIOS)
Code: Select all
F000:0134 ;----------------------------------------------------
F000:0134 ; test 4
F000:0134 ; planar board ros checksum test
F000:0134 ; description
F000:0134 ; a checksum test is done for each ros
F000:0134 ; module on the planar board to.
F000:0134 ; mfg error code =0003h module at address
F000:0134 ; f000:0000 error
F000:0134 ; 0004h module at address
F000:0134 ; f800:0000 error
F000:0134 ;----------------------------------------------------
F000:0134 mov al, 0FCh ; 'ü'
F000:0136 out 10h, al ; mfg out = fc
F000:0138 ; check module at f000:0 (lenght 32k)
F000:0138 xor si, si
F000:013A mov ax, cs
F000:013C mov ss, ax
F000:013E mov ds, ax
F000:0140 mov cx, 8000h
F000:0143 mov sp, 1Bh
F000:0146 jmp ros_checksum
F000:0146 ; END OF FUNCTION CHUNK FOR kb_int
F000:0149 l12: ; DATA XREF: F000:z1o
F000:0149 jz short l13
F000:014B mov bx, 3
F000:014E jmp e_msg
F000:0151 l13: ; CODE XREF: F000:l12j
F000:0151 mov cx, 8000h
F000:0154 jmp ros_checksum
F000:0157 l14: ; DATA XREF: F000:001Do
F000:0157 jz short l15
F000:0159 mov bx, 4 ; indicate error
F000:015C jmp e_msg
Code: Select all
F000:034F in al, 61h
F000:0351 or al, 1
F000:0353 out 61h, al
F000:0355 mov cx, 0Ah
F000:0358 ck2_lo: ; CODE XREF: F000:ck2_loj
F000:0358 loop ck2_lo
F000:035A in al, 62h
F000:035C and al, 20h
F000:035E jnz short pod_13_end
F000:0360 mov bl, 6
F000:0362 timer_error: ; CODE XREF: F000:02BFj
F000:0362 ; F000:02CFj F000:02EBj
F000:0362 ; F000:031Aj F000:0334j
F000:0362 ; F000:034Dj
F000:0362 mov bh, 8 ; timer error indicator
F000:0364 call e_msg
F000:0367 jmp short pod_13_end
Code: Select all
F000:04A3 mov bh, 9 ; set msb of error code
F000:04A5 jmp e_msg
Code: Select all
F000:08C9 jz short f15a_0 ; continue if no error
F000:08CB mov dl, 2
F000:08CD call err_beep
F000:08D0 err_wait: ; CODE XREF: F000:08D7j
F000:08D0 mov ah, 0
F000:08D2 int 16h ; KEYBOARD - READ CHAR FROM BUFFER, WAIT IF EMPTY
F000:08D2 ; Return: AH = scan code, AL = character
F000:08D4 cmp ah, 1Ch
F000:08D7 jnz short err_wait
F000:08D9 jmp short f15c
The complete list of the disassembled PCjr BIOS can be found here:
https://github.com/ricardoquesada/bios- ... r-bios.lst
It would be interesting to run this BIOS to enjoy various PC booters games in Tandy video mode, which are only displayed on this particular model of PC, and not in Tandy 1000:
http://nerdlypleasures.blogspot.com/202 ... usive.html