Jump to content
IGNORED

ti call files(0)


.mad.

Recommended Posts

classic99 has a special feature CALL FILES(0) to free up a little more memory.

so (i think) a few tape games can run from a disk.

i am wondering if it's possible that MAME can be edited in source, bios, rom.

to have the same/similar feature as classic99.

*i guess not, but i have to ask. :)

 

i can get the games working with minimem, but it's a very long winded process.

Run_Emulator_Send_Keys([4]{enter}1[2]call init{enter}[1]call files(1){enter}[1]old dsk1.%minimem_value%{enter}[22]save expmem2{enter}[2]call load(-31888,63,255){enter}[1]new{enter}[1]old expmem2{enter}[21]run{enter}{pause}||50)

 

 

  • Like 1
Link to comment
Share on other sites

3 hours ago, .mad. said:

classic99 has a special feature CALL FILES(0) to free up a little more memory.

so (i think) a few tape games can run from a disk.

i am wondering if it's possible that MAME can be edited in source, bios, rom.

to have the same/similar feature as classic99.

*i guess not, but i have to ask. :)

 

i can get the games working with minimem, but it's a very long winded process.

Run_Emulator_Send_Keys([4]{enter}1[2]call init{enter}[1]call files(1){enter}[1]old dsk1.%minimem_value%{enter}[22]save expmem2{enter}[2]call load(-31888,63,255){enter}[1]new{enter}[1]old expmem2{enter}[21]run{enter}{pause}||50)

 

 

Mizapf will speak up I'm sure, but the reason Classic99 has CALL FILES(0) is its custom disk DSR does not require video RAM buffers. Since MAME runs only original TI code and doesn't create new devices that don't exist, I wouldn't expect it to happen.

 

I'm not entirely sure how Rich got CALL FILES(0) to work in RXB, but RXB is a pretty good compatibility upgrade for TI BASIC and tapes. ;)

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

6 hours ago, .mad. said:

i am wondering if it's possible that MAME can be edited in source, bios, rom.

to have the same/similar feature as classic99.

The limitation is not enforced by MAME, but by the TI ROM. You'll have to patch the ROMs/GROMs; MAME cannot do anything about that.

  • Like 1
Link to comment
Share on other sites

4 hours ago, Tursi said:

Mizapf will speak up I'm sure, but the reason Classic99 has CALL FILES(0) is its custom disk DSR does not require video RAM buffers. Since MAME runs only original TI code and doesn't create new devices that don't exist, I wouldn't expect it to happen.

 

I'm not entirely sure how Rich got CALL FILES(0) to work in RXB, but RXB is a pretty good compatibility upgrade for TI BASIC and tapes. ;)

 

I kinda cheated.

This is the code I wrote in GPL that overrides the normal CALL FILES(#) so it that # is 0 (zero) it uses a routine I wrote.

*********************************************************** 
* CALL FILES(number)  0 to 15                             *
***********************************************************
SFILES DATA SSIZE
       STRI 'FILES'       *   FILES
       DATA $+2
       CALL COMB          *   (
       CALL CLSALL        *   Close all open files
       CALL RXBFIL        *   Set files
       BR   RXBNEW        *   Go do a NEW
RXBFIL CALL SUBLP3        *   Get Files value
       DCZ  @FAC          *   Zero?
       BS   RXBF0         *   Yes, RXB CALL FILES(0)
       DCHE 16,@FAC       *   16 or more to high
       BS   ERRBV         *   Yes, BAD VALUE error
       CEQ  RPARZ,@CHAT   *   )?
       BR   ERRSYN        *   SYNTAX ERROR 
       XML  PGMCHR        *   Skip )
       DCLR @FAC2         *   Clear         
       ST   @FAC1,@FAC2   *   Load file value
       DST  >0116,V@VROAZ *   Set files buffer space
       DCHE 256,@PAD      *   
       BR   DSRDSS        *
       ADD  >10,@VROAZ+1  *
DSRDSS DST  VROAZ,@FAC12  *
       CALL LINK          *
       BYTE >0A           *
       ST   @ERCODE,@PAD2 *
       SRL  4,@FAC6       *
       CZ   @FAC6         *
       BR   ERRFE         *
       CEQ  >20,@PAD2     *
       BS   ERRFE         *
       RTN                *
RXBF0  CEQ  RPARZ,@CHAT   * )?
       BR   ERRSYN        * SYNTAX ERROR 
       XML  PGMCHR        * Skip )
       DST  >3CEF,@>8370  * Set FILE(0) VDP Highest address 
       RTN                * Return
************************************************************

