1 (edited by aowen 2014-03-26 16:05:18)

Topic: SE Basic IV compatibility

Tape support is broken when using the SE Basic IV ROMs. I'd like to fix this, but without the esxDOS source I don't know where to begin.

As there are no CAT or ERASE commands in SE Basic IV, it would be nice if esxDOS would accept untokenized CAT and ERASE in their place.

2

Re: SE Basic IV compatibility

aowen wrote:

Tape support is broken when using the SE Basic IV ROMs. I'd like to fix this, but without the esxDOS source I don't know where to begin.

As there are no CAT or ERASE commands in SE Basic IV, it would be nice if esxDOS would accept untokenized CAT and ERASE in their place.

Do you have the tape I/O routines at the exact same address as the Sinclair ROM? Where can I get this SE Basic IV ROMs?

3

Re: SE Basic IV compatibility

lordcoxis wrote:

Do you have the tape I/O routines at the exact same address as the Sinclair ROM? Where can I get this SE Basic IV ROMs?

They are close enough for tape traps to work in emulators. The SE Basic IV site with source and downloads is here:

https://github.com/cheveron/sebasic4

Although I'm currently working in the 4.0 branch (as there are unresolved bugs in the 4.1 branch) please look at v4.1. The 4.1 source is fully commented. Let me know if there are any other questions.

4

Re: SE Basic IV compatibility

Hi,

So, I gave SE Basic IV (version 4.1.0) a test and found the following:

1. Switch the order of your PUSH/POPs (HL, AF -> AF, HL) on the NMI entry point to make NMI work. The 48K ROM has a PUSH AF at $0066 and this instruction is executed before paging in the DivIDE, so esxDOS expects it.

2. The NMI auto-LOAD doesn't work because this syscall uses a big chunk of the 48K ROM init routine.

3. I tested a couple of TAPs with .tapein and they worked? This was on DivIDE (not DivMMC - but there shouldn't be any difference) and on my development version though...

5 (edited by aowen 2014-03-26 23:26:01)

Re: SE Basic IV compatibility

Ok, I've done a full set of tests with v4.1 and I can't find any problems either. So there may be problems specific to version 4.0.5. I'll backport the tape code from 4.1. to 4.0.6 and send it to McLeod_IdeaFix and see if that solves the issues he's been having. Otherwise it may be something specific to ZX-Uno's divMMC implementation.

6

Re: SE Basic IV compatibility

Ok, I've backported the tape code from 4.1 to 4.0.6. .tapein mostly works. .tapeout doesn't seem to work at all.

https://dl.dropboxusercontent.com/u/156 … sic406.zip

7

Re: SE Basic IV compatibility

aowen wrote:

Ok, I've backported the tape code from 4.1 to 4.0.6. .tapein mostly works. .tapeout doesn't seem to work at all.

https://dl.dropboxusercontent.com/u/156 … sic406.zip

Ok, tested this version and found the following:

1. ".tapein", ".tapeout", ".cd bin" don't run because it seems to me that IN, OUT and BIN are being tokenized or something. if you rename tapeout to something else it runs, but the filenames are mangled (lixo.tap was created as LIX OR TAP). Also, do you have a $0d at the end of the line?
2. Pressing BREAK on "Scroll?" message from .ls or other command crashes

8

Re: SE Basic IV compatibility

lordcoxis wrote:
aowen wrote:

Ok, I've backported the tape code from 4.1 to 4.0.6. .tapein mostly works. .tapeout doesn't seem to work at all.

https://dl.dropboxusercontent.com/u/156 … sic406.zip

Ok, tested this version and found the following:

1. ".tapein", ".tapeout", ".cd bin" don't run because it seems to me that IN, OUT and BIN are being tokenized or something. if you rename tapeout to something else it runs, but the filenames are mangled (lixo.tap was created as LIX OR TAP). Also, do you have a $0d at the end of the line?
2. Pressing BREAK on "Scroll?" message from .ls or other command crashes

Ok, well the tokenizer is different in 4.1 too. Guess I'd better backport that as well. 407 coming up soon.

9 (edited by aowen 2014-03-28 13:20:23)

Re: SE Basic IV compatibility

Ok, I've backported the tokenizer. Seems to be working OK now. I swapped the RESET and DELETE tokens so you can use DELETE * "filename" in place of ERASE * "filename". I also modified the keyboard code to enable direct entry of the tokens on characters 0 to 6. Enter CONTROL mode then SHIFT + number:

1. EDIT
2. RESET
5. RENUM
6. SOUND
7. ON ERROR
8. PALETTE

https://dl.dropboxusercontent.com/u/156 … sic407.zip

You can get around the tokenization of directories with the same name as keywords by entering the line in lowercase and then switching CAPS LOCK on before entering the line. When CAPS LOCK is on, lowercase characters are not tokenized. All edit lines are terminated with a $0D.

10

Re: SE Basic IV compatibility

You can get around the tokenization of directories with the same name as keywords by entering the line in lowercase and then switching CAPS LOCK on before entering the line. When CAPS LOCK is on, lowercase characters are not tokenized. All edit lines are terminated with a $0D.

11

Re: SE Basic IV compatibility

I'm working on a new version of SE Basic IV. This is ultimately intended for use as the firmware in the Chloe 280SE. However, it will also run on a 128K machine with a SLAM+128 ULA. Therefore, initially I am building it to work with esxDOS (the Chloe will use UnoDOS 3 instead). Because it's a ground-up project, I'm testing as I go to make sure I don't break esxDOS compatibility.

Some features:

  • 80 column screen mode.

  • Native file commands (no 'dot' commands).

  • BASIC footprint is 23K instead of 16K.

  • An extra 168 bytes available for your programs.

  • Code page support (8-bit ASCII); defalult: 437