nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 19 Mar 2024 03:15



Reply to topic  [ 55 posts ]  Go to page 1, 2, 3, 4  Next
[ZX] SE Basic IV 4.0 Anya 
Author Message
Fanat
User avatar

Joined: 29 Jan 2013 13:43
Posts: 52
Location: 86.182.165.70
Reply with quote
Hi,

First off, apologies for posting in English. I never learned conversational Russian despite sailing around the Baltic on a replica of Peter the Great's first frigate.

I was going over the download stats for OpenSE BASIC today and it seems that the majority of downloads originated from Russia. So I figured I should let people know that there is a new version, targeted at the Chloe 280SE reference machine (mostly emulated in FUSE and EightyOne as the ZX Spectrum SE). I was going to sign up to zx.pk.ru, but apparently registrations are not allowed any more, so here I am.

SE Basic IV is a 32K ROM and includes a hi-res 80x24 text mode. It uses a Spectrum SE-only mode: 512x192 mode in the 128 shadow video bank. This makes it possible to load a 1K font definition immediately after the ROM to provide code page support. So by way of thanks to all my Cyrillic using users, today I added Windows-1251 code page support. It looks like this:

Image

More details about the project here:
http://cheveron.github.com/sebasic4/

I'm happy to answer any questions.


29 Jan 2013 14:00
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Post 
Thanks! I will move you topic to English section, but link will stay here, ok?

Spectrum SE is this, right?

P.S. Will it work on unmodified ZX-Spectrum 48K?

P.P.S. GPLv2 is good, but it's not so good that it has some parts taken from proprietary software...
Quote:
- Based on the ZX81 ROM by John Grant & Steve Vickers, who wrote the Spectrum ROM
- Incorporates elements of SAM BASIC by Andy Wright, creator of BETA BASIC

May be I missed something and ZX81 and SAM became open source officially?...

_________________
:dj: https://mastodon.social/@Shaos


Last edited by Shaos on 29 Jan 2013 19:16, edited 2 times in total.



29 Jan 2013 15:58
Profile WWW
Fanat
User avatar

Joined: 29 Jan 2013 13:43
Posts: 52
Location: 86.182.165.70
Reply with quote
Post 
Shaos wrote:
Thanks! I will move you topic to English section, but link will stay here, ok?


Good idea.

Quote:
Spectrum SE is this, right?


Yes. The Chloe 280SE is basically a ZX Spectrum SE with ULAplus, but the only way to emulate that at the moment is with an old patched version of FUSE.

Quote:
P.S. Will it work on unmodified ZX-Spectrum 48K?


ROM1 works as an independent 16K ROM and will work on any ZX Spectrum compatible. However, ROM0 which provides the 80 column routines requires the Spectrum SE hardware. You can still use 8-bit fonts with the normal ROM but you'd need to reserve 1792 bytes for the font definition and change the CHARS system variable. You can simply add the code page binary to the Chloe font binary to generate the required font file.


29 Jan 2013 17:03
Profile
Fanat
User avatar

Joined: 29 Jan 2013 13:43
Posts: 52
Location: 86.182.165.70
Reply with quote
Post 
Shaos wrote:
P.P.S. GPLv2 is good, but it's not so good that it has some parts taken from proprietary software...
Quote:
- Based on the ZX81 ROM by John Grant & Steve Vickers, who wrote the Spectrum ROM
- Incorporates elements of SAM BASIC by Andy Wright, creator of BETA BASIC

May be I missed something and ZX81 and SAM became open source officially?...


Before creating OpenSE Basic, I asked for and received permission to distribute the ZX81 ROM and SAM BASIC under GPLv2 from John Grant and Andy Wright who are the copyright holders. OpenSE Basic is essentially the ZX81 ROM with all the non-Amstrad code from SE Basic II, and the gaps filled with code from SAM Basic where possible, and legal machine reverse engineering where not. There were a lot of people who just wanted a compatible ROM and weren't interested in all the new features in OpenSE Basic, so I decided to fork the project and create a 32K ROM specifically for the Chloe 280SE reference hardware. This leaves the maintainers of OpenSE BASIC free to rip out all the new functionality and make a more compatible ROM if they so desire. Those who want the new functionality in SE Basic IV but don't have a Spectrum SE can still use ROM1 in existing hardware.


