Quantcast
Channel: stardot.org.uk
Viewing all articles
Browse latest Browse all 2528

8-bit acorn software: other • Re: Updated BASIC Editor

$
0
0
TobyLobster's ROM library (https://www.stardot.org.uk/forums/viewtopic.php?t=29831) has 5 variants of The BASIC Editor 1.32, which I went through to see if they were interesting. So, in no particular order...

Hex diffs are relative to the ROM image I've got, which I saved from an original-looking ROM. The - lines are the original ROM contents, and the + lines the new ROM contents.

Variant 1 (questionable)

Change 1:

Code:

  -00000220: a9 07 85 28 a9 13 20 f4 ff a2 69 a0 89 a9 45 20 ...(.. ...i...E  +00000220: a9 07 85 28 ea ea ea ea ea a2 69 a0 89 a9 45 20 ...(......i...E                         ^^ ^^ ^^ ^^ ^^
Removes a *FX19 when drawing the command prompt screen (https://github.com/tom-seddon/basic_edi ... d.lst#L833): I wonder if this makes a noticeable difference?

Change 2:

Code:

  -00001BB0: 98 48 8a a8 a2 00 a9 97 20 f4 ff 68 a8 a2 01 a9 .H...... ..h....  +00001BB0: 98 48 ea ea a2 16 a9 97 20 f4 ff 68 a8 a2 0a a9 .H...... ..h....                   ^^ ^^    ^^                         ^^
Fiddles about with the write_crtc routine (https://github.com/tom-seddon/basic_edi ... .lst#L5025): this change makes no sense to me! It looks like it now writes a bogus value to $FE16 and the intended CRTC register contents to $FE0A?? - I don't get it.

Change 3:

Code:

  -00003900: a2 00 ac bf 06 8c ab 06 20 01 8f a9 13 20 f4 ff ........ .... ..  +00003900: a2 00 ac bf 06 8c ab 06 20 01 8f ea ea ea ea ea ........ .......
Part of the routine that scrolls the screen down (https://github.com/tom-seddon/basic_edi ... lst#L10936): I think this *FX19 only runs once per scroll, but maybe it ends up a bottleneck? Perhaps the scrolling is slightly quicker without it, particularly in Mode 7?

Tested on b2: looks to behave itself, but the cursor never gets switched off so things do look a bit scrappy. Couldn't detect any different with the scrolling but an emulator isn't the best way to test that stuff anyway.

Variant 2 (bad)

Change 1:

Code:

  -00001F70: 48 a5 10 48 48 a5 3c f0 18 a5 10 cd 00 04 f0 02 H..HH.<.........  +00001F70: 48 a5 10 48 48 a5 3c f0 18 a5 31 cd 00 04 f0 02 H..HH.<...1.....                                           ^^
Not sure what this routine does (https://github.com/tom-seddon/basic_edi ... .lst#L5849): the change turns LDA cursor_offset into LDA unk_31, and unk_31 seems to be actually unused. So this feels very questionable.

Tested on b2: insert mode no longer works.

Variant 3 (bad)

Change 1:

Code:

  -000013F0: 3e c9 0d f0 08 99 52 00 c8 c0 0f d0 f2 4c 14 83 >.....R......L..  +000013F0: 3e c9 0d f0 08 99 52 00 c8 c0 0f d0 f2 4c 00 83 >.....R......L..                                                       ^^
A change to the end of the LOAD command (https://github.com/tom-seddon/basic_edi ... .lst#L3519): this looks unambiguously bad, as $8300 is in the middle of an instruction.

Tested on b2: nothing obviously goes wrong, but it's actually still bad, as it ends up executing an undocumented RMW instruction that increments $1791,X. It also never ends up calling the routine it intends to.

Variant 4 (original)

As per the archive, this is an exact duplicate of the original ROM image I've got.

Variant 5 (modified, good)

Change 1:

Code:

  -000000E0: 20 91 8e a2 60 86 31 a2 00 86 3c 86 62 e8 86 3d  ...`.1...<.b..=  +000000E0: 20 91 8e a2 60 86 31 a2 00 86 62 e8 86 3c 86 3d  ...`.1...b..<.=                                           ^^ ^^ ^^ ^^
Modifies the startup (https://github.com/tom-seddon/basic_edi ... d.lst#L627): initialises the ROM with insert mode rather than overtype.

Change 2:

Code:

  -00003FF0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................  +00003FF0: 76 20 31 2e 33 32 2b 20 28 49 4e 53 45 52 54 29 v 1.32+ (INSERT)             ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^
A tag at the end of the ROM. 1.32+ indeed!Insert mode on startup is a big improvement.

Tested on b2: behaves as expected.

--Tom

P.S. Regarding which of these changes might make it into the updated verion: I'll try removing *FX19 from the scrolling (variant 1, change 3) and see what I think on real hardware with a CRT. Insert mode on startup (variant 5, change 1) is now the default anyway and the command prompt is different enough that the *FX19 on startup (variant 1, change 1) is probably not worth it. The rest don't look good

Statistics: Posted by tom_seddon — Thu Dec 05, 2024 2:47 pm



Viewing all articles
Browse latest Browse all 2528

Trending Articles