Jump to content
IGNORED

Fred Kaal's Module Creator


atrax27407

Recommended Posts

On 8/21/2016 at 6:01 AM, F.G. Kaal said:

Fixed it.

 

Added linker L99 v 1.6.3 in the ModuleCreator 2.0 download.

 

If an inverted module is created (an) empty page(s) (or bank(s)) must be added in front of the program that is less then 4 pages (or banks) and not at the end of the program to create an 32Kb binary.

 

 

ModuleCreator can create a module file out of 1, 2, 3 or 4 Editor/Assembler option 5 programs.

The maximum size the module creator can handle is 32Kb - 4x the size of the modfunc.a99 code and this depends on the number of programs and the length of the titles in the menu.

This is roughly 4x >1E80 bytes = >7A00 or 31232 bytes. If some more PROM space is needed the flag "TI994 EQU 1" can be commented out.

 

 

Fred ;-)

I have had no success in trying to make a BIN file from 3 EA-5 files using ModuleCreator 2.0 with the linker v1.6.3.

I can create a BIN from these 3 EA-5 using Classic99 Debug/Make that works with FinalGrom99.

With ModuleCreator 2.0, I get linker errors as shown below.

BTW, It is also strange that it is also looking for the 4th EA-5 when it doesn't exist. I only have the 3 EA-5 files (MD, ME, MF).

 

Module Creator
 start: L99
   Linkfile : c:\ti994w\modulecreator_20\Mail\build\MD.l99
   Mapfile  : c:\ti994w\modulecreator_20\Mail\build\MD.map
   Errorfile: c:\ti994w\modulecreator_20\Mail\build\MD.ler
*L99 v1.6.3


*** Loading object file ...
    Inputfile = <c:\ti994w\modulecreator_20\Mail\build\modfunc.obj>
    Module name          = <MODFUNCS>
    Module size          = <0000>

*** Loading program file ...
    Inputfile = <C:\Users\Roger\Desktop\TI-transfer\MD>
File does't have a correct V9T9 program file header

*** Creating cartridge file ...
    BankId  >6000
    Table   address >601A
    Buffer  start address >6116, size >1EEA bytes
    LO-Mem  start address >0000, size >0000 bytes
    HI-Mem  start address >0000, size >0000 bytes
    Outputfile = <c:\ti994w\modulecreator_20\Mail\build\MD.bin>
Linker errors

Attached is the MD file that has the file header as well as the File Data that shows the starting memory address of >A000.

Is this file header not compatible with a V9T9 file header as I'm getting an error regarding the file header not being correct.

I'm not sure where to go from here.

 

BTW, I can create a BIN when there's only one EA-5, but not when trying it with multiple EA-5 program files.

MD

Link to comment
Share on other sites

30 minutes ago, Asmusr said:

The MD file is in TIFILES format. If it has to be in V9T9 format for the ModuleCreator, you can convert it using TI99Dir or TIImageTool.

I converted them and it successfully created the 32k BIN file.

However, when I try to run it on FinalGrom99, nothing happens except for a blank screen.

As I have mentioned before, I was able to create a working BIN using Classic99/Debug/Make, but it is basically trial and error as I ended up with a 64K BIN file.

 

Attached are the 3 EA-5 program files if you want to give it a try in making a working BIN for the FinalGrom99.

BTW, This was written in C99 v4.0 together with some assembly code routines.

It's a simple mailing list program that requires 32K card. Program address starts at >A000.

 

Cheers

Roger

 

MD ME MF

Link to comment
Share on other sites

21 minutes ago, rgjt said:

I converted them and it successfully created the 32k BIN file.

However, when I try to run it on FinalGrom99, nothing happens except for a blank screen.

As I have mentioned before, I was able to create a working BIN using Classic99/Debug/Make, but it is basically trial and error as I ended up with a 64K BIN file.

 

Attached are the 3 EA-5 program files if you want to give it a try in making a working BIN for the FinalGrom99.

BTW, This was written in C99 v4.0 together with some assembly code routines.

