Jump to content
IGNORED

tp99 Challenge


dhe

Recommended Posts

After WiPoSoFt published the Turbo Pascal 99 program in 1986, there was later an extension in the form of a Windows Manager Library.

 

With the Windows Manager Library, two demo programs have also been released.

The programs are labeled WI99DEMO and WI99MASK on the original disk and include a Windows demo and mask control in German.
 

I used G ... Translate to translate the programs into English.

The translated versions of the programs in the zip file are:

WI99DE-P           English version of the pascal source for WI99DEMO

WI99ME-P          English version of the pascal source for WI99MASK

 

I found a documentation for the library in the Dutch language and also translated it into English.

WIN99_english.pdf 

 

Here is the result:

TP99V2.dsk The current compiler and linker as described in post # 2.

 TP2_V2.zip

 

DSK2_TP99-WIN.zip The programs for the Windows Manager

 DSK2_TP99-WIN.zip

 

classic99 configuration:

cartridge = editor / assembler

DSK1 = TP99V2.dsk

DSK2 = please unpack the SK2_TP99-WIN.zip in FIAD folder

 

Here are some screenshots for the DEMO program WI99DE

 

    image.png.832df4445c82a842105ee247be3c2f8f.png image.png.3cd4a30cc4ab21a1faa62d2e5c15a460.pngimage.png.88d19d214e28ff66bcece6b9891e56c0.png

 

 

Before trying the second example, please read the short instructions in the file: MASKDOC_E

The library file WI99 @ must also be linked here

In this example, PROC'D (FCTN6) is used to select a menu item and AID (FCTN + 7) for a help window.

 

  image.png.2125091d752a90bb5a4cf637bd1ba1bc.png  image.png.65cd47dd8c89d7f2173ad06e8ce750a0.png

 

 

  image.png.248b6c0d56ca8584edde87ee95da2dcd.png  image.png.704acf372fbe28c608baedcb80757cf7.png

 

 

The complete compiling process:

1.       Load the TP99 Editor/Compiler                 In E/A option 3 LOAD AND RUN? DSK1.TP99

2.       LO DSK2.WI99DE-P                                Load the pascal source

3.       CO DSK2.WI99DE-S                               Compile to the Assembler source

4.       Q!                                                         Command for Exit TP99

5.                                                                   Load the EA again

6.       Option 2                                                Run the Assembler
SOURCE FILE                                                     DSK2.WI99DE-S
OBJECT FILE                                                      DSK2.WI99DE-O
                                                                        no list file
OPTIONS                                                          R

7.                                                                   Load the EA again and choose option 5

8.       DSK1.LK99                                            run the LK99 linker

9.       Enter the Module name                           DSK2.WI99DE-O

10.   Enter the Module name                             DSK2.WI99@ to link the library

11.                                                                 Press ENTER

12.   GENERATE A PROGRAM-FILE                     Answer Y for yes and the program name:
                                                                       DSK2.WI99DE1

13.   RUN PROGRM?                                        Answer Y for yes to run the program

  • Like 5
Link to comment
Share on other sites

I have not changed my stance on using disk images for active development just because I fixed a couple of bugs. Don't do it, please.

 

That said, with apologies, I don't understand where exactly the bug happens in the above process. Can you please reduce the steps to the Classic99 reproduction?

 

(edit: deleted large comment block to try and give back the thread ;) )

Link to comment
Share on other sites

OK,

in classic99

DSK2= FIAD folder

DSK3= TESTDV80.dsk

 

I did the following:

- Edit a new file in EA editor

- save it it to DSK2.NEWFILE (FIAD folder)
- save it to to DSK3.NEWFILE1 (the disk image  TESTDV80)
- Then I copied the file NEWFILE with TiDir from DSK2. to the diskimage TESTDV80

TESTDV80.dsk

Check with TiDir to read DSK2.NEWFILE = OK

