+mizapf Posted April 29, 2020 Share Posted April 29, 2020 You can also inspect the header in TIMT using right-click on the file, then "View file information block". 3 Quote Link to comment Share on other sites More sharing options...
wolhess Posted April 29, 2020 Share Posted April 29, 2020 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 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. 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 5 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted April 29, 2020 Share Posted April 29, 2020 That looks like a great extension to TP99. Perhaps it's worth revisiting that package after all... Thank you for all the detailed instructions! 1 Quote Link to comment Share on other sites More sharing options...
Tursi Posted April 29, 2020 Share Posted April 29, 2020 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 ) Quote Link to comment Share on other sites More sharing options...
wolhess Posted April 29, 2020 Share Posted April 29, 2020 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: Quote Link to comment Share on other sites More sharing options...
wolhess Posted April 29, 2020 Share Posted April 29, 2020 3 hours ago, Vorticon said: That looks like a great extension to TP99. Perhaps it's worth revisiting that package after all... Thank you for all the detailed instructions! And I think the programs are running very fast! Quote Link to comment Share on other sites More sharing options...
Tursi Posted April 29, 2020 Share Posted April 29, 2020 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). Quote Link to comment Share on other sites More sharing options...
Tursi Posted April 29, 2020 Share Posted April 29, 2020 The record data is wrong? That's odd... that's handled by common code. Am I reading this right? (edit: deleting large comment block to give back the thread ) Quote Link to comment Share on other sites More sharing options...
+mizapf Posted April 29, 2020 Share Posted April 29, 2020 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. Quote Link to comment Share on other sites More sharing options...
Tursi Posted April 29, 2020 Share Posted April 29, 2020 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. 1 Quote Link to comment Share on other sites More sharing options...
wolhess Posted April 30, 2020 Share Posted April 30, 2020 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. Quote Link to comment Share on other sites More sharing options...
Tursi Posted April 30, 2020 Share Posted April 30, 2020 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. 4 Quote Link to comment Share on other sites More sharing options...
wolhess Posted April 30, 2020 Share Posted April 30, 2020 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 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@ 5 Quote Link to comment Share on other sites More sharing options...
wolhess Posted May 1, 2020 Share Posted May 1, 2020 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. 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 3 Quote Link to comment Share on other sites More sharing options...
+Vorticon Posted May 1, 2020 Share Posted May 1, 2020 Is the main documentation still the same as version 1? Would you mind posting the additional version 3 documentation? Quote Link to comment Share on other sites More sharing options...
wolhess Posted May 1, 2020 Share Posted May 1, 2020 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. 1 Quote Link to comment Share on other sites More sharing options...
wolhess Posted May 17, 2020 Share Posted May 17, 2020 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: 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: 4 Quote Link to comment Share on other sites More sharing options...
wolhess Posted May 17, 2020 Share Posted May 17, 2020 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. Quote Link to comment Share on other sites More sharing options...
wolhess Posted May 17, 2020 Share Posted May 17, 2020 Here is an example of converting a simple XB program to Turbo Pascal 99. TP-SPRITES.zip The program is the sprite example from the Extended Basic book on pages 175 to 177. 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: 2 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted May 18, 2020 Share Posted May 18, 2020 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 2 Quote Link to comment Share on other sites More sharing options...
Tursi Posted May 18, 2020 Share Posted May 18, 2020 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. 2 Quote Link to comment Share on other sites More sharing options...
wolhess Posted May 18, 2020 Share Posted May 18, 2020 1 hour ago, Lee Stewart said: Do you know whether the E/A utilities are required for TP99 programs? Hi Lee, yes TP uses the utilities, but the last program image file are the utilities and tp loads these to FD40 - FFEF. 1 Quote Link to comment Share on other sites More sharing options...
wolhess Posted May 18, 2020 Share Posted May 18, 2020 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. Quote Link to comment Share on other sites More sharing options...
wolhess Posted May 18, 2020 Share Posted May 18, 2020 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. Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted May 18, 2020 Share Posted May 18, 2020 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 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.