SofaSet 1.0 released

SofaSet 1.0 released

by ro on 02-01-2017, 09:05
Topic: Software
Tags: BIOS
Languages:

MRC user Louthrax has been working hard during the Christmas holidays to finish a new tool called SofaSet. It allows you to control and preview everything in your MSX ClockChip using a user-interface.

Setting date, time, screen, beep etc with BASIC commands is something all MSX users are familiar with. Now, with SofaSet this gets even easier. Select the parameter with joystick or keyboard, adjust it and then preview your new settings. The tool is still in development, the "password" settings is still missing for example.

You can download the SS.COM file here.
A demo video is available on youTube.

Comments (14)

By NYYRIKKI

Enlighted (4471)

NYYRIKKI's picture

02-01-2017, 12:58

Here is how you generate password hash in BASIC or XBASIC...

MSX-BASIC: ?USR(PW$)
X-BASIC: ?USR(VARPTR(PW$))

	DEFB #FE
	DEFW BEGIN
	DEFW END
	DEFW START

	ORG #C000

USR0:	EQU #F39A
USR:	EQU #F7F8
VALTYP:	EQU #F663

BEGIN:
START:
	LD HL,CODE
	LD (USR0),HL
	RET

CODE:
	LD	A,(VALTYP)
	CP	2
	LD	HL,(USR)
	LD	A,(HL)
	INC	HL
	JR	Z,XBASIC	; USR(VARPTR(X$)) in XBASIC
	LD	E,(HL)	; USR(X$) in BASIC
	INC	HL
	LD	D,(HL)
	EX	DE,HL
XBASIC:
	CALL	HASH
	LD	A,2
	LD	(VALTYP),A
	LD	(USR),DE
	RET

HASH:
	LD	DE,0000H
	LD	C,A
	OR	A
	RET	Z
	SCF
X2E08H:	PUSH	AF
X2E09H:	LD	B,08H
X2E0BH:	POP	AF
	PUSH	AF
	JR	NC,X2E11H
	RLC	(HL)
X2E11H:	RL	E
	RL	D
	JR	NC,X2E1FH
	LD	A,D
	XOR	80H
	LD	D,A
	LD	A,E
	XOR	05H
	LD	E,A
X2E1FH:	DJNZ	X2E0BH
	INC	HL
	DEC	C
	JR	NZ,X2E09H
	POP	AF
	RET	NC
	OR	A
	LD	C,02H
	JR	X2E08H

END:

By Louthrax

Paragon (1190)

Louthrax's picture

02-01-2017, 13:48

So that's the thing I planned to investigate these days... will just make a copy paste then, thanks Nyyrikki :-) !
Of course the password can't be displayed-back after having been set (and can also be any length up to 255 characters), need to figure how to handle that in the UI...

By Louthrax

Paragon (1190)

Louthrax's picture

02-01-2017, 14:42

I now have a question about a very obscure feature of the clockhip: the "Even/Odd" field. The "Interlacing" field works OK and is restored when you reset the MSX, but the "Even/odd" bit does not seem to have any impact on the VDP registers after reset (I checked in different screen modes).

The documentation says the 2 bits (Interlace & Even/odd) should save the last parameter of the screen command (screen ,,,,,x) which can be 0 to 3 (0:Normal, 1:Interlaced (same page), 2:Normal (Even/Odd pages), 3:Interlaced (Even/Odd pages).

Maybe this "Even/odd" bit was designed for specific applications that would check its value? I'm currently setting it to the VDP accordingly to the value in SofaSet but this does not match what you get after a reset (I should just ignore it). Quite weird !

By Louthrax

Paragon (1190)

Louthrax's picture

04-01-2017, 12:40

I investigated the meaning of this even/odd pages bit in RTC Clock: it's always set to 0 in all sub-BIOS ROMs I have seen (following is the code called by a "set screen" in BASIC):

#FCB0 is the address of the text screen mode (0 or 1).
#FFE8 is the address of VDP register 10.

There's a "and #02" after reading VDP register 10, so only the "interlace" bit is kept.

Keeping the "even/odd" pages bit could have made sense if the MSX draw instructions were supporting 512*424 screen (interlaced mode with 2 pages displayed), but this has never been the case.

I'll just remove this field from SofaSet and always set that bit to 0 (or better, keep the existing value).

By Louthrax

Paragon (1190)

Louthrax's picture

10-01-2017, 00:10

Version 1.1 has just been released on my website, along with SofaRun 2.8. An individual ZIP file for SofaSet can also be downloaded.

Changes are:

  • Password handling.
  • No more even/odd pages setting (which does not seem to be handled by MSX, see above).
  • Character selection screen:

By Philip

Master (142)

Philip's picture

10-01-2017, 15:31

Very nice, thanks !

By hamlet

Champion (442)

hamlet's picture

24-01-2017, 23:08

Great work Louthrax. Did not know the MSX had a alarm function build in. Funny!

By Bastiaan

Champion (319)

Bastiaan's picture

25-01-2017, 09:52

great work again!

But I don't see Sofarun 2.8 mentioned on your website, I only see version 2.7? The download also seems to be version 2.7 (in sr.txt)?

No I think we need wireless controllers for our MSX-es, for the complete sofa experience. :-)

By Louthrax

Paragon (1190)

Louthrax's picture

25-01-2017, 10:45

Hi Bastiaan,

I made a mistake here when mentioning the SofaRun version and typed 2.8 instead of 2.7.

There are some infra red controllers for MegaDrive that you can use on MSX with a JoyMega adapter. They work fine but I discovered they have a slight weird behavior with the diagonals directions (you can feel that in shmups if you're picky about controls). This seems to come from the infra-red transmission protocol, not from the pad itself.

By Manuel

Ascended (12911)

Manuel's picture

25-01-2017, 13:50

There are also native MSX infra-red controllers, like the one from Sony... but they seem to suck in quality for the joystick-part.

By Bastiaan

Champion (319)

Bastiaan's picture

26-01-2017, 20:12

Hi Louthrax,

thanks for your confirmation that 2.7 is the latest version!

how long could we extend the joystick/joypad cables on an MSX anyway?

By Louthrax

Paragon (1190)

Louthrax's picture

26-01-2017, 20:46

Bastiaan wrote:

how long could we extend the joystick/joypad cables on an MSX anyway?

My guess is: "as long as you can still see the screen" Smile. The joystick cables on MSX are very simple "on/off" things, no sensitive/high-frequency signal to carry. I've already tried 5m long cables with no issue.

By hamlet

Champion (442)

hamlet's picture

26-01-2017, 21:48

Manuel wrote:

There are also native MSX infra-red controllers, like the one from Sony... but they seem to suck in quality for the joystick-part.

Mmmmh, joysticks that sucks for the joystick part are like vegetable sausages or non-alcoholic beer.

By Louthrax

Paragon (1190)

Louthrax's picture

14-03-2017, 15:36

I've updated SofaSet to v1.4, adding some command-line options:

Usage: SS [options] [settings_file]

[options] can be one or more of:
  /Q: Do not display user interface
  /H: Display this help

If [settings_file] is specified,  settings are read and  written to
that file.

"SS.COM /Q" can be used  to reset screen settings according  to the
MSX ClockChip values.

The [settings_file] parameter can be useful for OCM MSX if you want to set settings after boot.
Thanks to Erik Luppes for suggesting that.

My MSX profile