Jump to content
IGNORED

Pascal on the 99/4A


apersson850

Recommended Posts

On 6/5/2024 at 4:12 PM, apersson850 said:

I've not managed to get the p-system to automatically find more than one disk controller in the system.

I can use it with the physical drives and two RAMdisks, but then I inject the PCB for the RAMdisks manually. To avoid changing TOPMEM I put them in the sprite attribute table, since I normally don't use that anyway.

With TIPI at >1000, it is able to automatically detect it as a drive controller when DSK1-DSK3 are set up. It does not *seem* detect the TI controller at >1100 in that situation. 

On 6/5/2024 at 4:12 PM, apersson850 said:

All disk units point to the same place, since they use the same controller. But the p-system knows that there will not be more than three disks, so it doesn't populate the entries for units #10, #11 and #12.

So for a CorComp controller which has four drives you simply copy the same value as is stored for #4 to the place where you have #10.

Since TIPI actually supports DSK4 and DSK5 as well, we should be able to get those working too by adding 2 more PCB's. It should be simpler than RAMDISKS because the DSR is unchanged. Do we know where the PCB's are located in VDP? I looked at the location pointed to by TOPMEM in Classic99 but did not recognize PCB's at first glance.

What I still don't understand however is why the Editor is running out of VDP memory with only 3 TIPI disk drives as it should theoretically be a similar situation to when a real TI controller is present with 3 drives attached. Any thoughts on this? The answer probably lies with inspection of the PCB table once I know where it is.

Link to comment
Share on other sites

Posted (edited)

The physical drives controlled by the same controller use the same PCB. The call just changes a parameter in the PCB to indicate which drive to use.

Since I don't have any TIPI I've not checked this, but perhaps the system by default allocates space for a PCB for the standard disk controller and does then allocate one more when it unexpectedly discovers a disk controller showing up before the standard one during the search?

Pure speculation - I don't know why this happens.

Edited by apersson850
Link to comment
Share on other sites

  • 2 weeks later...

I have a main program which uses a custom library of 3 separate units. The units USE several of the TI supplied units (speech, sound, random etc...) and compile just fine. However, unless I also USE these same TI supplied units in the main program which does not need them, I get the error UNIT NOT DECLARED IN PREVIOUS USES.

I don't understand why that is the case, and doing so robs precious memory from the main program...

 

Example:

Library TESTLIB has:

  • UNIT1
  • UNIT2

Both UNIT1 and UNIT2 need the TI supplied units SUPPORT and RANDOM which they explicitly USE in their INTERFACE section.

Now TEST is a program which USES the TESTLIB library, but does not need SUPPORT or RANDOM to work. However, it seems I still have to USE SUPPORT and RANDOM in the TEST main program regardless, which does not make sense. 

 

I must be missing some concept here...

  • Sad 1
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...