-
Content Count
2,104 -
Joined
-
Last visited
-
Days Won
3
Content Type
Profiles
Member Map
Forums
Blogs
Gallery
Calendar
Store
Everything posted by acadiel
-
I'd like to eventually see the cart board to morph in a version of a super Gram Kracker... or have a new piece of hardware that would: 1) Be in a standard cart case 2) Support multiple GROM bases and up to at least 128K of bank switched ROM (inverted/noninverted switchable) per "cartridge" 3) Have a selectable built in menu, that'll read files from a pre-built index off of a micro SD card (you'd have a program on the PC/Mac that would take the ROM/GROM images, put them in a particular place in flash, and update the index) 4) Have some RAM (like the Super carts, MBX carts, etc.) Just for kicks and grins, I wonder how much PLD work would be needed to reconstruct the old Gram Kracker, PGram, or Gramulator.
-
Our own super, maga, wonder, ultra cart board thing...
acadiel replied to matthew180's topic in TI-99/4A Development
I'd like to see Matthew's 74LS379 GAL replacement on the V6 cart board... that'd be awesome bank switching that whole 512K ROM. :-) A good combination of both the PLD and PICs are going to bring quite a bit of diversity and innovation to our little old computer. -
Our own super, maga, wonder, ultra cart board thing...
acadiel replied to matthew180's topic in TI-99/4A Development
Wow, that is a nice looking board! Can't wait to see it working. What do you think to cost on that thing will be fully populated? Matthew Not sure yet. I just got the first prototype from Ksarul, and I'm checking out the ROM functionality to make sure it works. Ksarul has thousands of the flash ROMs and sockets. The 74LS379 might be able to be replaced by your GAL to fully handle 512K. (I encourage you to e-mail him! He'll likely try and adapt the board!) I haven't even looked at how much the ATMega chips are yet. That part would need to be tested and made to work as well; since it's still a prototype, all we have is a board right now... :-) -
Our own super, maga, wonder, ultra cart board thing...
acadiel replied to matthew180's topic in TI-99/4A Development
You can thank Ksarul for all the reflowing of traces, changing the ROM socket to a more modern non DIP type, and putting in the ATMega logic on the board. Tursi's going to play with the ATMega and see if we can get it to work with GROM. Not sure what Ksarul and Tursi's plans are for the ATmega part, other than it will handle all the GROM stuff. The 512K chip will handle ROM (actually, it's 128K bank switched, with two hard switches, because of limitations on the 74LS379.) The 512K part does expect a 512K chip; there are no jumpers (those chips are very cheap and plentiful, and Ksarul has thousands of them). So, for a 32K program, just program it in the four bank sets (in the 128K segment that you have selected with the hard switches) one of the sets will work. It'll be a nice combo board... the ROM flash is easily reprogrammable, and Ksarul and Tursi have jumpers for the debug on the ATMega. Everything is through hole too, which is a bonus for people like me who hate SMD stuff. Jon -
Wow again... Matthew, I am impressed! You and Tursi should work on the GROM emulation. We have that combo V6 board - the 512K ROM works with the 74LS379 (I have lots of those still around), banking it with 128K and two hard switches (the four data line limitation). The ATMega is what Tursi and Ksarul are going to use for GROM emulation. Of course, the V6 is a prototype, and it looks like you're on your way to making a V7 already! I can't wait!!! Awesome!!!! Keep up the GREAT work!
-
Wow... awesome.... just, awesome.... I'm glad we're getting so many new hardware hackers in this space.... wow....
-
Our own super, maga, wonder, ultra cart board thing...
acadiel replied to matthew180's topic in TI-99/4A Development
There's something in the works. It's based on my original design, and there are two fine gentlemen enhancing it. I'm not stealing their thunder, because it's still in prototype mode, and hasn't even been tried yet. :-) I'll show ya the circuit board, but I'm not commenting any further than I'm going to solder the ROM socket on it, and try out the ROM part of it to make sure it works. -
I can't wait to see this game!!!
-
Here's the final copy... we had to load the workspace pointers to get everything to work properly. Thanks again, Tursi! Attached is the 128K EPROM image of Fred's carts... DM2K, DU2K, CF2K. Will work in Classic99, a hacked 64K Cart board, or a prototype 128K board. * THREE PROGRAM HEADER FOR 128K BANKED * SWITCHED CART DEF SFIRST,SLAST,SLOAD UNL * ROM HEADER AORG >6000 SFIRST EQU $ SLOAD EQU $ GRMHDR BYTE >AA,1,1,0,0,0 DATA PROG3 BYTE 0,0,0,0,0,0,0,0 PROG3 DATA PROG2 DATA DU2K BYTE 8 TEXT 'DU2K 2.0' EVEN PROG2 DATA PROG DATA DM2K BYTE 8 TEXT 'DM2K 2.4' EVEN PROG DATA 0 DATA CF2K BYTE 8 TEXT 'CF2K 1.4' EVEN *************** * Copy Data for Modules * * Format is: * First, the address to load for the first source bank. * Number of 32-bit words, source address, target address * To end list, provide a start address greater than >8000 * (This means you can't start in the low RAM bank) *************** CF2KDT DATA >6000 DATA >076A,>6258,>A000,>076A,>6258,>BDA8 DATA >076A,>6258,>DB50,>04C0,>6D00,>2000 DATA >A000 DM2KDT DATA >6008 DATA >072A,>6358,>A000,>072A,>6358,>BCA8 DATA >072A,>6358,>D950,>0300,>7400,>2000 DATA >A000 DU2KDT DATA >6010 DATA >0794,>61B0,>A000,>0794,>61B0,>BE50 DATA >0794,>61B0,>DCA0,>0400,>7000,>2000 DATA >A000 *************** * CF2K Module * *************** CF2K LWPI >8300 LI R14,CF2KDT * address of copy table JMP COPYLP *************** * DM2K Module * *************** DM2K LWPI >8300 LI R14,DM2KDT * address of copy table JMP COPYLP *************** * DU2K Module * *************** DU2K LWPI >8300 LI R14,DU2KDT * address of copy table JMP COPYLP *************** * Common Code * *************** COPYLP BL @GOGO * Set up Char Sets MOV *R14+,R7 * get bank ONEBLK MOV *R14+,R4 * Get bytes divided by 4 JGT CONT * Branch if positive (less than >8000) B *R4 * Else it's the jump address, so start the program CONT MOV *R14+,R9 * Address to copy from MOV *R14+,R10 * Address to copy to BL @COPYME * COPY IT! INCT R7 * Next Bank JMP ONEBLK **************** * Copy Routine * **************** * R4 - Bytes Div 4 * R7 - Bank switch address * R9 - Address to copy from * R10 - Address to copy to * R11 - Return spot COPYME MOV R0,*R7 * Do the bank switch LOOPIT MOV *R9+,*R10+ MOV *R9+,*R10+ DEC R4 JNE LOOPIT B *R11 * We're done. **************************** * Load lower case charsets * **************************** * Note, if you still need space, you can remove support for the * 99/4 by deleting the code marked between * +++ 99/4 support +++ begin/end * blocks GOGO MOV R11,R9 * Save our return spot * +++ 99/4 support begin +++ * load R3 with 6 for 99/4, or 7 for 99/4A CLR R0 BL @GPLSET BL @GETGPL * read GROM >0000 LI R3,7 CI R0,>AA01 * 99/4 is AA01, all versions of 99/4A seem to be AA02 (even 2.2!) JNE IS4A * note we also assume unknown is 99/4A just to be safe DEC R3 * make a copy of the capitals for the 99/4 to 'support' lowercase * this will be partially overwritten by the main set, but it works! LI R0,>0018 * GPL vector address LI R1,>4A00 * dest in VDP - must OR with >4000 for write LI R2,>0040 * how many chars BL @GPLVDP * this function goes somewhere later in your ROM JMP MNSET * +++ 99/4 support end +++ * If you delete the above block, replace with * LI R3,7 * so that the character size counter is still valid IS4A * 'lowercase' letters LI R0,>004A * GPL vector address (not available for 99/4) LI R1,>4B00 * dest in VDP - must OR with >4000 for write LI R2,>001F * how many chars BL @GPLVDP * this function goes somewhere later in your ROM * main set MNSET LI R0,>0018 * GPL vector address LI R1,>4900 * dest in VDP - must OR with >4000 for write LI R2,>0040 * how many chars BL @GPLVDP * this function goes somewhere later in your ROM B *R9 * RETURN TO CALLER ***************** * GROM routines * ***************** * Set GROM address GPLSET MOVB R0,@>9C02 SWPB R0 MOVB R0,@>9C02 B *R11 * Get a word from GPL GETGPL MOVB @>9800,R0 SWPB R0 MOVB @>9800,R0 SWPB R0 B *R11 * Copy R2 characters from a GPL copy function vectored at * R0 to VDP R1. GPL vector must be a B or BR and * the first actual instruction must be a DEST with an * immediate operand. Set R3 to 6 for 99/4 (6 byte characters) * or 7 for a 99/4A (7 byte characters) GPLVDP MOV R11,R10 * save return address BL @GPLSET * set GROM address BL @GETGPL * Get branch instruction (not verified!) ANDI R0,>1FFF * mask out instruction part AI R0,3 * skip instruction and destination BL @GPLSET * set new GROM address BL @GETGPL * get actual address of the table BL @GPLSET * and set that GROM address - GROM is now ready! SWPB R1 * assume VDP is already prepared for write to save space MOVB R1,@>8C02 SWPB R1 MOVB R1,@>8C02 * VDP is now ready! CLR R0 LP8 MOVB R0,@>8C00 * pad the top of the char with a space MOV R3,R0 * then copy 7 (or 6) bytes * +++ 99/4 support begin +++ CI R3,6 * check for 99/4 JNE LP9 MOVB R0,@>8C00 * extra blank line for 99/4 * +++ 99/4 support end +++ * no changes needed if this block removed LP9 MOVB @>9800,@>8C00 * copy a byte (both sides autoincrement) DEC R0 JNE LP9 DEC R2 * next character JNE LP8 B *R10 FINISH EQU $ SLAST END fredcarts.bin
-
Haven't had a chance to look at your code yet, but I have two now.. Tursi graciously wrote some as well, and like you, used DATA statements... * THREE PROGRAM HEADER FOR 64K BANKED * SWITCHED CART DEF SFIRST,SLAST,SLOAD UNL * ROM HEADER AORG >6000 SFIRST EQU $ SLOAD EQU $ GRMHDR BYTE >AA,1,1,0,0,0 DATA PROG BYTE 0,0,0,0,0,0,0,0 PROG DATA PROG2 DATA CF2K BYTE 8 TEXT 'CF2K 1.4' EVEN PROG2 DATA 0 DATA DM2K BYTE 8 TEXT 'DM2K 1.4' EVEN MINIT EQU $ LWPI >8300 *************** * Copy Data for Modules * * Format is: * First, the address to load for the first source bank. * Number of 32-bit words, source address, target address * To end list, provide a start address greater than >8000 * (This means you can't start in the low RAM bank) *************** CF2KDAT DATA >6000 DATA >076A,>6258,>A000,>076A,>6258,>BDA8 DATA >076A,>6258,>DB50,>04C0,>6D00,>2000 DATA >A000 DM2KDAT DATA >6008 DATA >072A,>6358,>A000,>072A,>6358,>BCA8 DATA >072A,>6358,>D950,>072A,>7400,>2000 DATA >A000 *************** * CF2K Module * *************** CF2K LI R14,CF2KDAT * address of copy table JMP COPYLP *************** * DM2K Module * *************** DM2K LI R14,DM2KDAT * address of copy table JMP COPYLP *************** * Common Code * *************** COPYLP BL @GOGO * Set up Char Sets MOV *R14+,R7 * get bank ONEBLK MOV *R14+,R4 * Get bytes divided by 4 JGT CONT * Branch if positive (less than >8000) B *R4 * Else it's the jump address, so start the program CONT MOV *R14+,R9 * Address to copy from MOV *R14+,R10 * Address to copy to BL @COPYME * COPY IT! INCT R7 * Next Bank JMP ONEBLK **************** * Copy Routine * **************** * R4 - Bytes Div 4 * R7 - Bank switch address * R9 - Address to copy from * R10 - Address to copy to * R11 - Return spot, save it to R8 COPYME MOV R0,*R7 * Do the bank switch LOOPIT MOV *R9+,*R10+ MOV *R9+,*R10+ DEC R4 JNE LOOPIT B *R11 * We're done. **************************** * Load lower case charsets * **************************** * Note, if you still need space, you can remove support for the * 99/4 by deleting the code marked between * +++ 99/4 support +++ begin/end blocks GOGO MOV R11,R9 * Save our return spot * +++ 99/4 support begin +++ * load R3 with 6 for 99/4, or 7 for 99/4A CLR R0 BL @GPLSET BL @GETGPL * read GROM >0000 LI R3,7 CI R0,>AA01 * 99/4 is AA01, all versions of 99/4A seem to be AA02 (even 2.2!) JNE IS4A * note we also assume unknown is 99/4A just to be safe DEC R3 * make a copy of the capitals for the 99/4 to 'support' lowercase * this will be partially overwritten by the main set, but it works! LI R0,>0018 * GPL vector address LI R1,>4A00 * dest in VDP - must OR with >4000 for write LI R2,>0040 * how many chars BL @GPLVDP * this function goes somewhere later in your ROM JMP MNSET * +++ 99/4 support end +++ * If you delete the above block, replace with * LI R3,7 * so that the character size counter is still valid IS4A * 'lowercase' letters LI R0,>004A * GPL vector address (not available for 99/4) LI R1,>4B00 * dest in VDP - must OR with >4000 for write LI R2,>001F * how many chars BL @GPLVDP * this function goes somewhere later in your ROM * main set MNSET LI R0,>0018 * GPL vector address LI R1,>4900 * dest in VDP - must OR with >4000 for write LI R2,>0040 * how many chars BL @GPLVDP * this function goes somewhere later in your ROM B *R9 * RETURN TO CALLER ***************** * GROM routines * ***************** * Set GROM address GPLSET MOVB R0,@>9C02 SWPB R0 MOVB R0,@>9C02 B *R11 * Get a word from GPL GETGPL MOVB @>9800,R0 SWPB R0 MOVB @>9800,R0 SWPB R0 B *R11 * Copy R2 characters from a GPL copy function vectored at * R0 to VDP R1. GPL vector must be a B or BR and * the first actual instruction must be a DEST with an * immediate operand. Set R3 to 6 for 99/4 (6 byte characters) * or 7 for a 99/4A (7 byte characters) GPLVDP MOV R11,R10 * save return address BL @GPLSET * set GROM address BL @GETGPL * Get branch instruction (not verified!) ANDI R0,>1FFF * mask out instruction part AI R0,3 * skip instruction and destination BL @GPLSET * set new GROM address BL @GETGPL * get actual address of the table BL @GPLSET * and set that GROM address - GROM is now ready! SWPB R1 * assume VDP is already prepared for write to save space MOVB R1,@>8C02 SWPB R1 MOVB R1,@>8C02 * VDP is now ready! CLR R0 LP8 MOVB R0,@>8C00 * pad the top of the char with a space MOV R3,R0 * then copy 7 (or 6) bytes * +++ 99/4 support begin +++ CI R3,6 * check for 99/4 JNE LP9 MOVB R0,@>8C00 * extra blank line for 99/4 * +++ 99/4 support end +++ * no changes needed if this block removed LP9 MOVB @>9800,@>8C00 * copy a byte (both sides autoincrement) DEC R0 JNE LP9 DEC R2 * next character JNE LP8 B *R10 FINISH EQU $ SLAST END I'll probably have time to continue with this next week... but my goal is to get a Fred Kaal cart with all of his programs in it, menu driven!
-
Thanks, Adam - see my other thread, where I posted the source. I didn't mean to hijack your thread long term
-
R0 is simply being used to make a write to ROM to do the bank switch. There can be any value in R0 (from what I understand) - what counts is you are writing to a specific ROM address for the bank switch to happen. So, from what I'm understanding is that I should only have one copy of the values for each module's headers - since the values/instructions are the same across all three modules, it shouldn't matter that I perform a bank switch; it's going to pick up from the bank I'm in, and the length for those instructions will be the same? How would you set up the entry points in the header this way?
-
Short... I'm trying to make a 128K EPROM image with Fred's awesome disk utilities all in one EPROM (all selectable from the menu.) Fred's programs are "copy to 32K and run", which works rather well. I can do this with almost an EA/5 program thanks to some initial advice/code from Tursi. I have managed to "adapt" my header code to work with DM2K and CF2K to put them both in a 64K Cart, but I'm trying to add DU2K. Problem: The code for the three program header is >60 bytes too long. I need it to stop before >1B0 when compiled into a PROGRAM image, and instead, it stops at >210. The "two program" header (i.e. I cut out the DU2K chunk of the code) stops at >1A0, so it would work... * THREE PROGRAM HEADER FOR 128K BANKED * SWITCHED CART DEF SFIRST,SLAST,SLOAD UNL * ROM HEADER AORG >6000 SFIRST EQU $ SLOAD EQU $ GRMHDR BYTE >AA,1,1,0,0,0 DATA PROG BYTE 0,0,0,0,0,0,0,0 PROG DATA PROG2 DATA CF2K BYTE 8 TEXT 'CF2K 1.4' EVEN PROG2 DATA PROG3 DATA DM2K BYTE 8 TEXT 'DM2K 1.4' EVEN PROG3 DATA 0 DATA DU2K BYTE 8 TEXT 'DU2K 2.0' EVEN MINIT EQU $ LWPI >8300 *************** * CF2K Module * *************** CF2K BL @GOGO * Set up Char Sets * >6000 (highest bank) LI R7,>6000 * BANK TO SELECT LI R4,>076A * BYTES DIV 4 LI R9,>6258 * ADDRESS TO COPY FROM LI R10,>A000 * ADDRESS TO COPY TO BL @COPYME * COPY IT! * >6002 (2nd highest bank) LI R7,>6002 * BANK TO SELECT LI R4,>076A * BYTES DIV 4 LI R9,>6258 * ADDRESS TO COPY FROM LI R10,>BDA8 * ADDRESS TO COPY TO BL @COPYME * COPY IT! * >6004 (3rd highest bank) LI R7,>6004 * BANK TO SELECT LI R4,>076A * BYTES DIV 4 LI R9,>6258 * ADDRESS TO COPY FROM LI R10,>DB50 * ADDRESS TO COPY TO BL @COPYME * COPY IT! * >6006 (4th highest bank) LI R7,>6006 * BANK TO SELECT LI R4,>04C0 * BYTES DIV 4 LI R9,>6D00 * ADDRESS TO COPY FROM LI R10,>2000 * ADDRESS TO COPY TO BL @COPYME * COPY IT! * ALRIGHT, WE'RE DONE. LET'S GO! B @>A000 *************** * DM2K Module * *************** DM2K BL @GOGO * Set up Char Sets * >6008 (5th highest bank) LI R7,>6008 * BANK TO SELECT LI R4,>072A * BYTES DIV 4 LI R9,>6358 * ADDRESS TO COPY FROM LI R10,>A000 * ADDRESS TO COPY TO BL @COPYME * COPY IT! * >600A (6th highest bank) LI R7,>600A * BANK TO SELECT LI R4,>072A * BYTES DIV 4 LI R9,>6358 * ADDRESS TO COPY FROM LI R10,>BCA8 * ADDRESS TO COPY TO BL @COPYME * COPY IT! * >600C (7th highest bank) LI R7,>600C * BANK TO SELECT LI R4,>072A * BYTES DIV 4 LI R9,>6358 * ADDRESS TO COPY FROM LI R10,>D950 * ADDRESS TO COPY TO BL @COPYME * COPY IT! * >600E (8th highest bank) LI R7,>600E * BANK TO SELECT LI R4,>072A * BYTES DIV 4 LI R9,>7400 * ADDRESS TO COPY FROM LI R10,>2000 * ADDRESS TO COPY TO BL @COPYME * COPY IT! * ALRIGHT, WE'RE DONE. LET'S GO! B @>A000 *************** * DU2K Module * *************** DU2K BL @GOGO * >6008 (5th highest bank) LI R7,>6010 * BANK TO SELECT LI R4,>0794 * BYTES DIV 4 LI R9,>61B0 * ADDRESS TO COPY FROM LI R10,>A000 * ADDRESS TO COPY TO BL @COPYME * COPY IT! * >600A (6th highest bank) LI R7,>6012 * BANK TO SELECT LI R4,>0794 * BYTES DIV 4 LI R9,>61B0 * ADDRESS TO COPY FROM LI R10,>BE50 * ADDRESS TO COPY TO BL @COPYME * COPY IT! * >600C (7th highest bank) LI R7,>6014 * BANK TO SELECT LI R4,>0794 * BYTES DIV 4 LI R9,>61B0 * ADDRESS TO COPY FROM LI R10,>DCA0 * ADDRESS TO COPY TO BL @COPYME * COPY IT! * >600E (8th highest bank) LI R7,>6016 * BANK TO SELECT LI R4,>0794 * BYTES DIV 4 LI R9,>7000 * ADDRESS TO COPY FROM LI R10,>2000 * ADDRESS TO COPY TO BL @COPYME * COPY IT! * ALRIGHT, WE'RE DONE. LET'S GO! B @>A000 **************** * Copy Routine * **************** * R4 - Bytes Div 4 * R7 - Bank switch address * R8 - Return for BL @COPYME * R9 - Address to copy from * R10 - Address to copy to * R11 - Return spot, save it to R8 COPYME MOV R11,R8 * Save our Return Spot MOV R0,@R7 * Do the bank switch LOOPIT MOV *R9+,*R10+ MOV *R9+,*R10+ DEC R4 JNE LOOPIT B *R8 * We're done. **************************** * Load lower case charsets * **************************** * Entry point here - ideally put this code first in your ROM * load R3 with 6 for 99/4, or 7 for 99/4A GOGO MOV R11,R9 * Save our return spot CLR R0 BL @GPLSET BL @GETGPL * read GROM >0000 LI R3,7 CI R0,>AA01 * 99/4 is AA01, all versions of 99/4A seem to be AA02 (even 2.2!) JNE IS4A * note we also assume unknown is 99/4A just to be safe DEC R3 * make a copy of the capitals for the 99/4 to 'support' lowercase * this will be partially overwritten by the main set, but it works! LI R0,>0018 * GPL vector address LI R1,>4A00 * dest in VDP - must OR with >4000 for write LI R2,>0040 * how many chars BL @GPLVDP * this function goes somewhere later in your ROM JMP MNSET IS4A * 'lowercase' letters LI R0,>004A * GPL vector address (not available for 99/4) LI R1,>4B00 * dest in VDP - must OR with >4000 for write LI R2,>001F * how many chars BL @GPLVDP * this function goes somewhere later in your ROM * main set MNSET LI R0,>0018 * GPL vector address LI R1,>4900 * dest in VDP - must OR with >4000 for write LI R2,>0040 * how many chars BL @GPLVDP * this function goes somewhere later in your ROM B *R9 * RETURN TO CALLER ***************** * GROM routines * ***************** * Set GROM address GPLSET MOVB R0,@>9C02 SWPB R0 MOVB R0,@>9C02 B *R11 * Get a word from GPL GETGPL MOVB @>9800,R0 SWPB R0 MOVB @>9800,R0 SWPB R0 B *R11 * Copy R2 characters from a GPL copy function vectored at * R0 to VDP R1. GPL vector must be a B or BR and * the first actual instruction must be a DEST with an * immediate operand. Set R3 to 6 for 99/4 (6 byte characters) * or 7 for a 99/4A (7 byte characters) GPLVDP MOV R11,R10 * save return address BL @GPLSET * set GROM address BL @GETGPL * Get branch instruction (not verified!) ANDI R0,>1FFF * mask out instruction part AI R0,3 * skip instruction and destination BL @GPLSET * set new GROM address BL @GETGPL * get actual address of the table BL @GPLSET * and set that GROM address - GROM is now ready! SWPB R1 * assume VDP is already prepared for write to save space MOVB R1,@>8C02 SWPB R1 MOVB R1,@>8C02 * VDP is now ready! CLR R0 LP8 MOVB R0,@>8C00 * pad the top of the char with a space MOV R3,R0 * then copy 7 (or 6) bytes CI R3,6 * check for 99/4 JNE LP9 MOVB R0,@>8C00 * extra blank line for 99/4 LP9 MOVB @>9800,@>8C00 * copy a byte (both sides autoincrement) DEC R0 JNE LP9 DEC R2 * next character JNE LP8 B *R10 FINISH EQU $ SLAST END I've attached the 64K EPROM image for DM2K and CF2K, as well as the compiled PROGRAM image for both the 3 and 2 bank headers. DM2K_CF2K.bin HEADER2.BIN HEADER3_PROGS.BIN
-
I'll thread jack for a second. I want to do something like this, but according to my Compute! assembly book, you can't redefine equates: *************** * CF2K Module * *************** CF2K BL @GOGO * Set up Char Sets * >6000 (highest bank) BANKTO EQU >6000 * BANK TO SELECT BYTCNT EQU >076A * BYTES DIV 4 ADRFRM EQU >6258 * ADDRESS TO COPY FROM ADRTO EQU >A000 * ADDRESS TO COPY TO BL @COPYME * COPY IT! * >6002 (2nd highest bank) BANKTO EQU >6002 * BANK TO SELECT BYTCNT EQU >076A * BYTES DIV 4 ADRFRM EQU >6258 * ADDRESS TO COPY FROM ADRTO EQU >BDA8 * ADDRESS TO COPY TO BL @COPYME * COPY IT! * >6004 (3rd highest bank) BANKTO EQU >6004 * BANK TO SELECT BYTCNT EQU >076A * BYTES DIV 4 ADRFRM EQU >6258 * ADDRESS TO COPY FROM ADRTO EQU >DB50 * ADDRESS TO COPY TO BL @COPYME * COPY IT! * >6006 (4th highest bank) BANKTO EQU >6006 * BANK TO SELECT BYTCNT EQU >04C0 * BYTES DIV 4 ADRFRM EQU >6D00 * ADDRESS TO COPY FROM ADRTO EQU >2000 * ADDRESS TO COPY TO BL @COPYME * COPY IT! ... later down in the code ... **************** * Copy Routine * **************** COPYME MOV R11,R8 * Save our Return Spot MOV R0,@BANKTO * Do the bank switch LI R4,BYTCNT LI R9,ADRFRM LI R10,ADRTO LOOPIT MOV *R9+,*R10+ MOV *R9+,*R10+ DEC R4 JNE LOOPIT B *R8 * We're done… My goal is to save the code from having to be rewritten three times. Thoughts?
-
Here are all the games in V9T9 and PC99 disk images for everyone... SSGC_V9t9_PC99.zip
-
Let me know if you wind up needing to do a run of boards; I can put you in contact with the local place I used. The $400 tooling fee is already paid for future runs. A run of 250 was approx $2500 by the time you pay the board house for production/assembly and also buy 74LS379 chips, spare cart cases, etc. This would go down to $2100 for 250 since the tooling fee is already paid. - acadiel
-
Just an update... Bob and Larry now have their shipments and are beginning the process of invoicing everyone and packing/shipping them. Please stay tuned and send them any questions you might have. I've also been shipping mine gradually, and some people might already have them in their mailboxes. As for the assembled spares that I had (qty 12), I'm waiting on one person to decide quantities, but it looks like that three-four extra people will be taking the assembled spares. However, fear not! I will likely have some unassembled kits that I will sell (I'm not assembling them), that were spare parts from the run that I purchased to get the inventory off of ACC Electronix's books. (I think like 13 boards and probably 100 of the 68 ohm resistors were spare. Anyone need resistors?) I think I have enough personal spare components to make approximately 10-12 more unassembled kits. Stay tuned, I will make an announcement about those after I do a parts inventory.
-
Hi, Everyone - The boxes are off to Bob and Larry (I took a double take at those names together for a second, and then remembered Bob and Larry are in VeggieTales <grin>). They should have both boxes in by the end of the week and will let everyone know (either on here or via e-mail) that they are ready to start shipping. I would like to sincerely thank them for their help. I'll start e-mailing my folks (quantity 1, 4, and 10) their cart postage/handling invoices by the end of the week. I really do appreciate everyone's patience while we had the board house manufacture the boards, and divvied up the logistics about how to best to get them to you.
-
See this thread: GPL Assembler Rewrite
-
Thanks go to Larry Correa and Bob Kaspar from the Yahoo TI-99/4A OLUG for helping with the cartridge board shipments. Here's how we're doing it... look at the bottom table for the quantity you ordered. This will tell you who is going to be sending you an e-mail about your shipping costs, and who will be invoicing you for postage/handling. (We don't make money on this, so you will be billed actual postage, plus a small handling charge that will cover packing tape, box, and e-commerce fees). You will pay the person sending you the invoice, and they will ship the boards to you. Qty - Person shipping --- --------------- 2 - Larry Correa (14 orders) 3 - Bob Kaspar (15 orders) 5 - Bob Kaspar 15 - Bob Kaspar 1 - Jon Guidry (14 orders) 4 - Jon Guidry 10 - Jon Guidry 50 - Jon Guidry I will ship the boards either Monday or Tuesday to Bob and Larry, and then will start sending out my invoices. If you ordered extras from me (i.e. an EPROM, etc), then whomever has your order (myself, Bob, or Larry) will ship them to you with your order, and you will pay me directly for the EPROMs themselves. Please wait until you receive your invoice - Bob and Larry do not have the boards in their hands yet, do not yet know how much they weigh, etc, so they can't tell you how much you owe for postage/handling until they get those and separate them out into the actual orders. Likewise, I still need to box and weigh my 14 orders. Thanks, all!
-
Hopefully, the 64K cartridge board orders will start shipping soon. I'm trying to figure out what kind of box that we will be using to ship most of the orders. The ones from the last batch won't fit (6x4x2), because cartridge cases will be included this time. I'm thinking of moving up to 6x6x4 boxes. Bear with me, as we have over 40 orders that we will need to pack, weigh, invoice, and ship out. I have one person who might be helping me (thank you!!). We will also need to order the boxes, pick up packing tape, etc. The boards were finished today - in order to have them certified RoHS compliant, I had to personally put in the 250 74LS379 chips myself, and helped to bag them in ASD bags, then ASD bubble wrap. I tried one of the boards in my /4A and it works great! Please see the pictures here (There's eight in total that I took today): http://www.facebook.com/photo.php?pid=3681926&l=e578878710&id=571432449 The boards are constructed with a lead-free finish, and any re-work on them (hacking, etc) needs to be completed with SN100C or any other RoHS compliant solder. Please do not use lead/tin type solder on these, as you will likely have issues later down the road. These boards were certified RoHS compliant (except the 74LS379), so our fellows over in Europe shouldn't have any issues with them. They were all wave soldered, and all exposed joints were covered :-) I will likely have some blank boards (without components) that I will put up for sale after the dust is settled. I will also know how many assembled spares I have for people on the waiting list. Thanks for everyone's patience. I might move a little slowly on this, but it's to keep my sanity and to keep my wife from being too upset with me. (She's already upset I did a third batch.. <g>)
-
Akator, I don't plan on making another run of them myself. I've so far had over 450 of them made (not including prototypes), and I've reached the limit of my wife's patience. The board tooling charge had been paid at the board house, so future runs are available if someone wants to take them on. They will just simply charge you the per-board cost plus shipping for the whole batch, and you will need to procure the 74LS379 chips as well.
-
Hey everyone, here's a link to production pictures... we're rapidly approaching the date where they'll be done! See the last 4-5 pictures in the set
-
No, I hardly think he has the power (or the desire) to legally enforce whatever "contract" he signed with Toucan, but that's not really the point. Silly as it may be, Toucan has an obligation to honor whatever deal he made with the guy, even if it was just a handshake deal. Burning bridges with people is not a smart practice. I agree. It's an agreement between two parties, and I don't want to see Toucan break his word. I think my point is that I just find it strange that this person is putting such strange controls around IP that doesn't even technically belong to him. I bet Hasbro doesn't even care at this point, nor does Atari (the owner of the PB IP).
-
I just find it strange the guy doesn't want to release it. It really was PB's intellectual property; he was an employee of PB when it was made. Did the author even have the legal right to impose restrictions on Toucan so that he couldn't release it? Nevertheless, Retroclouds will do a kick butt re-release :-) See what happens when you hoard something, Steven? :-) FYI, here was his note to me back in December 2008: -------- Steven Zedeck to me 12/22/08 Hi Jon, Yes, I did sell one of my Tut boards to Brian about a year ago. Under contract he is unable to duplicate or sell it. I still have a couple more but they can not be given away. Sorry. Steve --------
