-
Content Count
2,108 -
Joined
-
Last visited
-
Days Won
3
Content Type
Profiles
Member Map
Forums
Blogs
Gallery
Calendar
Store
Everything posted by acadiel
-
Nice! So it's a linker that really loads and runs the GPL. Is it actually translating once you link it? Or is the stub (I noticed the 1 sector file) actually the part that intercepts and translates? Is this also how that XB "GPL Simulator" worked? I remember eons ago how Jim Lesher had given me this "translate to GPL" disk called DUMPIT. It had detailed instructions on BUGOUT on how to use the cartridge expander to dump GROM only carts and then sector edit something in them, tack on this XB loader (or load in E/A5 and voila - it would load it to 32K. I think the limit was 4 GROMs, I remember seeing something about Tunnels of Doom not working since it was 5 (30K). &GROM^MODULE^DUMP^PROCEDURE. . . Put Bugout, the Editor/Assembler Save utility, Disko and the two loaders on one disk. Insert the module to be dumped and the Editor/Assembler in a widget.. . .NF. Load Bugout. . E/A #3 - DSK1.BUGOUTO. . Switch to the module to be dumped and check the grom addresses.. . MG>6000 GROM ADDRESSES 1 - >6000-7800 2 - >8000-9800 3 - >A000-B800. 4 - >C000-D800. 5 - >E000-F800. . Transfer the chip to be dumped to high memory.. . TR.G6000.E000.6144 Note: 6144 = 6K. . Load the Save utility.. . LO Enter - DSK1.SAVE. . Change the load pointers for the Save utility.. . MEC>2CA4 New Value Address for 2CC4 SLOAD - 2CC4 - A000 Chip 1 - A000 - 87FF SFIRST - 2CCC - E000 Chip 2 - B800 - CFFF SLAST - 2CD0 - F7FF Chip 3 - D000 - E7FF Chip 4 - E800 - F7FF. . Run the Save utility.. . EX.SAVE Enter - Type DSK2.NAME2. . Switch to the Disk Manager and copy a load program to the dump disk as NAME1. If the module has more than one chip you must use the Disko program to change the first two bytes of the dumped chips to FFFE except for the last chip. The first area of each dump should look like:. . 00001805A000AA01 ect. Disko changes a sector by pressing fctn 8. . Do a seperate dump for each chip.. . Run the program with E/A #5. If it doesn't work, try a diferrent loader.. ...................... SUPPLEMENT TO MODULE GROM-DUMP PROCEDURE *STEP 1* Place the following all on one disk: -BUGOUTO -DISKO -YLOAD -LOADER/A -LOADER/B -SAVE . *STEP 2* Install Navarone's Cartridge Expander ("widget") into computer console with the following: -Editor/Assembler cartridge -cartridge to be dumped -Disk Manager cartridge (or Extended Basic if using another disk manager such as DM1000) . *STEP 3* Select Editor/Assembler with slide switch on widget. Turn computer on. When the main screen shows on monitor, press any key to get to the option screen. Press <2> to select Editor/Assembler. When the option screen appears for Editor/Assembler, press <3> for "LOAD AND RUN". The screen then shows: * LOAD AND RUN * FILE NAME? Make sure the disk you made above is in disk drive 1, then type in the following: DSK1.BUGOUTO Then press <ENTER>. The computer then proceeds to load "BUGOUTO" from your disk in drive 1. The screen now shows the following: THE BUGOUT MACHINE LANGUAGE MONITOR COPYRIGHT 1984 BY GREGG WONDERLY 3.0 PRESS <ENTER> TO START MONITOR Now select the cartridge you want to dump by sliding the switch on the widget to the spot that corresponds to the place on the widget where that cartridge is installed. Then press <ENTER>. .. You will then see the following on the screen: 0000=83E0 0024 83C0 0900 $ 0008=83C0 0A92 30AA 0460 C 0 \ 0010=02B2 0008 1E00 0460 \ 0018=007A 1E00 0460 0078 Z \X 0020=0460 04B2 020D 9800 \ 0028=020E 0100 020F 8C02 0030=0200 0020 1013 1000 0038=1E00 02E0 280A 0380 <C >0000 C @>0024,R15 >0004 C R0,R15 >0006 SRL R0,0 >0008 C R0,R15 >000A SLA R2,9 >000C LDCR @>0460(R10),2 >0010 DATA >0252 >0012 DATA >0008 >0014 SBZ >0000 At this point, we are now about to check to see which of 5 possible chips in the cartridge are installed with programming that must be dumped. Type in: MG>6000 Press <ENTER> The top section of the screen will be changed. Below is an example of what will be displayed: 6000G=AA01 0100 0000 6010 \ 6008G=0000 0000 0000 0000 6010G=0000 601F 0A45 4152 \DcEAR 6018G=4C59 204C 524E 4739 LY LRNG9 6020G=0007 018D 4786 7486 G T 6028G=7ABE 737E 3100 38A7 Z S~1 8 6030G=8097 8DBE A300 D006 6038G=6A6C 066B D108 5F20 JL K _ The "MG>6000" still remains at bottom of screen. The new information displayed in the above example indicates that chip 1 has programming to be dumped. Now type in: MG>8000 Press <ENTER> The top section of the screen will again be changed. Similar information may then be displayed. If so, then we would know that chip 2 must also be dumped. We likewise proceed with chips 3, 4, and 5. *WHEN CHECKING CHIP NUMBER* *TYPE IN* 1 MG>6000 2 MG>8000 *NOTE: These grom addresses 3 MG>A000 are in hexadecimal, so 4 MG>C000 "0" is zero, not the 5 MG>E000 letter "O". .. If any of the chips is either empty or nonexistent, you would get a lot of zeros on the screen. An example is given below where chip 3 was checked and no information was found to be present. A000G=0000 0000 0000 0000 A008G=0000 0000 0000 0000 A010G=0000 0000 0000 0000 A018G=0000 0000 0000 0000 A020G=0000 0000 0000 0000 A028G=0000 0000 0000 0000 A030G=0000 0000 0000 0000 A038G=0000 0000 0000 0000 These zeros indicate that we do not need to attempt to dump this chip. You must check all five possible chips, even if you come to one which has no information on it, since a subsequent chip may be found to have information on it. WE ONLY DUMP THOSE CHIPS THAT WE FIND HAVE SOMETHING ON THEM. In addition to checking the 5 GROM chips you must also check to see. if the cartridge being dumped has a ROM chip in use.. . Type in: ME>6000. . If you see anything other than zeros as in the above example, a ROM chip. is in use. If a ROM chip is being used you CANNOT dump the cartridge to. disc with this program.. *STEP 4* This step involves the dumping of each chip, one at a time, to disk. (1) First, transfer the chip to "high" memory. This is done by first typing in the expression listed below for the particular chip being dumped. *CHIP BEING DUMPED* *WHAT TO TYPE IN* NOTE: Again, the 1 TR.G6000.E000.6144 "0" is the 2 TR.G8000.E000.6144 number "zero", 3 TR.GA000.E000.6144 not the 4 TR.GC000.E000.6144 letter "O". 5 TR.GE000.E000.6144 So, if Chip 1 is being dumped, just type in: TR.G6000.E000.6144 Next, press <ENTER>. The computer then copies the information (from whatever chip is being dumped) to "high" memory. (Note that the screen appears unchanged.) (2) Press the <FCTN> key and the number <3> key at the same time. This erases the last line you typed in. (3) The SAVE utility must now be loaded. Make sure that the disk you started with is still in drive 1. Then, type in: LO Then, press <ENTER>. The computer then shows the following : ENTER DEVICE.FILENAME Type in: DSK1.SAVE Then, press <ENTER>. The computer now loads the SAVE utility from your disk. .. (4) Next, the "load pointers" for the SAVE utility must be entered. These pointers vary for each chip dumped. First, type in: MEC>2CA4 Then, press <ENTER>. The following is then shown on the screen: 2CA4=286E 16FA C203 0648 (N H 2CAC=0204 2B32 60C4 C103 +2\ 2CB4=0603 0283 0003 11D4 2CBC=06C3 D803 2B31 0206 +1 2CC4=0000 C806 2BD4 0206 + 2CCC=0000 0207 0000 61C6 A 2CD4=115B C087 0287 1FFA [ [ 2CDC=1102 0202 1FFA C282 [ >0000 C @>0024,R15 >0004 C R0,R15 >0006 SRL R0,0 >0008 C R0,R15 >000A SLA R2,9 >000C LDCR @>0460(R10),2 >0010 DATA >02B2 >0012 DATA >0008 >0014 SBZ >0000 -->MEC>2CA4 There are 3 separate sets of "0000"; the first set of "0000" is found at the blinking cursor. The second "0000" is directly below the first. The third "0000" is located to the right of the second "0000" and is separated from the second "0000" by "0207". Note where these 3 sets of "0000" are; you must change each of them as indicated in the following chart: CHIP BEING DUMPED: 1 2 3 4 NEW VALUE FOR FIRST "0000": A000 B800 D000 E800 NEW VALUE FOR SECOND "0000": E000 E000 E000 E000 NEW VALUE FOR THIRD "0000": F7FF F7FF F7FF F7FF Change the first "0000" now by typing in the "new value for first '0000'" from the chart above. The cursor will then be over the "C" of the "C806" found to the right of the first "0000", but the first "0000" has been changed to whatever value you just typed in. Then, press the <FCTN> key and the <E> key at the same time (but just press them once and do NOT hold them down). This will move the cursor to the second "0000". (If you press these two keys more than once or hold them down too long, the cursor will pass the second "0000". If you do so accidentally, you can move the cursor back up to the second "0000" by pressing the <FCTN> key and the <X> key at the same time as necessary.) .. Now that the cursor is at the second "0000", change it by typing in the following: E000 The cursor will now be flashing over the "0" of the "0207" which is to the right of the second "0000" (which you just changed to "E000"). Move the cursor to the third "0000" by pressing the <FCTN> key and the <D> key four times, or just until the cursor is directly over the first "0" in this last set of "0000". Now change this "0000" by typing in: F7FF Then, press <ENTER>. The cursor is now over the "M" of "MEC>2CA4". Erase the "MEC>2CA4" by pressing the <FCTN> key and the <3> key at the same time. (5) Now, all is ready to dump the selected chip. To do so, the SAVE utility must be run. Do so as follows: Type in: EX.SAVE Then, press <ENTER>. The screen changes to the following: SAVE M EMORY IMAGE 1. PROGRAM TO BE SAVED MUST ALREADY BE LOADED. 2. THE FIRST WORD IN THE PROGRAM MUST BE EXECUTABLE. 3. PROGRAMS WHICH ARE BIGGER THAN 8K WILL CREATE NEW FILE NAMES BY ADDING A ONE TO THE LAST BYTE OF THE CURRENT FILE NAME. CURRENT FILE : STATUS: ENTER FILE NAM E? -->EX.SAVE Before proceeding from here, choose a file name for the cartridge being dumped. For example, if the cartridge is called "Cartridge", you might abbreviate it to "CART" when choosing a file name. But each chip dumped for the cartridge must have identical file names except for the last digit, which must be a number. See the following chart for an EXAMPLE. (Note that the first chip dumped ends in a "2".) .. *CHIP DUMPED* *FILE NAME TO BE TYPED IN* First DSK1.CART2 Second (if any) DSK1.CART3 Third (if any) DSK1.CART4 Fourth (if any) DSK1.CART5 Type in the file name you chose as exemplified in the above chart. Then, press <ENTER>. The computer saves the file to disk. After it does so, the computer may freeze up (e.g. the screen may go haywire and you might hear a long single tone coming from your monitor or TV). Press the reset button on the "widget" or turn the console off then on. Repeat steps (1) through (5) until all the chips have been similarly saved to disk. *STEP 6* This step involves making a small correction in each "dumped chip" except for the last one you dumped to disk. (If only one chip had to be dumped, then no changes need to be made.) Each "dumped chip" is a separate file; the corrections you make in these files enable the computer to link them when you eventually try to run them. Each file is made up of sectors; it is the first sector of each file that you are concerned with. (1) To first find these sectors and then edit them, you will need to load the "DISKO" program. Press the reset button on the "widget". Your selector switch on the "widget" should still be at the position for the Editor/Assembler. Press any key to get to the selection screen. Then, press <2> to select Editor/Assembler. Then, when the Editor/Assembler option screen appears, press <3> for "LOAD AND RUN". The screen then shows: * LOAD AND RUN * FILE NAME? Remember, here the "O" in "DISKO" is the letter "O". Type in: DSK1.DISKO Then, press <ENTER>. The computer then loads the program from your disk in drive 1. .. The screen then shows: * LOAD AND RUN * FILE NAME? Press <ENTER>. The screen then shows: * LOAD AND RUN * FILE NAME? PROGRAM NAME? Type in: DSK Then, press <ENTER>. The screen then shows: 1. DISK SECTOR EDITOR 2. SEARCH FOR EXISTING FILE THIS VERSION OF "DISKO" WILL HANDLE DOUBLE-SIDED, DOUBLE-DENSITY DISKS. (2) Now you are ready to find where the first sector of each file is. Again, you need only to find the first sectors for all files except for the last one (which represents the last chip dumped). Press <2>. The screen then shows: DRIVE NUMBER: 1 If your disk (which contains the dumped-chip files) is still in drive 1, just press <ENTER>. (Otherwise, press the number that corresponds to which drive your disk is in.) The screen then shows: DRIVE NUMBER: 1 FILE TO BE FOUND? Now type in the file name for the first chip you dumped, but without the "DSK1." part of it. (For example: CART2 ) Then, press <ENTER>. .. The screen then shows something like this: DRIVE NUMBER: 1 FILE TO BE FOUND? CART2 (or the name of your file) FILE HEADER AT SECTOR 00B FILE TYPE: PROGRAM RECORD TYPE: FIXED WRITE PROTECTED: NO START SEC END SEC FILE OFFS 10F 127 018 It is the (hexadecimal) number found under "START SEC" that tells you which sector is the first sector for the file you are looking for. Write this number down. Press the <FCTN> key and the <9> key at the same time. The screen again shows: 1. DISK SECTOR EDITOR 2. SEARCH FOR EXISTING FILE [etc.] (3) Now you are ready to edit this sector you found. Press <1>. The screen then shows: DISK EDITOR UTILITY DRIVE NUMBER: 1 If your disk is in drive 1, just press <ENTER>. (Otherwise, press the number that corresponds to which drive your disk is in.) The screen then shows: DISK EDITOR UTILITY DRIVE NUMBER: 1 SECTOR NUMBER: Type in the (hexadecimal) number you wrote down. (Remember that the "0" here, if any, is a "zero" and is not the letter "O".) Then, press <ENTER>. .. The screen then shows something like this: HEX 10F 00001805A000AA01010000006010 0000000000000000000060261142 5544474554204D414E4147454D45 4E54BE3103BE3304BE3507BE3708 390002038F3BBEA300D0BF4A0400 0600183436A380A37FBFA382FFFF 3034A32294AF310010A5D88F4534 36A5E8A850BEA310FC0684A5FF35 0100A600AA00BEA318153430A319 A318310020A7008F55BFA31C159C BEA748FF3434A749A74807340405 0881B4C25B8083FB6098FB066183 0190014A01F4020C00F201C8011A 021C020401D800A2008E010600D6 08C603E8E8E9E9FB60C081FB0661 9C06947F0682E1D67DE460E5BDE0 400EE0200EBDE0200EB00ED67F1C 40CE35001EEFFFE40EEFFFC40ECA 7E074101 The top line shows "HEX" and the sector number you typed in. Below that is a block of hexadecimal numbers. The top line in that block of numbers starts with "0000", the first "0" of which is underlined in red. This "0000" must be changed. First, press the <FCTN> key and the <1> key at the same time. Then, type in: FFFE The "0000" will have changed on the screen to "FFFE", and the red underline will be under the number to the right of the "E" of this "FFFE". Press the <FCTN> key and the <8> key at the same time. A new line appears at the bottom of the screen. It says: REWRITE THE SECTOR (Y/N)? Press the <Y> key. The computer then accesses the disk drive and changes that sector the way you changed it on the screen. Press the <FCTN> key and the <9> key at the same time to get back to the previous screen. Repeat steps (2) and (3) until all of the files have been likewise changed (except for the file which represents the last chip dumped). When done, press the <FCTN> key and the <=> key at the same time to leave this "DISKO" program. .. *STEP 7* Select the Disk Manager cartridge (or Extended Basic, if using DM1000). with the widget. Look up the directions that accompany the disk manager for changing the name of a file from one name to another. Change the name of "LOADER/B" to the file name you first selected for you dumped chips, but change it so that the name ends in the number "1". For example, if your dumped files were CART2, CART3, etc, then rename LOADER/B so that its new name is "CART1". *STEP 8* This is the LAST step. This step involves typing in a short Extended Basic program and then saving it to your disk. The program should be typed in as follows below, except that you must substitute the new name for LOADER/B (that you made in STEP 7) for the "CART1" in line 20. 10 CALL INIT :: FOR X=1 TO 4 :: CALL LOAD(-6144*X,0):: N EXT X 20 CALL LOAD("DSK1.YLOAD"):: CALL LINK("LOAD","DSK1.CART 1") Note that, in line 10, the "0" (that is in the parentheses after "CALL LOAD") is the number "zero" and not the letter "O". Save this program to your disk by typing in: SAVE DSK1.LOAD then press <ENTER>. The program will now automatically load in Extended Basic. Please note that I have never been able to successfully dump and then run a cartridge that has more than 4 chips. Also, some other cartridges will not run properly. Good luck in your endeavors.... ...................... This is actually pretty cool stuff. I'll have to watch more of your GPL videos.. thanks for doing those! DUMPIT.DSK.zip
-
You think that's bad? Look at the people making Amiga DB23 female plugs by hacking off two pins of a DB25. Now, that is a hack!
-
I for one would also like to know how GROM was converted to assembly/memory image :-)
-
Ok, my mind is blown. How was this done? :-)
-
This is a project I have been noodling for a while, mostly for the idea of prototyping using a cartridge type board instead of the side car. Just wondering if anyone would actually use it or not. Premise: bring the 13 missing pins on the side port to a cartridge port device with a small ribbon cable. The side port would be a simple male to female connector, probably 4" or so long, with a 14 pin header on it. A small female to female header (only long enough to reach the modified cart board) would be installed on it. The modified cart board could likely latch onto these 13 extra signals (plus a ground) as well as all the extra signals that are cart port only (think the GROM and ROMG* signals) Likely use of this could be prototype of new sidecar equipment, DSR devices, or anything that needs the there address lines which will now be there. Jumpers would be available on the board, and I have thoughts for a ROM only version right now. I could make jumpers to where a certain part of the EEPROM could take over the DSR >4000 space, for example. So, here's what would be brought over: SBE AudioIn Reset* Extint* Ready Load* Phi3* Mbe* Memen^ IAQ A0 A1 A2 GND Anyone interested in me even spending the time on it, can think of any use cases for it, etc? Just think how much more control and fun we could have with those extra signals :-)
-
Really? Parsec too? Cool! Didn't know so many of them were made into EA/5 executables. I'm sure we can shoehorn the GROM only ones in there too with that "GPL simulator".
-
My nanoPEB isn't that way. Strange. I did get the actual part number used by him for the 44 pin female connector.
-
I see some GROM carts in there.... I'm assuming this is coupled with the ATMega? Or, I suppose we can use the "GPL simulator" for those non EA5 converted carts. (How did those Atari carts get converted to EA/5 anyway?)
-
Yes, non inverted. But for all intents and purposes, if it's powering up in the last bank, we just need to adjust for that bank as well. A protection would to be to put the main program in the first and last banks like you mentioned. With 512K, hogging another 8K should not be an issue. That way, we don't have to distribute two rom images, one for the each powerup scenario.
-
Or in the case of a 74LS378 that I have in my possession, the inverted one works... both are TI ones, too. Glad the only two cases I have found are either last or first bank, and nothing so far has powered up inbetween.
-
I will try and burn this here shortly. I just identified two 74LS378s in my collection with different power up states, one in the first and one in the last bank. Thanks to Atrax for confirming it....
-
Thanks for doing that... I tried once, but was too busy with wife being sick, kid's birthday, etc. it's getting harder to find hobby time!
-
Yep. Those could be quite easy to make in ExpressPCB. Just like a double sided set of cartridge fingers. <grin> Speaking of which... I want to make a cartridge connector on the side port one day. Just need to know which buffer chips I need. Also want another female "finger" on this connector to bring forth the signals that aren't normally on a cart port (i.e. address lines) so I could make one off boards that might be able to address DSR memory, etc.
-
Here are the multicart binaries (both the diagnostic bank test and the MultiCart image). I'm trying to burn the EPROM forward and backwards you sent, Gazoo. Also, can't get either the forward or backwards one to show a menu item. Either my cart board socket is frizzing out again, or it's booting up in a non standard bank. Anyone care to put together a 8K bank test program that reports which one of the 64 banks the sucker booted into? Maybe adapt Tursi's one below... :-) (I guess I can... but trying to keep tabs on the wife today, since she had to go to the ER last night. So it'll be a while.) Tursi Multicart.zip banktest.zip
-
Sure, I can send you the one I have. What are you thinking about to fix it? The MultiCart exe has to switch the bank to where the program shows up on the menu selection screen, and that bank won't default back to bank 0 until the system is shut down.
-
Bump :-)
-
Most everything I've done has been >A000. I think it was in the actual PROGRAM file header. (It's been too long.) Ah, the carts - yes, because they were expecting to be at >6000. What did you have to do special?
-
:-) Actually, it does come up in the first bank from a cold start. Unless it's switched to another one and the system is reset. (i.e. power was not removed). If the ATMega is on board, I see no reason why we can't have it flip the initial ROM bank to >6000 (1st bank). But without the circuitry, it's either 1) A cold start 2) Something writing back to >6000 to switch it back to the first bank after the program is copied, but before you do a B @>A000 to start it. (This might help instead of having to tweak every program. Could the loader just write to >6000 to go back before it branches?) I'll try burning a copy this weekend and let you know how it works; thanks, Tony!
-
Rich, I'm not sure how Gazoo is setting his up (with BASIC, etc). I was only sharing the two things Tursi and I have done so far which work for our use cases, which were an 8K multicart and a Fred Dm2k/du2k/cf2k cart.
-
3D Printed Objects/Cases & Carts for the TI
acadiel replied to Omega-TI's topic in TI-99/4A Computers
That's the second gen Ubergrom board. I need to look at the P/N on the bottom to see what rev it is again. And, if we want to make a copy of this, it has its own sets of minor issues... scratches, dents, etc, from me removing the filler material, you name it. I'd get a high quality copy made at Shapeways or some other vendor and then use that. I only had one small issue with one of the cartridge offsets on the bottom; I need to check my 3D model to make sure it wasn't my fault. However, an Exacto knife fixed it in quick order. I'm also mulling just leaving the screw holes undrilled so we can just drill a hole ourselves if we make a mold. Thoughts? -
AFAIK, once the bank is written to to be selected, it usually stays put there even through Function Quit. Two different ways of looking at this: 1) On my copy to RAM cart (DM2K, CF2K, DU2K), the program selected is copied, and then execution starts at >A000. When you reset, no matter which bank you land in, all the banks still have the same header, so you can select anything you want, and it's copied and run. Typically, from a cold start, the first bank to come up on the 512K cart is bank 0 (the first one). I have never see another bank come up, but anything's possible since the 74LS378 does not have a defined power up state. (Tursi has reminded me of this fact several times. <grin>) 2) On Tursi's Multicart, which is just 8K games (none are 16K ones), the system powers up in the first bank (0) and gives you the PRESS 2 FOR MULTICART option. You press this, find your game, select it, and the console resets with that game's bank active. You have to physically power down the console and power it back up; the bank persists through Function Quits. It really depends on the last bank you wind up in and what header is in that bank after you finish the copy to RAM and execute the >A000 to get the program to start if using Copy to 32K programs. If you copy a three-bank program (say banks >6002, >6004, and >6006), and you finish up in >6006, and it doesn't have a header, when you reset the console you will just get TI BASIC until you turn the console off and back on. Does that help?
-
Yep, I got my memory map from there (and the user manual). I've been through just about that whole document.
-
3D Printed Objects/Cases & Carts for the TI
acadiel replied to Omega-TI's topic in TI-99/4A Computers
-
3D Printed Objects/Cases & Carts for the TI
acadiel replied to Omega-TI's topic in TI-99/4A Computers
New cartridge and shell running Tursi's 512K bankswitching test program. -
3D Printed Objects/Cases & Carts for the TI
acadiel replied to Omega-TI's topic in TI-99/4A Computers
Will tear the support material out a little later.... (I hate doing that.)