Check with TiDir to read DSK3.NEWFILE1 in the diskimage = error message

Check with TiDir to read DSK3.NEWFILE = OK

 

Then I put the diskimage into TIimagetool and I got the same picture:

 

NEWFILE1.thumb.JPG.b7ff8d90c861077c31309d0354506047.JPG

 

NEWFILE.thumb.JPG.2047f31bacf0f24537d16f3591981666.JPG

Link to comment
Share on other sites

Regarding the disk image... are you sure it's Classic99 at fault? When I start with your original disk that you offer for download, it's already broken. If I copy COUNT-P from DSK2 to the image, I end up with /two/ copies of COUNT-P. Also... "can't read sector 2"...? That error message doesn't make any sense. It's there, I can see it. :) 

 

I see that sector 1 is incorrectly sorted... COUNT-P is listed before COUNT-O. There are a number of other files that are improperly sorted (COUNTB-O, COUNT1, COUNTB-S...) The whole disk is pretty much out of order.

 

I used JS99er to repair the disk. ;) (Unfortunately, the download upgraded the disk to 360k). When I repeat your steps with Classic99 on the corrected disk, it does indeed put the new file in the wrong place in the sequence. Did Classic99 write the entire disk, perhaps?

 

I'm going to change the write code to do like JS99er does, and just resort the entire directory on a save. That should solve the issue and allow it to automatically repair any broken directories (just save any file).

 

(edit: yes, Classic99 is definitely screwing up, but I don't know if it caused the original issues).

 

 

Link to comment
Share on other sites

This is an output of TIMT. The problem is that the level 3 count is invalid in the first example (13), in the second it is correct (1). The L3 count is equal to the number of sectors for variable record files. Interestingly, the EOF is also different.

Link to comment
Share on other sites

1 hour ago, mizapf said:

This is an output of TIMT. The problem is that the level 3 count is invalid in the first example (13), in the second it is correct (1). The L3 count is equal to the number of sectors for variable record files. Interestingly, the EOF is also different.

Yeah, I could see that, I was trying to confirm that I was reading it correctly, as the post just showed the data, but didn't call out what I needed to be looking at.

 

I was able to confirm over the last hour that Classic99 wasn't writing those fields correctly on image disks (though FIADs were of course correct, having been through many iterations). Between that, some missing fcloses, and sorting the directories fully, I'm about ready to turn write support for disk images off again. ;)

 

But the updated version is posted.

 

  • Like 1
Link to comment
Share on other sites

Hello Tursi,

 

I have to apologize to you for the effort I have caused. That was not my intention.

 

I tried my procedure from post # 55 with your new version 399-026.

Now the files are written to the disk image without errors.

Both TiDir and TIMT display the files without errors. 

 

Thank you for your effort, I hope I am no longer a burden.

Link to comment
Share on other sites

1 hour ago, wolhess said:

Hello Tursi,

 

I have to apologize to you for the effort I have caused. That was not my intention.

 

I tried my procedure from post # 55 with your new version 399-026.

Now the files are written to the disk image without errors.

Both TiDir and TIMT display the files without errors. 

 

Thank you for your effort, I hope I am no longer a burden.

Ah, don't feel that way, any comments I make are firmly tongue-in-cheek. While disk images is truly work I did not want to spend time on, your detailed problem reports made fixing the issues faster than they would otherwise have been, and ultimately that helps everyone who uses Classic99. Thank you!

 

No more for a while though, please. ;)

 

  • Like 4
Link to comment
Share on other sites

LINES for TP99

 

An example in Bitmap mode!

 

you can unpak the zip file to classic99 and map it to DSK1.

TP-LINES.zip

The program runs with EA5 DSK1.LINES1

 

image.png.531c2b967a67c621efae75a25648013c.png    image.png.e31a9e213ca8ce2095f1c3b81f9896c8.png

 

