Schrijver
| SymbOS MSX multitasking operating system - help needed!
|
Sonic_aka_T
 msx guru Berichten: 2269 | Geplaatst: 04 Juli 2006, 00:58   |
Quote:
| Every MSX has a very useful reset key, but I would like to know, what is the best way to reset a MSX, when the internal OS is complete destroyed (like in SymbOS). And is there a way to skip the logo at the beginning, so that the machine tries to boot MSX-DOS at once or starts basic? Or can I start basic directly and skip the MSX-DOS boot try?
Currently I am on the edge with the FDC shit, and I want to do some other things like replacing some Amstrad specific parts.
|
To return to DOS particularly fast you could just save the state of the MSX upon starting SymbOS. If you save the first $0100 bytes of ram, and say from $D100 upwards you can be reasonably sure that when restoring those memory areas and the stackpointer things should pretty much be as they were. For DOS2 it's a little more complex, since you'd also want to make sure you don't overwrite the data areas used by DOS2. It'd also mean that DOS2 users would have an additional 32kB penalty in order to allow for a 'quick return'. You could probably make this an option though. [x] enable fast-shutdown
To reset you'd indeed want to select slot 0-0 in 0 and do a jump to $0000. On MSX2+ computers it won't do the logo-animation the second time a software reset occurs, but on MSX2 computers it will.
In order to quickly go to BASIC you could use the same trick as you would to return to DOS, while putting BASIC+CHR$(13) in the keyboard buffer. There's also a way to directly start BASIC, but since it would also require the BIOS memory area to be intact there's really no point. If you do this with the screen disabled the user won't even notice how you did it  (BASIC will re-enable the screen once it has booted) |
|
Prodatron msx master Berichten: 1110 | Geplaatst: 04 Juli 2006, 01:17   |
Hi Toby, thanx for the hints! Well, restoring some things would require memory, so in the first step I wouldn't like to do this.
I just wonder if...
- the OS does some calls to start Basic AFTER it tried to boot MSX-DOS
- where the OS call is, which boots MSX-DOS from disc
But maybe a lot of other things are required before doing one of these two things, so it's not so trivial?
|
|
spl msx professional Berichten: 757 | Geplaatst: 04 Juli 2006, 01:18   |
Prodatron: Now I don't have any visible problem  Thanks!  |
|
Sonic_aka_T
 msx guru Berichten: 2269 | Geplaatst: 04 Juli 2006, 01:42   |
Quote:
| Hi Toby, thanx for the hints! Well, restoring some things would require memory, so in the first step I wouldn't like to do this.
I just wonder if...
- the OS does some calls to start Basic AFTER it tried to boot MSX-DOS
- where the OS call is, which boots MSX-DOS from disc
But maybe a lot of other things are required before doing one of these two things, so it's not so trivial?
|
Well, the problem isn't so much starting basic, but the fact that both DOS and BASIC require all the BIOS variables to be initialized properly. There's really no way of 'fixing' that, other than either resetting the system or saving those variables. The reason I suggested just saving the data is because 8kB isn't really going to make much of a difference. In case of DOS2 it might be possible to somehow avoid having to save the additional 32kB of data. Perhaps loading a fresh instance of command2.com could solve this issue, much like how DOS would boot in the first place. I really can't see a way around saving at least some of the system variables tho, you're prolly looking at at least 4kB of data for a proper 'save state'. The other way would be to pain-stakingly analize which BIOS variables are required and which aren't. The actual number of variables probably isn't all that high, but separating the crap from the real data is... |
|
Prodatron msx master Berichten: 1110 | Geplaatst: 04 Juli 2006, 02:17   |
Quote:
| Prodatron: Now I don't have any visible problem  Thanks! 
|
To be honest currently I have sometimes some problems with sector reading on the NMS8250: Sometimes I get corrupt data. I have to fix it, but I think I know where to look. So if sometimes after starting an application or loading a ST2 song the system crashes or if you have corrupt SGX graphics that could be the reason.
@Toby: Ok, maybe it's too much work. So first I will stay lazy and just reset the whole machine  |
|
Sonic_aka_T
 msx guru Berichten: 2269 | Geplaatst: 04 Juli 2006, 14:10   |
