That's very nice actually, because I'm making a automatic detection of the presence of the F4 register.
You can test it for me
No problem
Thanks!
What do you get if you type this after powering on the 8250?
?INP(&HF4). Because there are normal and inverted implementations of the f4 register apparently...
255.
It seems you need the regular rom, not the inverted f4 version (see below)
Personally I replaced F4-port with RETURN-key. -> If return is not pressed the logo is displayed and if return is pressed, then the logo is skipped. This kind of works since many times when you execute some command to perform soft reset, you apply the command with RETURN-key anyway...
Nice idea, I took the liberty to steal this feature as well.
So the new features in these roms are the f4 detection and if it is not found the f4 emulation with the RETURN key.
https://msx.vanderhoeven.org/systemroms/nms8245_2p.zip
https://msx.vanderhoeven.org/systemroms/nms8250_2p.zip
Also included are version for an inverted f4 port. Just to be clear (hopefully :) ), in the 8245 version the inverted rom replaces the normal rom, not the extra rom.
Yes, will check this out Philip, many thanks!
** edited message, not needed to quote you again. **
Have finally get new EPROMS 27Cxxx's to burn the system software. So I think this would be in a few days. I keep you informed.
Nice idea, I took the liberty to steal this feature as well.
So the new features in these roms are the f4 detection and if it is not found the f4 emulation with the RETURN key.
https://msx.vanderhoeven.org/systemroms/nms8250_2p.zip
Also included are version for an inverted f4 port. Just to be clear (hopefully :) ), in the 8245 version the inverted rom replaces the normal rom, not the extra rom.
Hey Philip, just testing right now. I have burn the NMS 8250 EPROMS. I have tested the normal version, the inverted version not yet. But It is working. I have desolder the F4 latch IC's from the motherboard (74LS173 & 74LS02) and the 8250 is booting with 2+ logo. In basic I have also used the command: ?INP(&HF4) and also a return with 255.
If I type: DEF USR=0 (and then) A=USR(0), a cold boot appears. Normally with the orginal F4 latch and the ROMS I used before I get a warm boot without MSX boot logo. But I have understand this "warm" boot is not important and not many programs use this warm boot, right? Can you or someone else confirm this? Thnx!
So, because it is working I guess the version with inverted F4 is not needed to test? Can you also confirm this? :)
Oh yes, another question @Philip, it is about the diskROM, I see other behaviour. The led of the diskdrive flashes twice, and the third time to read a disk. What version of diskROM is this? Is it an edited version? Or is it the 1.8 Philips fast diskROM? Can you tell more about this version? Normally the led of the drive flashes once, and then for the second time to read the disk.
I have also a question about the c-sync signal, but I have read here there is a solution for the NMS8245 with the V9958. Because on a new LCD scart monitor the screen is not stable. On CRT it is stable as rock. I have experimented with an LM1881N c-sync IC but it is not an solution.
I guess it is something with the +5Volt powerline from the powersupply in the 8245. So I do some more research, and will test it soon with an 7805 with directly powerlines to the V9958 with some 100nF capacitors on the 7805. It is like the schematic of Hans Oranje for the 8280, also with a seperate powerline to the V9958 with an 7805.
And of course if it is not the solution, I will test it with the resistor and parallel an capacitor on pin 6 (csync output on the V9958), because I have read more people here got this problem. The c-sync signal is not clear. But this must be have a reason. So I think this is because the power supply in the 8245 is not clean enough. And yes, I have already replaced the capacitors in the power supply and tested it on low ESR. Maybe you or someone else who is reading here have an opinion about this. Let me know.
Hey Philip, just testing right now. I have burn the NMS 8250 EPROMS. I have tested the normal version, the inverted version not yet. But It is working. I have desolder the F4 latch IC's from the motherboard (74LS173 & 74LS02) and the 8250 is booting with 2+ logo. In basic I have also used the command: ?INP(&HF4) and also a return with 255.
If I type: DEF USR=0 (and then) A=USR(0), a cold boot appears. Normally with the orginal F4 latch and the ROMS I used before I get a warm boot without MSX boot logo. But I have understand this "warm" boot is not important and not many programs use this warm boot, right? Can you or someone else confirm this? Thnx!
So, because it is working I guess the version with inverted F4 is not needed to test? Can you also confirm this?
Thanks for testing! Good to hear it actually works
The warm boot is not used a lot indeed. Synth Saurus 2 is one of them. But it should still work with the return-f4-emulation.
There is no point in testing the inverted F4 version as the only difference is that it inverses the F4 bit before writing and after reading it.
Oh yes, another question @Philip, it is about the diskROM, I see other behaviour. The led of the diskdrive flashes twice, and the third time to read a disk. What version of diskROM is this? Is it an edited version? Or is it the 1.8 Philips fast diskROM? Can you tell more about this version? Normally the led of the drive flashes once, and then for the second time to read the disk.
The diskrom is indeed the 1.8 Philips fast diskrom. It is not altered. Can you test the new roms with your old diskrom?
I have also a question about the c-sync signal, but I have read here there is a solution for the NMS8245 with the V9958. Because on a new LCD scart monitor the screen is not stable. On CRT it is stable as rock. I have experimented with an LM1881N c-sync IC but it is not an solution.
I guess it is something with the +5Volt powerline from the powersupply in the 8245. So I do some more research, and will test it soon with an 7805 with directly powerlines to the V9958 with some 100nF capacitors on the 7805. It is like the schematic of Hans Oranje for the 8280, also with a seperate powerline to the V9958 with an 7805.
And of course if it is not the solution, I will test it with the resistor and parallel an capacitor on pin 6 (csync output on the V9958), because I have read more people here got this problem. The c-sync signal is not clear. But this must be have a reason. So I think this is because the power supply in the 8245 is not clean enough. And yes, I have already replaced the capacitors in the power supply and tested it on low ESR. Maybe you or someone else who is reading here have an opinion about this. Let me know.
On my 8250 converted to 2+ (but it was the same before converting it) the screen is slightly wobbly. I thought I fixed this by replacing all of the capacitors. But then I found it only wobbles when there is a monitor on top of it. It doesn't matter if it a crt of a lcd.
The screen on my 8245 is rock solid on both crt and lcd. The only thing is the diskdrive that disturbs the screen. So I fixed that by replacing it with a gotek
Philip or NYYRIKKI, If someone of you are reading this: Could you explain how to patch the msxnewbios sources to skip a slot with a keypress?
Seems that I've missed quite a few posts here...
Nice idea, I took the liberty to steal this feature as well.
So the new features in these roms are the f4 detection and if it is not found the f4 emulation with the RETURN key.
Ok... In this case I'll give you another tip as well...
During early boot MSX checks that the upper 32KB of RAM does not have bit errors and there is indeed 32KB (and not ie. 8KB or 16KB) ... It actually does this two times!... As all MSX2+ machines have minimum of 64KB of memory this is utterly useless check. Even if you have failed RAM-chips in your machine, I've newer heard that this would have actually saved the day for anyone.... Only thing it can do is to move BASIC programs storage area up from #8000 and this way reduce RAM in use and probably only make the real problem even more hard to pin point.
Personally I changed it so that it checks only every 256th byte, but I see no reason why the check could not be removed completely if you want... This will save few seconds of boot time and will make the RETURN-check much more seamless (as you don't need to hold it down while MSX is doing these checks)
Philip or NYYRIKKI, If someone of you are reading this: Could you explain how to patch the msxnewbios sources to skip a slot with a keypress?
Yeah, well that is actually a bit difficult as the boot process is quite complex and you really don't want to break or make incompatible any part of that.
Personally I used keys "1" and "2" and did it by patching ROM like this:
#7DA1: #EF
#7FEF: #CD,#8C,#01
#018C: #79,#E6,#03,#C8,#FE,#03,#C8,#C5,#87,#47,#AF,#CD,#EC,#0B,#F3,#A0,#C1,#C0,#C1,#C9
... would be nice to know how Philip solved this?
Thanks for your help,
Personally I changed it so that it checks only every 256th byte,
Could you tell me what BIOS function needs to be modded to achieve this? (name of the function or where is located?)
Personally I used keys "1" and "2" and did it by patching ROM like this:
Key "1" would conflict with Nextor, so I'd need to use other keys.
But I don't understand how your code works
; original from source J7D87: CALL C7E1A PUSH HL LD HL,04241H RST DCOMPR ;Compares HL with DE - Z-flag set if HL and DE are equal. C-flag set if HL is less than DE. POP HL ; expansion ROM ? LD B,0 JR NZ,J7DBE ; nope, next slot ; j7da0: CALL NZ,C7FFx ; if extension ROM has INIT, call INIT after VR ; C7FFx: IN A,(VDP_PORT+1) ; C7FF5 for MSX2 or C7FF2 for MSX2+ RLCA JR NC,C7FFx ; wait for VR JP CALSLT
; NYYRIKKI's code disassembly 7da0 ef call 7fef ; 7fef cd8c01 call 018ch ; ; 018c ; 018c 79 ld a,c e603 and 03h c8 ret z fe03 cp 03h c8 ret z c5 push bc 87 add a,a 47 ld b,a af xor a cdec0b call 0bech ;Subroutine SNSMAT Returns the value of the specified line from the keyboard matrix f3 di a0 and b c1 pop bc c0 ret nz c1 pop bc c9 ret
and Philip's code is also different but I don't understand where it does the magic:
Philip's code is a bit different than source after 7d8a 7d87 cd1a7e call 7e1ah 7d8a f7 rst 30h 7d8b 83 add a,e ;slot 3-0 7d8c 0e3f ld c,3fh ;address 03f 7d8e 00 nop 7d8f 00 nop 7d90 0600 ld b,00h ; 7da0 c4f27f call nz,7ff2h ; ;From here onwards is slot 3-0. Code is same as source 0e3f cd790f call 0f79h ;code at 0f79 is same as source 0e42 e1 pop hl 0e43 c9 ret