[Turbo Pascal] Q&A official thread

Страница 3/17
1 | 2 | | 4 | 5 | 6 | 7 | 8

By popolony2k

Hero (544)

Аватар пользователя popolony2k

14-05-2016, 03:34

raymond wrote:

It finds my OPLL at slot 136, how does this translate back to Slot and Sub-Slot numbers?

Check the code below. The function SplitSlotNumber is located in MSXBIOS.PAS.

{$i types.pas}
{$i msxbios.pas}
{$i sltsrch.pas}
{$i sleepb.pas}
{$i ym2413.pas}

{$v-}

Var
      nSlotId : TSlotNumber;
      nPriSlot,
      nSecSlot   : Byte;

Begin
  nSlotId := FindYM2413;

  If( nSlotId <> ctUnitializedSlot )  Then
  Begin
    SplitSlotNumber( nSlotId, nPriSlot, nSecSlot );  { Split primary and secondary slot from nSlotId }

    WriteLn( 'OPLL Slot found at ', nSlotId );
    WriteLn( 'Primary Slot ', nPriSlot );
    WriteLn( 'SecondarySlot ', nSecSlot );
  End
  Else
    WriteLn( 'OPLL not found' );
End.

[]'s
PopolonY2k

By popolony2k

Hero (544)

Аватар пользователя popolony2k

14-05-2016, 03:29

You can use the function MakeSlotNumber (in MSXBIOS.PAS) to compose a primary and secondary slot number into one value.

{$i types.pas}
{$i msxbios.pas}

{$v-}

Var
      nSlotId : TSlotNumber;
Begin
  nSlotId := MakeSlotNumber( 1, 2 );
End.

[]'s
PopolonY2k

By raymond

Hero (653)

Аватар пользователя raymond

14-05-2016, 17:34

Thanks, this works very well.

By raymond

Hero (653)

Аватар пользователя raymond

14-05-2016, 17:39

I am trying to "see" in which slot my GR8NET is. Therefor I use the command FindSignature from the sltsrch.pas file. GR8NET is on 4010h as described in the GR8NET manual

The command I give is:

FoundGR8NET := FindSignature ('GR8NET', 4010);

It always returns 255 no matter in which slot the GR8NET is... :-?

By popolony2k

Hero (544)

Аватар пользователя popolony2k

15-05-2016, 02:10

raymond wrote:

I am trying to "see" in which slot my GR8NET is. Therefor I use the command FindSignature from the sltsrch.pas file. GR8NET is on 4010h as described in the GR8NET manual

The command I give is:

FoundGR8NET := FindSignature ('GR8NET', 4010);

It always returns 255 no matter in which slot the GR8NET is... :-?

Hi friend.

Unfortunately I don't know anything about GR8NET, "but" I think I know where is the problem in your code.
After checking the GR8BIT specification, I found that this address 4010 should be described in HexaDecimal, so your code should be like below.

FoundGR8NET := FindSignature ('GR8NET', $4010);

Please test this piece of code and send us the good news. :)

[]'s
PopolonY2k

By raymond

Hero (653)

Аватар пользователя raymond

15-05-2016, 09:27

Hello PopolonY2k,

I made a typo in my code above oO , I do use $4010, which then returns the 255. So unfortunally that is not the solution Sad I will try to figure out why...

Raymond

By raymond

Hero (653)

Аватар пользователя raymond

16-05-2016, 09:46

Found the cause. I spoke with Eugeny who made the GR8NET and he told me the GR8NET is at address $5FB8 instead of $4010. I have changed it to $5FB8 and now it can find it Big smile

By popolony2k

Hero (544)

Аватар пользователя popolony2k

16-05-2016, 18:04

Very cool.

Thanks for posting. Is a good idea, Eugenny to fix this address in the GR8NET documentation.

[]'s
PopolonY2k

By rolandve

Champion (372)

Аватар пользователя rolandve

18-06-2016, 17:08

I have downloaded a few versions of TurboPascal from the internet, but its either a version of Turbo pascal 3.3 (which has memman as a requirement and I don't want to depend on memman with my pascal code or its a MSX2 version that has so much additional files that it can't be the original TurboPascal.

Is the general modus of programming in Turbopascal to work from a single directory? Thats nasty if you want to use for example popolony's library. I would prefer a "lib" directory. So basically: what (turbo) pascal version is capable of using subdirectories, hasn't been modified to require additional software and doesn't contain software that I do not need, like a Z80 emulator etc. Because "which files can be thrown away..."

Thanks

By popolony2k

Hero (544)

Аватар пользователя popolony2k

18-06-2016, 18:31

There is a Turbo Pascal 3.00b from Borland. But you can use the Turbo Pascal 3.3 from MSX computer club Enschede because it is 100% compatible with the Borland version. About the Memman, in fact is not necessary to load MemMan to use this compiler, just if you're using MemMan related routines. I think.

Unfortunately all Turbo Pascal versions don't support sub-directories for libraries, even the concept of library (UNIT) is implemented is these Turbo Pascal compilers, just include files are available.

[]'s
PopolonY2k

Страница 3/17
1 | 2 | | 4 | 5 | 6 | 7 | 8