It's a simple mailing list program that requires 32K card. Program address starts at >A000.

 

Cheers

Roger

 

MD 8.13 kB · 2 downloads ME 8.13 kB · 2 downloads MF 2.38 kB · 3 downloads

Does you program depend on any routines provided by the Editor/Assembler cartridge?

Link to comment
Share on other sites

2 hours ago, Asmusr said:

Does you program depend on any routines provided by the Editor/Assembler cartridge?

No, it doesn't as I never included that option when I built the BIN using Classic99 Debug/Make.

I looked at my C99 source code and it does have an assembly line in the code

#asm

BL @CHARST

#endasm

which I believe loads the Chara1 character set.

Maybe that is the problem.

Link to comment
Share on other sites

15 hours ago, rgjt said:

No, it doesn't as I never included that option when I built the BIN using Classic99 Debug/Make.

I looked at my C99 source code and it does have an assembly line in the code

#asm

BL @CHARST

#endasm

which I believe loads the Chara1 character set.

Maybe that is the problem.

When a program is started with the ED/ASM module some functions are loaded in LO-mem. Because it is a C99 program it relies on this code. You are making the same mistake as I did with the very first version of Dm2k ... You need to save the part of LO-mem with the pre-defined functions from address >2000 to >2700.

 

Maybe you can check this by first loading the ED/ASM module with your Finalgrom, then select load and run ... this loads the pre-defined functions in LO-mem then select the MD module with your FInalgrom and then start MD. Big chance it now will run.

 

A took the last file of one of my programs which is loaded in LO-mem, renamed this with Ti99Dir to MG and binary edited MF so that the load flag is >FFFF instead of >0000 (changed 00 00 08 34 DF F4 to FF FF 08 34 DF F4). Created a module out of these four files (MD, ME, MF, MG) and now it runs in my emulator TI99/4W. Have not tried the FinalGrom but I'm sure it will run ok with that too.

 

Fred ;-)

MD ME MF MG MD.bin

Edited by F.G. Kaal
  • Like 1
Link to comment
Share on other sites

1 hour ago, F.G. Kaal said:

When a program is started with the ED/ASM module some functions are loaded in LO-mem. Because it is a C99 program it relies on this code. You are making the same mistake as I did with the very first version of Dm2k ... You need to save the part of LO-mem with the pre-defined functions from address >2000 to >2700.

 

Maybe you can check this by first loading the ED/ASM module with your Finalgrom, then select load and run ... this loads the pre-defined functions in LO-mem then select the MD module with your FInalgrom and then start MD. Big chance it now will run.

 

A took the last file of one of my programs which is loaded in LO-mem, renamed this with Ti99Dir to MG and binary edited MF so that the load flag is >FFFF instead of >0000 (changed 00 00 08 34 DF F4 to FF FF 08 34 DF F4). Created a module out of these four files (MD, ME, MF, MG) and now it runs in my emulator TI99/4W. Have not tried the FinalGrom but I'm sure it will run ok with that too.

 

Fred ;-)

MD 8.13 kB · 2 downloads ME 8.13 kB · 2 downloads MF 2.38 kB · 2 downloads MG 2.13 kB · 2 downloads MD.bin 32 kB · 3 downloads

Fred,

You are correct. I tried as you suggested and sure enough, the low memory address space between >2000 to >2700 is required with any c99 program.

I then tried your MD.bin on my system with the FinalGrom99 after doing a complete shutdown (cold startup) and the MD.bin file loaded without any problems.

You're a genius Fred.

I will definitely keep the MG file for future use to be included with other c99 programs.

 

I'm wondering if it's possible to include a new option in the modulecreator that allows users to select a memory address range for creating a BIN file much like what classic99 does.

Modulecreator is so much easier to use than classic99 in making the BIN files. 

A create tool for all TI users.

 

Thanks

Fred

 

 

  • Like 1
Link to comment
Share on other sites

24 minutes ago, rgjt said:

I'm wondering if it's possible to include a new option in the modulecreator that allows users to select a memory address range for creating a BIN file much like what classic99 does.