image.png.cdecb5409a72576e3ea0ff98bc859036.png    image.png.af72503a028df3e96ce6804c3688048a.png     

 

 

If you will compile it then you can use the TP99V2.dsk image from post #2
Map the image to DSK1 and put the Lines source to DSK2 or DSK3.
The program must be linked with LINES-O and the library PACKBIT@

 

 

  • Like 5
Link to comment
Share on other sites

TURBO PASCAL 99 Version 3.0

 

This disk image and the zip file contains the program Turbo Pascal 99 version 3.

The program is not copy protected and runs from DSK1.

 

TP99V3A.dsk

 

TP99_V3A.zip

 

In classic99 you can map the disk image TP99V3A to DSK1.
Or you can unpack the zip file TP99V3A in a FIAD folder and map the folder to DSK1.

 

image.png.8e7b11514dcc298040b88e1afce5e27b.png  image.png.b7cca5086a39f5d6ad01d9cb6be59a0f.png

 

 

 

I don’t know about the differences between version 2 and 3 but during my tests
the editor / compiler and the linker works the same way.

The colors in the compiler and in the linker are different to version 2, more professional, I think.

 

The Compiler loads from EA option 5 RUN PROGRAM FILE and the FILE NAME: DSK1.TP3

The Linker loads from EA option 5 RUN PROGRAM FILE and the FILE NAME: DSK1.LK3A

 