30 Jan 2013 05:22
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Post 
Great! :)

_________________
:dj: https://mastodon.social/@Shaos


30 Jan 2013 13:10
Profile WWW
Fanat
User avatar

Joined: 29 Jan 2013 13:43
Posts: 52
Location: 86.182.165.70
Reply with quote
Post 
In case anyone is interested I've started work on the next major version. Lots of stuff on the way but I've freed up enough room to consider feature requests.


25 Feb 2013 10:20
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Post 
Forgot to ask: is this ROM compatible with old ZX software?
Do you support most popular entry points in ZX ROM or TR-DOS?
Or it is totally independent ROM that may work only with its own BASIC programs?
Thanks!

P.S. Where can I read more about your extended video modes?

_________________
:dj: https://mastodon.social/@Shaos


21 May 2013 16:15
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Post 
Shaos wrote:
P.S. Where can I read more about your extended video modes?


Nevermind - I just found it here:

http://www.zxshed.co.uk/sinclairfaq/ind ... pectrum_SE

Quote:
Port 0xff is also used to enable/disable the timer interrupt and select which bank of memory should be used by the horizontal MMU. The byte to output will be interpreted thus:

D0-2: Screen mode. 000=screen 0, 001=screen 1, 010= hi-colour, 110=hi-res
D3-5: Sets the screen colour in hi-res mode.
000 - Black on white. 100 - Green on magenta.
001 - Blue on yellow. 101 - Cyan on red.
010 - Red on cyan. 110 - Yellow on blue.
011 - Magenta on green. 111 - White on black.
D6: If set disables the generation of the timer interrupt.
D7: Selects which bank the horizontal MMU should use. 0=DOCK, 1=EX.

Screen 0 is the normal screen at the start of video memory. Screen 1 uses the same format but is offset by 8K.

The hi-res screen uses the data area of screen 0 and screen 1 to create a 512x192 pixel screen. Columns are taken alternately from screen 0 and screen 1. The attribute area is not used. In this mode all colours, including the BORDER, are BRIGHT, and the BORDER colour is the same as the PAPER colour.

The hi-colour screen uses the data area of screen 0 for its data and the data area of screen 1 for its attributes, giving 2 colours per 8x1 pixel block. The attribute area is in the same byte order as the data area, which means MLT files, which have the attribute area in series, must be converted to be displayed.

Bit 6 has the equivalent function of a DI machine code instruction when set or an EI instruction otherwise.

_________________
:dj: https://mastodon.social/@Shaos


21 May 2013 18:14
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Post 
Shaos wrote:
Forgot to ask: is this ROM compatible with old ZX software?
Do you support most popular entry points in ZX ROM or TR-DOS?
Or it is totally independent ROM that may work only with its own BASIC programs?
Thanks!


Open SE v3 looks compatible with some titles:

http://sourceforge.net/p/sebasic/wiki/Home/

But I can't find compatibility info about "SE Basic IV"...

P.S. Or it's TIMEX specific software?...

_________________
:dj: https://mastodon.social/@Shaos


Last edited by Shaos on 21 May 2013 21:16, edited 1 time in total.



21 May 2013 18:41
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Post 
cheveron wrote:
In case anyone is interested I've started work on the next major version. Lots of stuff on the way but I've freed up enough room to consider feature requests.


Feature request: TR-DOS entry points and its syntax support :roll:
If it's not there yet... :dj:

BTW, are you that Andrew Owen who participated in interesting conversation with me 11 years ago? :roll:
https://groups.google.com/forum/?fromgr ... r6ipw2PsYJ
and this conversation became part of any Debian/Ubuntu distribution in 2008 ;)
http://packages.debian.org/changelogs/p ... .copyright

_________________
:dj: https://mastodon.social/@Shaos


21 May 2013 18:44
Profile WWW
Fanat
User avatar

Joined: 29 Jan 2013 13:43
Posts: 52
Location: 86.182.165.70
Reply with quote
Post 
Quote:
Feature request: TR-DOS entry points and its syntax support :roll:
If it's not there yet... :dj:


As all the TR-DOS entry points that I'm aware of are in the font area they should work fine with the dual ROM system, given that both ROMs have a font in the expected area.