Modulecreator is so much easier to use than classic99 in making the BIN files. 

A create tool for all TI users.

 

 

The memory address ranges are read from the 6 byte header from the program files. When you create the E/A option 5 program file(s) you need an option to include the >2000 - >2700 range with some other SAVE utility.

 

How do you create MD, ME and MF?

Now you always have to binary edit MF to change the loader flag.

 

You could try my linking loader (LL) or even better the Editor/Assembler module V if it can be used with Classic99 with the build in linking loader and use save option: .S DSK1.PGM START END >2000 >2700

 

If you for instance use Dm2k version 3.4 to eXecute (original version of) the MD program then the MD program will crash because the LO-mem section of Dm2k 3.4 is different from the default. When you use an older version of Dm2k like 2.x and you eXecute MD then the MD program will run fine because the LO-mem section of Dm2k version 2.x is the same as the default.

 

Fred ;-)

  • Like 1
Link to comment
Share on other sites

Fred,

MD, ME and MF were created using the Editor Assembler that is included with Funnelweb 4.4 directly on my old TI99/4a that I bought back in 1983.

I actually wrote the program around 1986 or thereabouts when c99 was released and then put the TI away in 1988 as the PC took over in homes.
Now being retired, I resurrected the TI over the past winter just for curiosity and found out that I had to repair my Horizon ramdisk 3000 (only 192k version) as the batteries had leaked and corroded a number of components.

I am now trying to catch up with all of the new hardware and software utilities that have been developed over the past 40 years or so. I am amazed by this excellent forum as well as others regarding the continuing interest and development for the TI.

 

On the hardware side, I recently upgraded to a USB wireless keyboard (what an incredible functional upgrade) as well as the latest FG18A by Hans and of course the FinalGrom99.

 

I assembled the single MAIL;O OBJ file from the c99 release 4.0 compiled source file and then used the EA-3 to load these files in the following order:

C99PFI, MAIL;O, CSUP, CFIO, C99PFF, SAVE.

I then executed the SAVE program name to create the program images files MD, ME and MF.

The program MAIL uses several inline assembly routines, specially for flushing the record storage area in low memory, the search and sorting routines, and the file index routine for speed.

I have never tried the c99 optimizer to see how much faster the program would run. 

 

I will have to look further into your linking loader and your DM2K programs.

 

BTW, since I have the 3000 Horizon Ramdisk (1986, light green colour, SN 00596), I have no idea as to which ROS version it is using. Even the original diskettes and manual that came with it doesn't indicate the ROS version, only a date of 8/15/86 and source code version 4.0 by John Clucow and David Romer. That being said, I'm wondering if it's possible to upgrade the existing ROS using ROS842c or is the latest version only specific to the 4000 series.

More research to be done on it I suppose as I don't want to render my 3000 series into a paper weight.

 

Thanks for all of your help in finding a solution to my little problem.

Indeed, I will be keeping the MG file for future use.

 

Cheers

Roger

  • Like 1
Link to comment
Share on other sites

One note on your HRD, the date and the serial number tell me a lot about your card. It is a standard HRD, not an HRD3000. ROS842C "should" run in any HRD, although I don't think we've tested it in one with a serial number as low as yours. Your ROS looks like it is ROS4, again based on the data you've mentioned here. Note that there are a couple of important mods that need to be done on earlier cards to use any iteration of ROS8--once those mods are done (and yours may already have them, but it is good to check), any ROS8 version should work fine. I attached the change notices for you.

Horizon Change Notice.pdf

  • Like 2
Link to comment
Share on other sites

20 minutes ago, Ksarul said:

One note on your HRD, the date and the serial number tell me a lot about your card. It is a standard HRD, not an HRD3000. ROS842C "should" run in any HRD, although I don't think we've tested it in one with a serial number as low as yours. Your ROS looks like it is ROS4, again based on the data you've mentioned here. Note that there are a couple of important mods that need to be done on earlier cards to use any iteration of ROS8--once those mods are done (and yours may already have them, but it is good to check), any ROS8 version should work fine. I attached the change notices for you.

