Author Topic: New customisable firmware (lower ROM).  (Read 1375 times)

0 Members and 1 Guest are viewing this topic.

Offline m_dr_m

  • CPC6128
  • ****
  • Posts: 235
  • Country: se
  • http://orgams.wikidot.com/
    • OrgaMS!
  • Liked: 159
  • Likes Given: 171
New customisable firmware (lower ROM).
« on: 14:01, 09 February 21 »
Hi!


Both X-Men and M4Board allow to change the firmware. Both propose firmware mods.
I plan to cook a source of the firmware with several flags, to be able to cherry pick:
  • M4ROM detection in slot >31
  • More generally, # of rom to initialise: 16 (default), 32, 64...
  • Mode 2 boot
  • Disable text output at boot
  • ROM deactivation when ESC pressed at boot time.
  • Keyboard layout (german, spanish, danish, ...)
  • Fast CLS
  • Fast PRINT (if companion upper rom)
  • Firmware 3.15
  • Boobs
  • ...
Let me know if you think of something else!


Offline SOS

  • Supporter
  • 464 Plus
  • *
  • Posts: 388
  • Country: de
  • Identity lost
    • index.php?action=treasury
  • Liked: 255
  • Likes Given: 276
Re: New customisable firmware (lower ROM).
« Reply #1 on: 14:05, 09 February 21 »
Let me know if you think of something else!
Some CPC's cant replace ROM7. Duke has in his LowerROM-Patch an logic:
"If i need to init ROM7, i will init ROM6 instead"

Offline Gryzor

  • Administrator
  • 6128 Plus
  • *****
  • Posts: 16.783
  • Country: gr
  • CPC-Wiki maintainer
    • CPCWiki
  • Liked: 3964
  • Likes Given: 7081
Re: New customisable firmware (lower ROM).
« Reply #2 on: 14:06, 09 February 21 »
I knew about fast PRINT, but fast CLS?

Mode 2 boot would also be nice, I love that font.
ROM deactivation also sounds quite practical.
How does BOOBS initialise?

Offline Bryce

  • The Hardware Guy.
  • Supporter
  • 6128 Plus
  • *
  • Posts: 12.284
  • Country: wf
  • It's not broken, it just hasn't been fixed yet.
    • index.php?action=treasury
  • Liked: 4584
  • Likes Given: 481
Re: New customisable firmware (lower ROM).
« Reply #3 on: 15:09, 09 February 21 »
What size boobs were you thinking of implementing? Will more RAM be required for the larger ones?

Also, will you be doing all versions of the lower ROM (there are several variants)?

Bryce.

Offline Gryzor

  • Administrator
  • 6128 Plus
  • *****
  • Posts: 16.783
  • Country: gr
  • CPC-Wiki maintainer
    • CPCWiki
  • Liked: 3964
  • Likes Given: 7081
Re: New customisable firmware (lower ROM).
« Reply #4 on: 15:20, 09 February 21 »
will you be doing all versions of the lower ROM

Are we talking about software here?

Online Shining

  • Supporter
  • 464 Plus
  • *
  • Posts: 310
  • Country: de
    • Shinings little CPC page
  • Liked: 442
  • Likes Given: 209
Re: New customisable firmware (lower ROM).
« Reply #5 on: 15:27, 09 February 21 »
Something like autostart perhaps? (to autostart some non rom rsx expansions for example).
TGS is back

Download my productions at:
cpc.scifinet.org

Offline m_dr_m

  • CPC6128
  • ****
  • Posts: 235
  • Country: se
  • http://orgams.wikidot.com/
    • OrgaMS!
  • Liked: 159
  • Likes Given: 171
Re: New customisable firmware (lower ROM).
« Reply #6 on: 16:07, 09 February 21 »
Thanks for the suggestions, really appreciated. Keep them coming!

What size boobs were you thinking of implementing? Will more RAM be required for the larger ones?
CPC (C+ Cup)
Depending on the graphist, it may require one additional RpB (ROM per Boob).

