Jump to content
IGNORED

TurboPascal99 Questions


Willsy

Recommended Posts

I had the following post on planet-99.net - can anyone offer any advice...

 

I took a little time to review your latest posting: TurboPascal V1.0 from 1986.

I think there may be a problem with one or two of the files. The linker runs

fine. and all the documentation is readable (even with an occassional German word. However, when the TP99 file is run from Opt 5 of the EA Cart, the "Green" Screen of Death sets in. It could be two files are affected: TP99 and/or RUNLIB. I am assuming TP99 sets things up so that RUNLIB can run the TP99 system..... I left a message for the contributor, but I thought you might have some valuable input. If you can try running it on some actual hardware, it could help the effort..... I have two complete systems, but I am a little ways to finishing the cleaning and hardware re-assembly. TP99 failed to run on both the Win994a simulator and the Classic99 emulator...... but that darn linker works great....!

Link to comment
Share on other sites

Since I did the translation, I do at least know that RUNLIB contains support for all standard functions in Pascal (those supported by this implementation). RUNLIB is a library which should be loaded together with all user programs. It's linked automatically.

 

TP99 I presume is the editor/compiler environment, i.e. the development tool for programs. If I'm right, it probably runs without loading RUNLIB, since RUNLIB hosts the run-time support, not the compile-time support. At least that's how I understood it.

The linker is used to link your own programs to libraries other then RUNLIB. So if your linker runs fine, but not TP99, then you can link the programs you unfortunately can't compile...

Link to comment
Share on other sites

There is something weird going on with these disks... I am able to run TP99 fine from the disk images I created, but when I try to save a file entered in the Editor, the system crashes. This does not occur with the disks I received from Retrocloud, which are copies. Worse, while the linker (lk99) runs, it is refusing to link any modules, giving me an I/O error #2 everytime, even though the modules compile just fine with no errors with TP99, and seem fine when edited. Am I missing a step here?

Anders, do you have original disks of TurboPasc'99 by any chance?

Link to comment
Share on other sites

Hi Vorticon,

 

you are seeing the crash in the editor because of the copy protection. I used a track copier to copy the disks for you.

I seem to recall that's exactly the behaviour I got when copying the disks with disk manager 2.

 

But now that we have disk images for emulator use, it would be interesting to check with a debugger.

Might well be they are doing some funky stuff, like reading in between sectors (without using the DSR).

 

On the other side this product originally comes from Austria. Perhaps kl99 can help in finding out who was the owner and if they are willing to donate it to the public domain.

I tried to find out who Wiposoft was, but failed. Asked around in user groups, etc.

Edited by retroclouds
Link to comment
Share on other sites

Actually, WiPoSoft was based out of Munich. IIEC, one of the reasons there isn't a lot of data on them is that they apparently also liked to copy software from other companies and sell it in their store--and the German Police had issues with that. . .

Link to comment
Share on other sites

Yesterday evening I took a quick look at the TP99 disk. The TP99 EA5 program is quite small (4). Way too small for being an editor with a compiler included.

Basically it appears to be a loader. As soon as it is started, it tries to read a whole bunch of sectors before it locks up.

 

Could see that by watching the debug messages from the classic99 debugger. What I did not find -and I forgot the key combination again for making breakpoints work in classic99- is where the TP99 loader

gets stored. It does not load at >A000, guess I'll have to take a look at the EA5 6-byte header.

 

Any hints where I can find details on the EA5 file header ?

 

UPDATE: Just found the EA5 file header format here: http://nouspikel.gro.../ea_mod.htm#EA5

Edited by retroclouds
Link to comment
Share on other sites

Does anyone had success trying to compile anything with it on an emulator?

http://www.atariage.com/forums/topic/153704-ti-994a-development-resources/page__view__findpost__p__2470216

 

The command interpreter and the editor does load with Classic99 and MESS, but writing files does not work (editor or compiler).

 

I get "error 27" when I compile "KNIGHT/P" form the "TP99DEMO" disk with MESS.

With Classic99, it crashes with an illegal opcode.

Link to comment
Share on other sites

Yesterday evening I took a quick look at the TP99 disk. The TP99 EA5 program is quite small (4). Way too small for being an editor with a compiler included.

Basically it appears to be a loader. As soon as it is started, it tries to read a whole bunch of sectors before it locks up.

 

OK, I stepped into the TP99 program. It does 4 things:

- Load sectors 184..279 at >A000

- Load sectors 280..284 at >2C00

- Load sectors 285..287 at VDP >03C0

- Jump at >A000

 

There was no problem until there. That does not explain why it crashes during compile and editor save.

Enough for today.

Link to comment
Share on other sites

Here's what it does from >A000:

1. Jump at >FDC0

2. Change the "B @>FDC0" from >A000 to "B @>B7B2"

3. Use low level disk controller routines to read the sector 19 from the track 33. Write it at VDP >1000

4. Transfer the sector (256 bytes) from VDP >1000 to >FDC0 and 32 mystery bytes from VDP >1100 to >FEC0

5. Jump to >B29E

 

The disk is formatted with single density (9 sectors per track), so I don't know what is this sector 19.

I'm no floppy expert, I just read everything from here http://nouspikel.gro.../ti99/disks.htm

and here http://nouspikel.gro...ti99/disks2.htm

 

 

The first step should be to load from the original disk and copy the 288 bytes from >FDC0 and put that in the sectors loaded to >FD00 and >FE00 (sectors 277 and 278).

The sector 277 begins at >11500 in the disk image.

The 288 bytes must be written at >115C0.

 

Then, change the entry point to >B7B2 or >B29E (not clear).

 

I don't understand what should be written at >FEC0 (after the 256 bytes of the mystery sector).

 

Here are my notes: http://lb3.one/public/TP99 notes.txt

Edited by lucien2
Link to comment
Share on other sites

Somebody wrote that it's copy protected. Then it may be protected by having illegal sector numbers. Thus normal copying will not work. It takes that you have another program which can create an identical illegal track on the disk, then copy the content to that funny track. There are other programs that use similar principles, like MG's Explorer and Advanced Diagnostics.

Link to comment
Share on other sites

  • 6 months later...

The first step should be to load from the original disk and copy the 288 bytes from >FDC0 and put that in the sectors loaded to >FD00 and >FE00 (sectors 277 and 278).

The sector 277 begins at >11500 in the disk image.

The 288 bytes must be written at >115C0.

 

Then, change the entry point to >B7B2 or >B29E (not clear).

 

I don't understand what should be written at >FEC0 (after the 256 bytes of the mystery sector).

 

Here are my notes: https://drivehq.com/.../TP99 notes.txt

 

Perhaps the below screenshots can help you.

 

This is what I did.

 

1) I loaded my memory viewer into my supercart (the viewer completely runs from the cartridge space so it does not scramble the 32K memory expansion range)