You can use this Turbo Pascal version with the DEMO programs showed in the posts before
(POST #2=TP-DEMO, POST #52=TP-WIN and POST #63=TP-LINES) or any other Turbo Pascal Program.

 

There are some more libraries for Turbo Pascal 99 included:

CHARS@             CHAR, CHARS, CHARP, COLOR, GCHAR, HCHAR, VCHAR, JOYST
SOUND@             SOUND, SOUND2, SOUND3, SOUND4
SPEECH@            SAY, SPGET
SPRITES@           SINIT, MAGNIF, MOTION, PATTRN, LOCATE, POSITN, SPRITE, SCOLOR, DELALL,
                          DELSPR, DISTSS, DISTSL, COINC
PACKBIT@           CLEAR, BITMAP, PIXEL, LINE

 

The documentation is currently in German:
CHARSHELP        Screen and Graphic documentation
GS-BEFEHL         External Procedures from the libraries CHAR@, CHARS@, SPRITES@, SOUND@ and SPEECH@

 

There is also a RUNLIB80 file and a RUNLIBHELP documentation included. It seems that Turbo Pascal can be used
with a 80 character card or it can produce programs for a 80 character card.

 

Have fun programming with Turbo Pascal!

LKV3.bmp

  • Like 3
Link to comment
Share on other sites

The main documentation is the same as in version 1.

 

there are some additional doc files in the zip/image, but in German. I will translate it to English in the next few days.

The files are charshelp and gs-befehl.
 

 

I have no separate docu for the version 3, unfortunately.

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

A small demo of some library extensions:

 

TP-DEMO2.zip

 

The document includes the procedures I used in the demo program.

But it is a first draft and I have to do some more work on it.

So please use it with caution!

 

TurboPascal99_Library_doc.pdf

 

And here is my library collection:

 

TP-LIB.zip

 

Some pictures of the demo program:

 

image.png.1ca385f1bdebca64e5a7915ee83619bf.png  image.png.2f35027539485791c89cc69b2079e057.png 

 

image.png.31b68131be6cbe0b1c35f89612b02847.png  image.png.486277099d776ac92e2464185cc8787e.png

 

 

The program DEMOP1 you can load as EA5 RUN PROGRAM FILE
with real TI and classic99 and the E/A module.

 

I use the TP3 version from post #64 in classic99 all in FIAD folders:

DSK1 = mapped to TP3 

DSK2 = mapped to the TP-DEMO2 files

DSK3 = mapped to my library folder

 

 

 

 

To compile and link the program you must link all the modules in the following picture:

 

image.png.f27aaf22a8b11116aaf37420fea8ca0e.png

  • Like 4
Link to comment
Share on other sites

I have a question for our experts:

 

The linked Turbo Pascal programs (PROGRAM IMAGE FILE(s)] run smoothly with the E/A cartridge inserted.

 

However, the program does not run with an E/A5 loader and an inserted XB cartridge.

 

Is there a way to create an XB Loader for a Turbo Pascal  PROGRAM IMAGE file?

 

How would that work?

 

I would be happy if someone has an idea.

 

The use case would be to develope my "MEGA MENU" XB program in Turbo Pascal 99
and use it with any XB cartridge with 40 column textmode and maybe the window 
menus from the WI99 library.

 

Link to comment
Share on other sites

Here is an example of converting a simple XB program to Turbo Pascal 99.
 

The program is the sprite example from the Extended Basic book on pages 175 to 177.
 
 
 
 

image.png.028e4ac8dbeb70e467f9fb0d73057816.png

 

I used the TP3 version from post #64 in classic99 all in FIAD folders:

DSK1 = mapped to TP3 (see post #64)

DSK2 = mapped to the TP-SPRITES files

DSK3 = mapped to my library folder  (see TP-LIB in post #67)

 

If you will compile and link the program, you need the files showd in the picture:

 

image.png.b3737d83409ea51c3e7bf0701c4d5f2e.png

 

  • Like 2
Link to comment
Share on other sites

13 hours ago, wolhess said:

However, the program does not run with an E/A5 loader and an inserted XB cartridge.

 

Is there a way to create an XB Loader for a Turbo Pascal  PROGRAM IMAGE file?

 

Do you know whether the E/A utilities are required for TP99 programs? Many of those utilities are in different places with the XB cartridge mounted. You would need to load those utilities first if they are indeed required.

 

...lee

  • Like 2
Link to comment
Share on other sites

I guess there's an easy way to test it - back in the day I did this for C99 programs ;)

 

Just hex edit the last program in your chain, then add and rename the attached file to be the last one in the chain. For instance, if you have PROG, PROH, PROI, name this one PROJ and hex edit PROI.

 

In the header of PROI, the first two bytes should be 0000 to indicate last file. Change them to FFFF. (Make sure to skip any file headers if you're on the PC, 128 bytes).

 

DEMQ

This file is just the Editor/Assembler utilities saved as a program image. ;) If it works with this loaded, that's all you were missing.

 

  • Like 2
Link to comment
Share on other sites

1 hour ago, Tursi said:

Just hex edit the last program in your chain, then add and rename the attached file to be the last one in the chain. For instance, if you have PROG, PROH, PROI, name this one PROJ and hex edit PROI.

Hi Tursi, 

I will try this and report the result. thank you.

Link to comment
Share on other sites

I tried your suggestion with a simple "HALLO" program.

 

TP-TEST.zip

 

TEST1, TEST2 = the compiled and linked TP program, TEST3 is the renamed DEMQ file.

 

All tests are failed!

 

L-TEST is a EA5 XB loader from Barry Boone

Result: blue screen and continously beep.

 

L5-TEST is a EA5 XB loader from paragon

Result: returns to the TI title screen

 

L5-TEST2 is the paragon loader that runs an EA5 loader  "LO-TEST"
(I think it's your program to load EA5 in 4ADOS)

Result: green screen

 

I tried the RXB/REA version 2015 with P Program FILE: DSK1.TEST1

Result: green screen with some changing characters in the top left corner.

 

 

 

Link to comment
Share on other sites

I am not familiar with the inner workings of the various XB loaders to make this more than just a shot in the dark, but I wonder if it is possible the loader is being overwritten. XB programs start at high expansion RAM and grow down. If that is where the XB loaders are located, things would go south when the utilities from the last E/A5 file are loaded.

 

...lee

  • Like 2
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...