Quote:
| Quote:
| Prodatron: Now I don't have any visible problem  Thanks! 
|
To be honest currently I have sometimes some problems with sector reading on the NMS8250: Sometimes I get corrupt data. I have to fix it, but I think I know where to look. So if sometimes after starting an application or loading a ST2 song the system crashes or if you have corrupt SGX graphics that could be the reason.
@Toby: Ok, maybe it's too much work. So first I will stay lazy and just reset the whole machine 
|
Indeed, prolly best for now. Maybe you can implement the 'Quick Return to DOS' option on computers with more than 1MB. At least (part of) the extra memory would have some use.
To 'Quick Return to DOS' all you have to do is:
1) Activate the primary mapper to all slots, with banks 0-3 active, which is as DOS would've left it.
2) LDIR back the first $0100 (well, $80 really) bytes back to $0000
3) LDIR back the address range $D100 - FFFE ($D100 is to be safe, it can prolly a lot be higher)
4) Restore the Stack Pointer and Enable Interrupts
5) RET
To return to BASIC, you would also want to (before step 5)
4.1 Disable the SCREEN or set the color palette to (0,0,0)
4.2 Clear the keyboard buffer (BIOS call $0156)
4.3 Put $0C,"BASIC",$0D in the keyboard buffer (address in $F3FA)
Anyhoo, that should pretty much work. I remember having done something similar once, and it worked for me IIRC  |
|
Prodatron msx master Berichten: 1110 | Geplaatst: 04 Juli 2006, 23:03   |
Sounds very logical and shouldn't be too much work. I will implement it somewhere in the future. Btw, because of all your help this thread did become a great MSX knowledge database
Today my TurboR arrived!! Just great!! (btw, it seems, that its old owner didn't know about its possibilities, as it looks completely new and unused  ) I wonder what monitor/display do all of you use for your TurboR? My normal TV has some problems with the colours, does the TurboR use NTSC?
Another question: When I start MSX-DOS 1, is the R800 already active? |
|
wolf_ online
 msx legend Berichten: 4777 | Geplaatst: 04 Juli 2006, 23:08   |
<turboR>
</cpc>
^____^
|
|
Edwin online msx professional Berichten: 626 | Geplaatst: 04 Juli 2006, 23:15   |
TurboR is NTSC indeed. I have it on an RGB monitor. Did you get it with a DIN->SCART? Otherwise you should probably make one.
When starting DOS1 it will still be in Z80 mode. If you start DOS2 then it will start in R800 mode. You can manually switch it with some cpumode tool. I thing there's one in the downloads database.
|
|
Sonic_aka_T
 msx guru Berichten: 2269 | Geplaatst: 05 Juli 2006, 01:58   |
Quote:
| Another question: When I start MSX-DOS 1, is the R800 already active?
|
Just watch the LED. Although it's possible to switch the R800 on without changing the LED, the BIOS won't do this by default. Other than that; when the R800 is on, you *know* it's on!  |
|
Prodatron msx master Berichten: 1110 | Geplaatst: 05 Juli 2006, 23:43   |
Quote:
| Just watch the LED.
|
Haha, my japanese is very bad, but now I think I know what LED you mean
Quote:
| Other than that; when the R800 is on, you *know* it's on! 
|
Yes, unbelieveable!!!! This is really crazy! I think I will stay with this config now ( http://www.symbos.de/files/lcdtv-4.jpg ). |
|
Edwin online msx professional Berichten: 626 | Geplaatst: 05 Juli 2006, 23:56   |
Very cool setup  |
|
Prodatron msx master Berichten: 1110 | Geplaatst: 06 Juli 2006, 00:57   |
Quote:
| Very cool setup 
|
Yeah, TurboR with its 512KB ram + Sunrise IDE + cool, big display. The only thing which is missing is a moonsound I think.
I have to say, all this MSX stuff is really a dream for an 8bit freak  |
|
Prodatron msx master Berichten: 1110 | Geplaatst: 06 Juli 2006, 01:05   |
I figured out, that SymbOS crashes while loading special files from the Sunrise IDE. It seems, that I have the same problem like some people, which were posting here before (a long long time ago, so I don't remember exactly...).
I will try to fix this now and then start with the Toshiba FDC implementation. Both things have the highest priority, as I want my TurboR up and running completely as fast as possible now  |
|
NYYRIKKI msx master Berichten: 1525 | Geplaatst: 06 Juli 2006, 03:39   |
Do you think, you'll be able to do any fixing before weekend?
As you might already know, we are going to give short presentation on saturday about current version of SymbOS in our MSX Info Update 2006 party and sure it would be nice to run this on full speed! (It would be also nice, if SymAMP would play songs correctly on R800)
More info: msx.partys.at.endofinternet.org
|
|
|
|
|