Jump to content
IGNORED

1 Meg Super AMS Discussion Thread


Omega-TI

Recommended Posts

So far, I've put 75 SAMS boards into circulation. I've personally built 51 boards from the 2016 Edition of which 46 are in the hands of other users (I have two of the 51 in my systems and three more on hand and available for sale), the others were sold through your storefront as bare boards or sent to individuals that wanted a bare board from me. Note that Mike Dudeck put another dozen or so from the last group buy into circulation within the last year as well. There are also about 200-250 boards out there from the SW99ers, Asgard, and the 2004 group buy. Lastly, there are eight that Dan Eicher and I made as test boards before the group buy. I have another 40 or so bare boards on hand, and will continue making more of them for as long as I remain with the hobby. The choice between a SAMS card and the regular 32K card is no contest--the price is about the same (when considering PEB boards), but the increased capability can't be beat.

  • Like 6
Link to comment
Share on other sites

  • 1 month later...

Well guys, I believe I finally solved it. The board I built last year, has not been working. I have picked it up and tried going over the solder points time and again, reheating, wondering what could have gone wrong. I bought another unit to test the 612 chip and perform other tests, to determine if I had defective parts.

I finally downloaded the schematics, the other day and started doing point to point continuity tests, to see if I I had cold solder joints, starting at the led side of the board and working over. I determined last night that the signal was not making it to the ram chips at the pin 20, on the ram chips.

There was continuity between the chips, but not to pin 17 on the 74LS245, but the circuit from pin 17 to the 612 chip was good. This was about 11:15 PM last night, at 11:30 PM, after throwing on a hasty set of wires, I had the SAMS testing good on my TI. There apparently is a bad trace or via, probably during the production process, between the hole going from the negative side of the capacitor setting between the 612 and upper ram socket, to the hole, just below pins 12 and 13 on the ram chip, that service the pin 20's on both rams.

post-41593-0-79179500-1533211477_thumb.jpg

Edited by RickyDean
  • Like 5
Link to comment
Share on other sites

Well, last night due to being rained in, I watched BladeRunner and sat there cleaning up one of the scanned images of the Geneve layers that Paul Charlton did back in the day. I was doing this so that I could have a clearer view of the holes and traces to repair the Geneve, I recently got from the Insane one.

While I was there I was using my high magnification specs, and found the issue with the trace on the Sams board, shown on the prior posting. Apparently when I had added the the 32 pin Ram socket at the top, I went ahead and trimmed down a machined socket to add the additional pins for the possibility of upgrading to the full capacity of the board in the future, making 36 pins. In that trim down process I had set the 4 pin socket extension down and trimmed off some excess plastic, on the board. In that process I seem to have went down on the board and sliced the trace.

I will post a picture tomorrow, had it on my phone, but forgot it when I came to work this morning. I had blamed the manufacturer of the board in my post above, so wanted to set the record straight. Should be repairable at the slice point, but it is so small, you can barely make it out, at least with my old eyes.

  • Like 3
Link to comment
Share on other sites

Finding a minor cut trace can be a real pain, especially when the board has been worked on several times. Ask @arcadeshopper about the weird traces I found on a disk controller board last year. There were a group of cut and shorted traces under the EPROM sockets. . .I cleaned them up and the board worked perfectly.

  • Like 2
Link to comment
Share on other sites

Well, I got the traces cleaned back, about an 1/8th of an inch on both sides and then soldered the trace. She's testing well, no more wires. The pic here is what I said that I was going to show yesterday... The circled area is where the trace was knicked.

post-41593-0-75723600-1533729569_thumb.jpg

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

I'm envious of those with younger eyes, I simply would never have found the problem. It's actually irritating not being able to tackle projects once taken for granted.

 

I use a couple of tools to help me work on boards.

 

One is a USB microscope ($30), which I use for soldering. The only trick is that it doesn't give me 3D vision so it's hard to tell where my soldering iron is sometimes.

 