Horizon Change Notice.pdf 2.47 MB · 3 downloads

Well, that is interesting. I will surely take a closer look at my card to determine if it included the mods in order to be able to use the ROS version 8 series.

Maybe a photo of my card is required if I cannot determine if it has the necessary mods to it.

 

Thanks again Fred.

You have vast knowledge of the TI in both software and hardware. 

 

Cheers

Roger

Edited by rgjt
Forgot to include a comment
Link to comment
Share on other sites

15 minutes ago, rgjt said:

Well, that is interesting. I will surely take a closer look at my card to determine if it included the mods in order to be able to use the ROS version 8 series.

Maybe a photo of my card is required if I cannot determine if it has the necessary mods to it.

 

Thanks again Fred.

You have vast knowledge of the TI in both software and hardware. 

 

Cheers

Roger

 

Edited by rgjt
Link to comment
Share on other sites

5 minutes ago, rgjt said:

 

Looking at my hard, it has 2 red LED lights and it also doesn't have the DISABLE switch.

I suppose that puts it into the "early" card group that will require the recommended modifications in accordance the Change Notice PDF document.

BTW, for the YELOW or GREEN LED, what are the specifications for them?

 

Cheers

Roger

Link to comment
Share on other sites

The yellow or green LEDs have somewhat different voltage drops/response times/back voltage resistance than the red ones. We've also used orange or blue there to good effect. I have some pink ones somewhere that I still need to try out on one of my HRD4000B boards when I build the next batch of them. As long as the LED can tolerate 5V, you shouldn't have problems. We did some serious modifications to that circuit on the 4000B boards, as the whole concept of using the LED to drive one of the lines on the DSR RAM was iffy. The HRD4000B is much more stable than any prior HRD variant except possibly the SNUG HRD16.

  • Like 1
Link to comment
Share on other sites

13 hours ago, rgjt said:

I assembled the single MAIL;O OBJ file from the c99 release 4.0 compiled source file and then used the EA-3 to load these files in the following order:

C99PFI, MAIL;O, CSUP, CFIO, C99PFF, SAVE.

I then executed the SAVE program name to create the program images files MD, ME and MF.

 

 

The SAVE utility is not smart enough to know that the portion of LO-MEM is needed. I also found that out when writing DM2K. Bob Carmany pointed me to the right direction with this phenomenon. I think that that is the time I wrote LL (Linking Loader) so that I could tell the save option of LL what memory segments to save as one program. The LL program works best with an editor assembler module with an 8KB RAM build in and the LL program that is loaded at >6000. But as said before ... the better option these days; the LL program is also available in my Editor/Assembler module version V, this is much easier when using the finalGrom.

 

(maybe somebody wrote a save utility that does include the portion of LO-mem {after 40 years I think about this})

 

See https://www.ti99-geek.nl/Modules/edas5/edas5.html#edas_5

and https://www.ti99-geek.nl/Modules/finalgrom99/finalgrom99.html#fgrm

for the whole caboodle.

 

Fred ;-)

  • Like 1
Link to comment
Share on other sites

2 hours ago, atrax27407 said:

Somewhere in Bruce Harrison's Assembly tutorials, he explains how to create a "sandwich" containing the low memory utilities that can be included in your program. I'll see if I can find it this weekend. 

Thanks again Fred.

You have given me some home work. I will be trying the Editor/Assembler version V that is on the FinalGrom99 to reassemble the MD, ME and MF program using the built-in LL and see how that works in comparison to the "old" SAVE method to create the E/A Option 5 program file.

BTW, I finally found a version of Classic99 that works with my old XP SP3 computer. It was version 398. Any newer version would never load up including under Vista. 

I now need to figure out which method is the best to transfer files between the TI and the old XP computers using the factory TI RS232 card. I realize there's an update to modify the RS232 card that allows greater file and disk functionality, but at the moment I just want to try the factory RS232 card using either a serial or parallel cable according to some of the schematics that I've seen on the forums.