All versions of the ROM: it would be exponential!
It would be an auto-installable CPC source with flags:

Code: [Select]
boot_mode_2 = 1
keyboard_layout = GREEK_LAYOUT
[...]


    if boot_mode_2
         ld a,2
    else
         ld a,1
    end   



Offline Gryzor

  • Administrator
  • 6128 Plus
  • *****
  • Posts: 16.783
  • Country: gr
  • CPC-Wiki maintainer
    • CPCWiki
  • Liked: 3964
  • Likes Given: 7081
Re: New customisable firmware (lower ROM).
« Reply #7 on: 16:15, 09 February 21 »
What values does the boob_mode accept then?

Offline m_dr_m

  • CPC6128
  • ****
  • Posts: 235
  • Country: se
  • http://orgams.wikidot.com/
    • OrgaMS!
  • Liked: 159
  • Likes Given: 171
Re: New customisable firmware (lower ROM).
« Reply #8 on: 16:27, 09 February 21 »
I guess we'll have to ask @MacDeath !

Offline Bryce

  • The Hardware Guy.
  • Supporter
  • 6128 Plus
  • *
  • Posts: 12.284
  • Country: wf
  • It's not broken, it just hasn't been fixed yet.
    • index.php?action=treasury
  • Liked: 4584
  • Likes Given: 481
Re: New customisable firmware (lower ROM).
« Reply #9 on: 16:27, 09 February 21 »
Are we talking about software here?

The BASIC 1.0 Firmware is different than the BASIC 1.1 Firmware, etc. So my question was will he be making a customisable version of all variants)?

Bryce.

Offline m_dr_m

  • CPC6128
  • ****
  • Posts: 235
  • Country: se
  • http://orgams.wikidot.com/
    • OrgaMS!
  • Liked: 159
  • Likes Given: 171
Re: New customisable firmware (lower ROM).
« Reply #10 on: 16:29, 09 February 21 »
Refactoring:


Code: [Select]
screen_mode_at_boot = 2
[...]
       ld a,screen_mode_at_boot

Offline m_dr_m

  • CPC6128
  • ****
  • Posts: 235
  • Country: se
  • http://orgams.wikidot.com/
    • OrgaMS!
  • Liked: 159
  • Likes Given: 171
Re: New customisable firmware (lower ROM).
« Reply #11 on: 16:30, 09 February 21 »
The BASIC 1.0 Firmware is different than the BASIC 1.1 Firmware, etc. So my question was will he be making a customisable version of all variants)?

Good point! I don't plan to, but it will be open-source, so...

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 1.078
  • Country: fr
    • urban exploration
  • Liked: 1481
  • Likes Given: 861
Re: New customisable firmware (lower ROM).
« Reply #12 on: 19:35, 09 February 21 »
The BASIC 1.0 Firmware is different than the BASIC 1.1 Firmware, etc. So my question was will he be making a customisable version of all variants)?

Bryce.
Basic 1.1 for 464 ! Do not leave 464 alone!
use RASM, the best assembler ever made :p

I will survive

Offline Bryce

  • The Hardware Guy.
  • Supporter
  • 6128 Plus
  • *
  • Posts: 12.284
  • Country: wf
  • It's not broken, it just hasn't been fixed yet.
    • index.php?action=treasury
  • Liked: 4584
  • Likes Given: 481
Re: New customisable firmware (lower ROM).
« Reply #13 on: 19:38, 09 February 21 »
Basic 1.1 for 464 ! Do not leave 464 alone!

The 464 is BASIC 1.0. :)

Bryce.

Offline roudoudou

  • 6128 Plus
  • ******
  • Posts: 1.078
  • Country: fr
    • urban exploration
  • Liked: 1481
  • Likes Given: 861
Re: New customisable firmware (lower ROM).
« Reply #14 on: 19:43, 09 February 21 »
The 464 is BASIC 1.0. :)

Bryce.
you miss the point, i vote "Basic 1.1 for 464" there is not interest to keep 1.0
use RASM, the best assembler ever made :p

I will survive