Look at RXBF0 in the code.

  • Like 1
Link to comment
Share on other sites

1 hour ago, .mad. said:

Thanks for the info.

This looks very promising and is going to work!.

 

do any of you have an RPK version of RXB 2022D.

i can only get the older versions of RBX to run in MAME.

which doesn't have CALL FILES(0).

I am close to release of RXB 2022G, then will work on RXB 2023.

  • Like 3
Link to comment
Share on other sites

2 hours ago, mizapf said:

The limitation is not enforced by MAME, but by the TI ROM. You'll have to patch the ROMs/GROMs.

that's what i was originally thinking of...

i can hex edit the rom files and rebuild the source, but have no idea what to change myself.

I don't have any hang-ups about using hacked ROMs. ;)

 

Thanks!, the above RPK file doesn't work for me.

it starts up with a garbled screen.

 

the "C" file is 24kb.

i am sure it needs to be split into x3 8kb for RPK or x4 6kb for internal MAME cart (which i have done).

*had similar problem before, but forgot exactly what it was.

but need to know correct layout xml.

 

the old working 2012 version is in 3 files like this...

with C and D being 8kb each.

 

<?xml version="1.0" encoding="utf-8"?>
<romset version="1.0" listname="rxb2012">
   <resources>
      <rom id="gromimage" file="rxbg.bin"/>
      <rom id="romimage" file="rxbc.bin"/>
      <rom id="rom2image" file="rxbd.bin"/>
   </resources>
   <configuration>
       <pcb type="gromemu">
          <socket id="grom_socket" uses="gromimage"/>
          <socket id="rom_socket" uses="romimage"/>
          <socket id="rom2_socket" uses="rom2image"/>
       </pcb>
   </configuration>
</romset>

 

 

Link to comment
Share on other sites

Please read my explanations at https://github.com/mamedev/mame/blob/master/src/devices/bus/ti99/gromport/cartridges.cpp#L1326 for the "gromemu" type. In particular, you can only use rom2_socket for Extended Basic-like configurations (2 ROMs with 8K each). The rom2_socket was included to simplify such an Extended Basic setting.

 

If you want to use multi-banked ROMs, you have to pack all banks into one ROM file, i.e. the first 8K is bank 0, then 8K for bank 1, and so on.

Link to comment
Share on other sites

20 minutes ago, mizapf said:

Please read my explanations at https://github.com/mamedev/mame/blob/master/src/devices/bus/ti99/gromport/cartridges.cpp#L1326 for the "gromemu" type. In particular, you can only use rom2_socket for Extended Basic-like configurations (2 ROMs with 8K each). The rom2_socket was included to simplify such an Extended Basic setting.

 

If you want to use multi-banked ROMs, you have to pack all banks into one ROM file, i.e. the first 8K is bank 0, then 8K for bank 1, and so on.

RXB 2021 and RXB 2022 have 3 in total 8K banks in one ROM file and one GROM file. 

Just like in Classic99 or FINALGROM there are only 2 files for RXB 2021 or RXB 2022 i.e. RXBC.bin and RXBG.bin

RXBC has 8K ROMs of 3 banks of 8K.

RXBG has 8K GROMs of 5 banks of 8K.

 

As your post says only 2 banks of ROM are allowed this means FINALGROM or carts like it will never work in MAME.

FINALGROM works fine in my TI99/4A with console only.

Link to comment
Share on other sites

23 minutes ago, mizapf said:

Read again. I said if you use "rom2_socket" you can only use two banks. If you don't use "rom2_socket" you can use more banks.

And can you use FINALGROM on MAME?

YES OR NO?

It is a cartridge like many other Cartridges.

Simple question of yes or no?

Link to comment
Share on other sites

Simple questions need not be simple to answer.

 

I'm not sure about the features of the Finalgrom. The gromemu type is the most flexible one; if its banking scheme suffices to cover the Finalgrom, yes, if not, no. The scheme is described at the linked location in my posting above.

 

I don't have a type "finalgrom" in MAME. From that point you might judge the finalgrom is not supported, but it could well be that a program stored on the finalgrom just works perfectly with the gromemu or some other type. I seem to remember that some feature of the finalgrom is not supported yet, while the others are supported, so that is why the type is not included explicitly.

 

  • Like 2
Link to comment
Share on other sites

9 hours ago, mizapf said:

Works well for me. There is something else wrong with your configuration.

I suppose you are using a sufficiently recent MAME?

Thankyou everyone, for all your help and info.

i am using a custom (texas only) build of 220 for x86.

 

i will rebuild with latest source code...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...