That said, I came across the CfHdxS1 version 2.0 on the ti99-geek.nl site that might allow me to use the factory RS232 card, but unfortunately, the link is broken as I get the following error:

Not Found

The requested URL /Projects/ti99hdx/Files/pgmhdx_v20.zip was not found on this server.

 

Regardless, it appears that I have a lot of catching up to do since I last used the TI back in 1987 or so.

Link to comment
Share on other sites

11 hours ago, Ksarul said:

The yellow or green LEDs have somewhat different voltage drops/response times/back voltage resistance than the red ones. We've also used orange or blue there to good effect. I have some pink ones somewhere that I still need to try out on one of my HRD4000B boards when I build the next batch of them. As long as the LED can tolerate 5V, you shouldn't have problems. We did some serious modifications to that circuit on the 4000B boards, as the whole concept of using the LED to drive one of the lines on the DSR RAM was iffy. The HRD4000B is much more stable than any prior HRD variant except possibly the SNUG HRD16.

I will go to the local electronics shop and see if they have any of the yellow, green, blue or orange LED that I can the top red LED in my early HRD. Another project on my TODO list.

Link to comment
Share on other sites

4 hours ago, rgjt said:

BTW, I finally found a version of Classic99 that works with my old XP SP3 computer. It was version 398. Any newer version would never load up including under Vista. 

I would have liked to know about that, since I specifically support XP.

 

(Edit) I've just tested here and the current version (399.043) works fine on XP SP3. You may have a problem on that machine - certainly nothing changed after 398 that would affect OS compatibility (on purpose, at least). 

 

Also, by 'found', I hope you mean in your own archives. If anyone is publishing old versions of Classic99 I can't speak for how safe those are!

 

 

Edited by Tursi
Link to comment
Share on other sites

20 minutes ago, Tursi said:

I would have liked to know about that, since I specifically support XP.

 

(Edit) I've just tested here and the current version (399.043) works fine on XP SP3. You may have a problem on that machine - certainly nothing changed after 398 that would affect OS compatibility (on purpose, at least). 

 

Also, by 'found', I hope you mean in your own archives. If anyone is publishing old versions of Classic99 I can't speak for how safe those are!

 

 

 

Link to comment
Share on other sites

This is the site where I found a list of all versions. 

https://www.theoldcomputer.com/emulators/index.php?folder=Texas-Instruments/TI-99-4A/WIN/Classic99

I started with the newest version and worked my way down the list until one worked, which happened to be the 398 version.

It's strange that I'm not able to get the 399.043 version working on my XP SP3 as it's a relatively simple setup with very few programs on it.

When the error screen appears, it's a generic Windows error message, .... send report to MS ......

I don't have that computer connected to the internet, so I am not concerned about "hacks".

I will try to reinstall 399.043 and see what happens since 398 is working.

Edited by rgjt
Forgot to include a comment
Link to comment
Share on other sites

4 hours ago, rgjt said:

I will go to the local electronics shop and see if they have any of the yellow, green, blue or orange LED that I can the top red LED in my early HRD. Another project on my TODO list.

No luck finding LED at my local shop.

I went on DIGI-KEY and found these, 8.6 mm high all having 5v for the reverse voltage.

Color    Forward Volts    DigiKey PN

blue        3.5               67-1751-ND

red         2.25              67-1102-ND

yellow     2.1                67-1116-ND

amber     2.0               67-1097-ND

green      2.2               67-1098-ND

Which one would you suggest excluding the RED one?
 

 

 

Link to comment
Share on other sites

4 hours ago, Tursi said:

Also, by 'found', I hope you mean in your own archives. If anyone is publishing old versions of Classic99 I can't speak for how safe those are!

This is true.  I ran an older version the other day and it beat me up and stole my car.

Edited by OLD CS1
Not trying to start shit.
Link to comment
Share on other sites

14 minutes ago, Ksarul said:

I would suggest trying anything else except that blue one, as the forward voltage there is a bit high, with amber being the best choice.


It's a good thing I asked because I would have used the blue LED. 

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...