Offline Bryce

  • The Hardware Guy.
  • Supporter
  • 6128 Plus
  • *
  • Posts: 12.284
  • Country: wf
  • It's not broken, it just hasn't been fixed yet.
    • index.php?action=treasury
  • Liked: 4584
  • Likes Given: 481
Re: New customisable firmware (lower ROM).
« Reply #15 on: 19:56, 09 February 21 »
you miss the point, i vote "Basic 1.1 for 464" there is not interest to keep 1.0

Ah, ok, now I understand. I think something similar was already done, adding the Circle and Fill commands etc. to 1.0.


Bryce.

Offline m_dr_m

  • CPC6128
  • ****
  • Posts: 235
  • Country: se
  • http://orgams.wikidot.com/
    • OrgaMS!
  • Liked: 159
  • Likes Given: 171
Re: New customisable firmware (lower ROM).
« Reply #16 on: 14:27, 08 May 21 »
By the way, The @Duke , I cannot find the source for the Modified Lower ROM! I'd like to move M4ROM at 32 (instead of 6 or 7) and have it initialised

Offline Duke

  • Supporter
  • 6128 Plus
  • *
  • Posts: 1.250
  • Country: dk
    • spinpoint.org
  • Liked: 1461
  • Likes Given: 1170
Re: New customisable firmware (lower ROM).
« Reply #17 on: 16:35, 08 May 21 »
By the way, The @Duke , I cannot find the source for the Modified Lower ROM! I'd like to move M4ROM at 32 (instead of 6 or 7) and have it initialised

There isn't any source for it. I just patched in the hex codes after some disassembly. If you do a diff, ie.  fc /b original_lowerrom.bin modified_lowerrom.bin you will see the few bytes that was patched in and the small codeblock that was fitted by overwriting part of some Basic error string.
Basically it goes something like this (free from memory)

Lowerrom code....
call rom_select(rom_num); // this is patched to jump to code block

code_block (part of string *** PROGRAM LOAD FAILED ***\r\n string was ended sooner and gave a few bytes):
if  (rom_num ==7)
    rom_num = 6;

return rom_select(rom_num);

EDIT:
Just loaded it up in the disassembler, so here is the code:
Code: [Select]
At 0x339 call 0xBA79 KL ROM SELECT was patched to jp 0x70A

0x70A string is overwritten with:
cp      6
jp      z, 0xBA87      ; is it rom 6, then KL ROM DESELECT and exit early as we don't want to use the rom twice
cp      7
jr      nz, 0x715      ; is it select rom 7 ?
ld      c, 6         ; then change it to rom 6
0x715:
call    0xBA79      ; KL ROM SELECT
jp      0x339        ; resume execution...

The location of the string I overwrite varies between the different languages of lowerrom.[/font]
« Last Edit: 07:40, 09 May 21 by Duke »

Offline m_dr_m

  • CPC6128
  • ****
  • Posts: 235
  • Country: se
  • http://orgams.wikidot.com/
    • OrgaMS!
  • Liked: 159
  • Likes Given: 171
Re: New customisable firmware (lower ROM).
« Reply #18 on: 13:52, 09 May 21 »
Thanks, if it's the only mod, it makes sense!


For a ROM>15 I guess there is more work to do.
I wonder what @SyX does for firmware 3.15, since there the ram-allocation-table-for-roms at &b8da is only 16 entries long (thanks @OffseT ).

Offline Duke

  • Supporter
  • 6128 Plus
  • *
  • Posts: 1.250
  • Country: dk
    • spinpoint.org
  • Liked: 1461
  • Likes Given: 1170
Re: New customisable firmware (lower ROM).
« Reply #19 on: 20:33, 09 May 21 »
Thanks, if it's the only mod, it makes sense!
It is.

Quote
For a ROM>15 I guess there is more work to do.
I don't think so, if you want to achieve the same as I do with the modified lowerrom (make games/programs that use firmware and re-init roms compatible). Just replace 6 with 31 and put M4 rom in slot 31, that should work I think.