Quote:
BTW, are you that Andrew Owen who participated in interesting conversation with me 11 years ago? :roll:
https://groups.google.com/forum/?fromgr ... r6ipw2PsYJ
and this conversation became part of any Debian/Ubuntu distribution in 2008 ;)
http://packages.debian.org/changelogs/p ... .copyright


Yeah, I'm the guy who asks awkward questions and tries to do the right thing. That's why I'm not very popular with certain elements of the UK scene.


22 May 2013 01:55
Profile
Doomed
User avatar

Joined: 23 Nov 2007 15:53
Posts: 441
Location: Saint Petersburg, Russia
Reply with quote
Post 
cheveron wrote:
Yeah, I'm the guy who asks awkward questions and tries to do the right thing. That's why I'm not very popular with certain elements of the UK scene.

:) This is a familiar situation. :)

_________________
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". :wink:
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.


22 May 2013 07:21
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Post 
cheveron wrote:
Quote:
BTW, are you that Andrew Owen who participated in interesting conversation with me 11 years ago? :roll:
https://groups.google.com/forum/?fromgr ... r6ipw2PsYJ
and this conversation became part of any Debian/Ubuntu distribution in 2008 ;)
http://packages.debian.org/changelogs/p ... .copyright


Yeah, I'm the guy who asks awkward questions and tries to do the right thing. That's why I'm not very popular with certain elements of the UK scene.


So, nice to meet you again :)

P.S. What about compatibility with existing ZX-Spectrum 48K software? Both v3 and IV?

_________________
:dj: https://mastodon.social/@Shaos


22 May 2013 08:59
Profile WWW
Fanat
User avatar

Joined: 29 Jan 2013 13:43
Posts: 52
Location: 86.182.165.70
Reply with quote
Post 
Quote:
So, nice to meet you again :)


Always a pleasure to reacquaint oneself with old friends. :)

Quote:
What about compatibility with existing ZX-Spectrum 48K software? Both v3 and IV?


Please forgive the SE Basic history lesson, but it's relevant to the compatibility question.

I started in 1999 and worked on it on and off until about 2004 (v0.94). In 2006 I did a bit of refactoring but I didn't publicly release version one, mainly due to ad hominem attacks against me by people who should be ashamed of themselves. The main aim of this version was for extended functionality while retaining as much compatibility as possible.

Fast forward to late 2009 and I designed the ULAplus spec. I thought it would be useful to add some commands to BASIC for it. I finally released version two in 2010. The main aim of this version was to support ULAplus.

At the end of 2009 I realized that I had almost enough code to do an open source version. This would make homebrew machines legal and get the Fuse emulator into Debian main. I released it as ransomware in 2011 after raising money for the Red Cross. The main aim of this version was to provide a full GPL replacement for the ROM. This was made possible by John Grant and Andrew Wright giving me permission to use the ZX81 ROM and the SAM Coupe ROM under the terms of the GPL. This is OpenSE BASIC.

At the end of 2012 after playing around with an emulated Spectranet I realized that it would be nice to have a proper 80x24 display. I wrote some display code for the ZX Spectrum SE and forked OpenSE BASIC to create SE Basic IV. The main aim of this version is to support the Chloe 280SE reference hardware. This is the first version to deliberately sacrifice compatibility for functionality. It's still fairly compatible though. This is SE Basic IV.

Although SE Basic IV is a 32K ROM, the lower ROM works as a standalone 16K ROM. The other ROM is used exclusively for 80x24 mode on the Chloe 280SE reference hardware. As such there's really no need for OpenSE BASIC to support all the extra features, and therefore someone, although not me, could remove all that stuff and develop it further to make it more compatible.

I've got a lot of ideas for new functionality I can add to SE Basic IV and I think frankly people will be astounded by how much I've crammed into 16K. The code base is a little unwieldy at the moment though, being a single assembly file that conditionally builds both ROMs. So before I make a proper start on version 4.1 I am going to fully comment the existing source. This is going to take a while. However, 4.0 ships with Fuse 1.1 and gives everyone the opportunity to try 80x24 mode.


23 May 2013 05:43
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22383
Location: Silicon Valley
Reply with quote
Post 
Thanks! I'll try to play with this - at least in emulators

_________________
:dj: https://mastodon.social/@Shaos


23 May 2013 06:46
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 55 posts ]  Go to page 1, 2, 3, 4  Next

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.