2) Started my working version of Turbo Pasc'99.

3) Did a reset of the TI-99/4A, this does not clear the 32K memory expansion

4) Jumped into the memory viewer and took some screenshots

 

post-16219-0-09145800-1348682521_thumb.jpg

 

post-16219-0-20169600-1348682585_thumb.jpg

 

post-16219-0-77442000-1348682692_thumb.jpg

Edited by retroclouds
  • Like 1
Link to comment
Share on other sites

This is what I did.

 

1) I loaded my memory viewer into my supercart (the viewer completely runs from the cartridge space so it does not scramble the 32K memory expansion range)

 

What memory viewer do you speak of? Is it available somewhere? Sounds interesting.

 

-D

 

"Long Live the TI-99/4a!"

Link to comment
Share on other sites

What memory viewer do you speak of? Is it available somewhere? Sounds interesting.

 

-D

 

"Long Live the TI-99/4a!"

 

It's a utility I wrote, mostly for fun actually. It allows you to browse ROM/RAM and can attach itself to the load interrupt.

Have some more plans for it though, so you might see a new version sometime in the future.

 

Anyway, as it is you can download it here. Remember it loads into the cartridge space at >6000 so you need a supercart.

 

http://www.atariage.com/forums/topic/201505-detect-if-cf7nanopeb-present/#entry2581298

Link to comment
Share on other sites

Cool, thanks for the program and info!

 

This will go well with my current experimenting. I have built a SuperCART, actually a couple, having battery issues with one and no idea why, gave up built another and it works - go figure! Now I'm working on a LOAD Interrupt circuit for assisting myself in my assembly learning and hardware building/modification urges. Now, if I just had more time, or better yet, ability to instantly learn and retain. ;)

 

Again, thanks for sharing and sorry for getting the thread off on a tangent.

 

-D

 

"Long Live the TI-99/4a!"

Link to comment
Share on other sites

icon_smile.gif

 

TP99.PNG

 

 

It works, but... you need to write >E0EC at >837E with the debugger before running the "CO" command.

 

The "LO" command does not always work with Classic99, and it compiles only without output file.

 

With MESS, it seems to work perfectly.

 

I wrote the 288 bytes at >115C0 in the disk image and replaced the entry point at >0B802 with >B29E.

 

TP99COMP patched.zip

Edited by lucien2
Link to comment
Share on other sites

The "LO" command does not always work with Classic99, and it compiles only without output file.

 

I don't know the TP system at all, but if you can give a step by step on how to test the above statement and see the problems, I can probably work out why it sometimes fails and maybe fix the emu. :)

 

Link to comment
Share on other sites

Very nice, great work! Perhaps if all is working, we can take a RAM dump using the classic99 debugger. From there it should be possible to chop the dump up in multiple files and add #EA5 headers. Do not know if that is enough, perhaps some code should be added to patch memory when it starts. But sounds doable I guess.

Link to comment
Share on other sites

Done! TP99.zip

You must run "DSK1.TP99A" instead of "DSK1.TP99".

 

I don't know the TP system at all, but if you can give a step by step on how to test the above statement and see the problems, I can probably work out why it sometimes fails and maybe fix the emu. :)

 

I must correct: it compiles also to output file.

But the problem is still there. If you have luck, you must do 3 to 4 times LO and CO to see the problem.

 

Here are the commands:

LO <filename>: Load source file

CO: Compile without output file

CO <filename>: Compile to output file

ED: Edit source file

SA <filename>: Save source file

 

Then, assemble the generated assembly and run it with LK99.

Edited by lucien2
Link to comment
Share on other sites

I created a new DISK image and copied your latest work on it. Then I copied the disk image on a flash card for running with my CF7+

 

Everything seems to work fine. That means, I'm able to create a small pascal program, compile to disk, assemble and then go through the linker for creating an EA5 program file.

However, running the program via the linker or directly as a EA5 program file, will not show any text on screen.

 

I presume that the program is working fine, because I'm still able to use FCTN-QUIT to return to the title screen, meaning the computer is not locked up.

 

Could imagine this a character set or color set issue (hopefully not related to the F18A). Doing the test in classic99 runs the program as expected.

 

The program I tried was the simplest possible:

 

PROGRAM T1;
WRITELN(9900);
END .

 

Anyway, I'm very excited that you already got that far, that the compiler and linker work without any issues.

 

EDIT: It seems the latest revision of the Atariage forum board software is kinda messing my source code. Identation not as expected.

Edited by retroclouds
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...