The other tool I use is a proper digital camera. I take photos of boards and then view (inspect) the results on my large monitor.

 

The attached photo is a shot from my microscope. Just to give you a sense of scale, the grey squares on the left are 5 x 5 millimeters each.

post-47499-0-52220100-1533741379_thumb.jpg

Edited by chue
  • Like 2
Link to comment
Share on other sites

  • 6 months later...

Tonight I finished testing a batch of ten 1MB SAMS boards. Four of them are already spoken for, so I have six left for anyone else interested in getting one. Current price is $85 shipped to a US address--and for non-US orders, the additional postage necessary to ship to your country.

  • Like 1
Link to comment
Share on other sites

Most of the programs that use SAMS are utilities. Harrison's MIDI Master, RAG MacroAssembler, Clint Pulley's Small c compiler, RXB, Turbo Forth, FB Forth, and several games in various stages of development. I've definitely missed a few more, I just don't recall them at the moment.

  • Like 1
Link to comment
Share on other sites

I just found this thread. I bought a SAMS 1M card (thanks Arcadeshopper) and I love it.

 

I took the approach of creating a single paged block at >3000.

I use the card as selectable 64K "segments" kind of like the old 8086 segmented model.

It's not idea but it means I don't need 32 bit pointers to access the data.

 

Then I wrote just 4 routines:

  1. write integer to SAMS segment
  2. read integer from SAMS segment
  3. write byte to SAMS segment
  4. read byte from SAMS segment

 

This is all written in Forth Assembler, but it's not hard to translate it to TI ASM.

 

I will post it here when I get some time.

 

Its already on GITHUB: https://github.com/bfox9900/CAMEL99-V2/blob/master/LIB.ITC/SAMS.FTH

 

The machine code is used so I don't need to load the assembler to run this code, but the ALC is in the comments.

If it all seems too Forthy, just ask and I can explain.

Edited by TheBF
  • Like 5
Link to comment
Share on other sites

 

 

Well what do you know?

I created my SAMS segment control by making 2 Forth assembler words and then I let Forth sequence them together. like this:

CODE >BANK  ( addr -- offset bank# )
       0200 , 4K ,    \ R0  4K LI,      \ 4K divisor ->R0
       C144 ,         \ TOS R5 MOV,     \ address to r5
       C120 , SEG ,   \ SEG @@ TOS MOV, \ segment to TOS
       3D00 ,         \ R0 TOS DIV,     \ unsigned division
       0646 , C585 ,  \ R5 PUSH,
       NEXT,          \ 16 bytes, 204 cycles
       ENDCODE

CODE ?MAP ( offset bank# -- )
       8804 , CD90 ,  \ TOS BANK# @@ CMP,
       1602 ,         \ EQ IF,
       C136 ,         \     TOS POP,
       100A ,         \ ELSE, ( *THE MAPPER* )
       C804 , CD90 ,  \    TOS BANK# @@ MOV,
       06C4 ,         \    TOS SWPB,
       020C , 1E00 ,  \    R12 1E00 LI,
       1D00 ,         \    0 SBO,
       C804 , 4006 ,  \    TOS 4006 @@ MOV,
       1E00 ,         \    0 SBZ,
       C136 ,         \    TOS POP,
                      \ ENDIF,
       0224 , PMEM ,  \ TOS PMEM AI,
       NEXT,
       ENDCODE

: PAGED  ( addr -- addr') >BANK ?MAP ;

I thought the speed to call one forth word and then another would be insignificant (56 cycles) and it is if you swap in a 4K page and do a big block fill or something like that.

BUT! That extra call between >BANK and ?MAP multiplied 64,000 times or so makes a real difference!

 

Here is the test I used.

FFFF CONSTANT 64K
1000 CONSTANT 4K
 
\ 64k single byte writes to paged memory      \ OLD       NEW
: 64KBYTES    64K 0 DO  I     I C!P    LOOP ; \ 47 secs  30.5

By simply gluing the two pieces of code together as the new PAGED routine it's almost 2X faster. Gotta love that.

 

But it still takes 20.7 seconds to erase 960K bytes on the SAMS card. :-D

CODE PAGED  ( addr -- offset bank# )
       0200 , 4K ,    \ R0  4K LI,      \ 4K divisor ->R0
       C144 ,         \ TOS R5 MOV,     \ address to R5
       C120 , SEG ,   \ SEG @@ TOS MOV, \ segment to TOS
       3D00 ,         \ R0 TOS DIV,     \ unsigned division
       0646 , C585 ,  \ R5 PUSH,
       8804 , CD90 ,  \ TOS BANK# @@ CMP,
       1602 ,         \ EQ IF,
       C136 ,         \     TOS POP,
       100A ,         \ ELSE, ( *THE MAPPER* )
       C804 , CD90 ,  \    TOS BANK# @@ MOV,
       06C4 ,         \    TOS SWPB,
       020C , 1E00 ,  \    R12 1E00 LI,
       1D00 ,         \    0 SBO,
       C804 , 4006 ,  \    TOS 4006 @@ MOV,
       1E00 ,         \    0 SBZ,
       C136 ,         \    TOS POP,
                      \ ENDIF,
       0224 , PMEM ,  \ TOS PMEM AI,
       NEXT,
       ENDCODE
Edited by TheBF
  • Like 4
Link to comment
Share on other sites

Comment correction:

 

PAGED takes a 16 bit address in R4 (Camel Forth's TOS register) and returns a 16bit address in R4.

The difference is that if the address is NOT in the current SAMS page, it swaps in the page and computes the address in the page for the input address.

The variable SEG controls which 64K segment is used.

 

Forth Assembler For TI-Assember coders:

  • CODE just makes a label (ie: name of the sub-routine)
  • Put the 9900 op code on the other side to make something that looks more familiar. :)
  • Variables in Forth are like a LABEL and a DATA statement wrapped together.
  • TOS in the code is an alias for R4
  • The phrase " EQ IF," is just a JNE to the "ELSE," location.
  • "ELSE," is just a JMP instruction to "ENDIF," location.
  • NEXT, returns to the Forth internal sequencer . Think of it like B *R11
  • @@ is for indirect addressing mode on a memory location (like a variable for example)
  • PMEM is an EQU. I used PMEM EQU >3000 in this case
  • \ is a full line comment. ( ) are inline comments

Once you translate this cryptic code it should let you read/write data in SAMS from Assembler by setting SEG to a value from 1 to >000F and calling PAGED and the address you need will be in R4.

I know you can do it!

 

Edit once you are in a 4K page, you can move around just like normal but you have to be careful if you go outside the boundaries of the 4K page. (scary music here)

CODE PAGED  ( addr -- addr' )
       0200 , 4K ,    \ R0  4K LI,      \ 4K divisor ->R0
       C144 ,         \ TOS R5 MOV,     \ address to R5
       C120 , SEG ,   \ SEG @@ TOS MOV, \ segment to TOS
       3D00 ,         \ R0 TOS DIV,     \ unsigned division
       0646 , C585 ,  \ R5 PUSH,
       8804 , CD90 ,  \ TOS BANK# @@ CMP,
       1602 ,         \ EQ IF,
       C136 ,         \     TOS POP,
       100A ,         \ ELSE, ( *THE MAPPER* )
       C804 , CD90 ,  \    TOS BANK# @@ MOV,
       06C4 ,         \    TOS SWPB,
       020C , 1E00 ,  \    R12 1E00 LI,
       1D00 ,         \    0 SBO,
       C804 , 4006 ,  \    TOS 4006 @@ MOV,
       1E00 ,         \    0 SBZ,
       C136 ,         \    TOS POP,
                      \ ENDIF,
       0224 , PMEM ,  \ TOS PMEM AI,
       NEXT,
       ENDCODE
Edited by TheBF
  • Like 1
  • Thanks 1
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...