Jump to content
IGNORED

AMSTEST Source and Program versions


atrax27407

Recommended Posts

On 6/3/2020 at 5:04 PM, FALCOR4 said:

Thanks!  Pretty nifty program!  I used it on a 1M board but I'm still waiting on a few parts for the 4M board.  I will report back to you once I get a chance to use it on the 4M.

Its been a while but I'm happy to say that my SAMS 4M card is up and running (thank you Ksarul!).  I had a bad DALLAS SRAM that was giving me intermittent fits so I switched to ZEROPOWER SRAM and now I'm showing the entire 4M and, it seems to be stable so far.  I've paged and written to all 1024 pages several times successfully; I'll continue to work with it and use it as my main memory expansion card.

  • Like 5
  • Thanks 1
Link to comment
Share on other sites

22 hours ago, FALCOR4 said:

Its been a while but I'm happy to say that my SAMS 4M card is up and running (thank you Ksarul!).  I had a bad DALLAS SRAM that was giving me intermittent fits so I switched to ZEROPOWER SRAM and now I'm showing the entire 4M and, it seems to be stable so far.  I've paged and written to all 1024 pages several times successfully; I'll continue to work with it and use it as my main memory expansion card.

Someone send me the code you are using to access and run the card please

I can include SAMS 4M support in RXB 2020 when released.

 

Currently dead in water as my PC CPU (AMD 3900X) is dead and in Florida under repair.

Link to comment
Share on other sites

1 hour ago, RXB said:

Someone send me the code you are using to access and run the card please

I can include SAMS 4M support in RXB 2020 when released.

 

Currently dead in water as my PC CPU (AMD 3900X) is dead and in Florida under repair.

Rich, I'm using some hack code just to check the card's SRAM; fill each page with the page number and reading it all back through the MG Explorer. (avoiding the space where Explorer resides).  Super simple.  But, one way to page a 4M SAMS-->  Put the page number in a word, SWAP the bytes in the word, write the word out to the SAMS register for the 4k block of the 32K memory space you're interested in presenting the page.  So, to page in page 392 (>0188) into the >2000 memory space: enable the SAMS load register bit, load the page number into a word (>0188), swap it (>8801) and write it out to >4004.

  • Like 1
Link to comment
Share on other sites

48 minutes ago, FALCOR4 said:

Rich, I'm using some hack code just to check the card's SRAM; fill each page with the page number and reading it all back through the MG Explorer. (avoiding the space where Explorer resides).  Super simple.  But, one way to page a 4M SAMS-->  Put the page number in a word, SWAP the bytes in the word, write the word out to the SAMS register for the 4k block of the 32K memory space you're interested in presenting the page.  So, to page in page 392 (>0188) into the >2000 memory space: enable the SAMS load register bit, load the page number into a word (>0188), swap it (>8801) and write it out to >4004.

Little confused Hex only handles 256 values in a single byte and 392 it a word.

Currently I write a single byte to change a page >00 to >FF pages at say >4004 for memory area space >2000 

this only works for 1 Meg of memory.

Are you writing 2 bytes to >4004 for memory area space >2000 thus this second byte can be >00 to >03 for a 4 Meg SAMS?

 

So are you putting a word >8801 in >4004 thus this would be page 136 in Decimal or >88 in Hex and >01 in second byte that selects 1 meg pages (>00 to >03)?

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

6 minutes ago, RXB said:

Little confused Hex only handles 256 values in a single byte and 392 it a word.

Currently I write a single byte to change a page >00 to >FF pages at say >4004 for memory area space >2000 

this only works for 1 Meg of memory.

Are you writing 2 bytes to >4004 for memory area space >2000 thus this second byte can be >00 to >03 for a 4 Meg SAMS?

 

So are you putting a word >8801 in >4004 thus this would be page 136 in Decimal or >88 in Hex and >01 in second byte that selects 1 meg pages (>00 to >03)?

Exactly, you got it.  Just another way to slice the pie.  And, BTW, you can do the same for the 1M card; write a word instead of a byte.  That way the same code can be used for both versions of the SAMS.

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

53 minutes ago, FALCOR4 said:

Exactly, you got it.  Just another way to slice the pie.  And, BTW, you can do the same for the 1M card; write a word instead of a byte.  That way the same code can be used for both versions of the SAMS.

I re-read your question so, to be clear, you can't write-a-byte then write-a-byte.  You have to write it as a single word; MOV not MOVB, MOVB.  I can go into more detail as to the "why" but I don't think most folks would be interested.  I'm getting off course for this thread, too.  I'd be happy to talk to you some more about it if its helpful, PM?

Link to comment
Share on other sites

1 hour ago, FALCOR4 said:

I re-read your question so, to be clear, you can't write-a-byte then write-a-byte.  You have to write it as a single word; MOV not MOVB, MOVB.  I can go into more detail as to the "why" but I don't think most folks would be interested.  I'm getting off course for this thread, too.  I'd be happy to talk to you some more about it if its helpful, PM?

RXB 2001 to RXB 2015 was just writing a Byte with GPL it left the other byte free.

So not much of a problem to change it to a word instead of a byte.

 

Does make it more easy to number pages from 0 to 1024 Decimal or >00 to >0400 Hex

But you get the added feature in RXB 2020 to be able to change any 4K page in the 32K now.

 

 

Link to comment
Share on other sites

16 minutes ago, RXB said:

RXB 2001 to RXB 2015 was just writing a Byte with GPL it left the other byte free.

So not much of a problem to change it to a word instead of a byte.

 

Does make it more easy to number pages from 0 to 1024 Decimal or >00 to >0400 Hex

But you get the added feature in RXB 2020 to be able to change any 4K page in the 32K now.

 

On the numbering convention, I don't know; maybe leave that to the community that is writing software for SAMS (hey guys, pick one!)?  I know that sounds like a cop out.  Maybe it depends on which language you're using for the application you're writing?.  Also, slight edit if I may (don't hate me); 0 to 1023d and >0000 to >03FF.  To be technically correct. 

 

I like the added feature for the 4K pages in all the 32K space, that was a great change that offers more flexibility!  The card can do it, might as well be able to use it!

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

6 hours ago, FALCOR4 said:

I like the added feature for the 4K pages in all the 32K space, that was a great change that offers more flexibility!  The card can do it, might as well be able to use it!

Can you elaborate on that? Does that mean the DSR space on the SAMS 4MB card can be accessed as well?

Link to comment
Share on other sites

On 8/17/2020 at 9:31 PM, retroclouds said:

Can you elaborate on that? Does that mean the DSR space on the SAMS 4MB card can be accessed as well?

The 4M SAMS has the same address space as the 1M SAMS; >2000->3FFF, >A000->FFFF.

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

Part of the reason that I initially posted the source code for AMSTEST4 was the hope that one of the talented A/L programmers on this forum would "take the ball and run with it". That is, extend the checking to 4 Megs (and beyond). We do currently have a 4 Meg SAMS card that works. The problem is that we don't have a proper test program for it.

 

JEDIMATT's program (which is excellent by the way) will not currently go beyond 2 Megs (I am reliably informed) and uses a different algorithm than AMSTEST4. Besides, in its current iteration, is painfully slow. It takes 29+ minutes to test a 1 Meg SAMS as opposed to 8 Minutes for AMSTEST4.

 

I hope someone will take up the challenge to extend AMSTEST4 to at least 4 Megs.

Link to comment
Share on other sites

10 minutes ago, atrax27407 said:

Part of the reason that I initially posted the source code for AMSTEST4 was the hope that one of the talented A/L programmers on this forum would "take the ball and run with it". That is, extend the checking to 4 Megs (and beyond). We do currently have a 4 Meg SAMS card that works. The problem is that we don't have a proper test program for it.

 

JEDIMATT's program (which is excellent by the way) will not currently go beyond 2 Megs (I am reliably informed) and uses a different algorithm than AMSTEST4. Besides, in its current iteration, is painfully slow. It takes 29+ minutes to test a 1 Meg SAMS as opposed to 8 Minutes for AMSTEST4.

 

I hope someone will take up the challenge to extend AMSTEST4 to at least 4 Megs.

Nobody willing has hardware or emulation support to fiddle with AMSTEST4.  

 

The reason my test program is painfully slow, is because AMSTEST4 was insufficient as a test. I have experience with it passing on bad hardware. It is not a proper test program in my opinion. It is only a quick inventory check.

 

If there is demand for a fast test... well I'm just going to say that is not really a test... if there is desire for a size detection mode just reset the 4A after my test tells you your memory card size... It will have read, written, and read to every page to determine the capacity.

 

The current interation (1.7) of my test should handle up to the full 16Meg, but I haven't received confirmation from @FALCOR4 who has the only SAMS above 1Meg, as far as I can tell. It is now using the same paging instructions as documented on Thiery's TI-Tech-Pages website, after a discussion with @FALCOR4 - I have not heard if he has tested this version. 

 

 

  • Like 1
Link to comment
Share on other sites

39 minutes ago, atrax27407 said:

Part of the reason that I initially posted the source code for AMSTEST4 was the hope that one of the talented A/L programmers on this forum would "take the ball and run with it". That is, extend the checking to 4 Megs (and beyond). We do currently have a 4 Meg SAMS card that works. The problem is that we don't have a proper test program for it.

 

JEDIMATT's program (which is excellent by the way) will not currently go beyond 2 Megs (I am reliably informed) and uses a different algorithm than AMSTEST4. Besides, in its current iteration, is painfully slow. It takes 29+ minutes to test a 1 Meg SAMS as opposed to 8 Minutes for AMSTEST4.

 

I hope someone will take up the challenge to extend AMSTEST4 to at least 4 Megs.

Well in 5 days I will get my (3900X) CPU back from AMD in Florida and I was one of the first ever to support the AMS and SAMS.

Link to comment
Share on other sites

8 minutes ago, jedimatt42 said:

Nobody willing has hardware or emulation support to fiddle with AMSTEST4.  

 

The reason my test program is painfully slow, is because AMSTEST4 was insufficient as a test. I have experience with it passing on bad hardware. It is not a proper test program in my opinion. It is only a quick inventory check.

 

If there is demand for a fast test... well I'm just going to say that is not really a test... if there is desire for a size detection mode just reset the 4A after my test tells you your memory card size... It will have read, written, and read to every page to determine the capacity.

 

The current interation (1.7) of my test should handle up to the full 16Meg, but I haven't received confirmation from @FALCOR4 who has the only SAMS above 1Meg, as far as I can tell. It is now using the same paging instructions as documented on Thiery's TI-Tech-Pages website, after a discussion with @FALCOR4 - I have not heard if he has tested this version. 

 

 

My 4M SAMS only has 2M installed right now because of a bad SRAM but, 1.7 found it, ID'd it as 2M and seems to have tested it successfully.  I've also done some hack code testing on my board and the 2M seems to be good.  I will tell you (and I mentioned it to you during one of our conversations, @Jetimatt42), there is a very nefarious possible error in the SRAMs that I don't believe every test program will find.  I speculate that it has something to do with the internal addressing architecture of the SRAM in the way it addresses rows and columns of bit cells.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

5 hours ago, RXB said:

Anyone besides me want Classic99 to support a SAMS up to 4Meg and possibly 16Meg?

I would be delighted to release RXB 2020 with support for that and of course would work with REAL IRON!

It might already - My memory test detected 16Meg and so far well beyond 2Meg is passing.  I originally thought this was an error, because I was printing the 'K' overtop the last digit. IDK if Classic99 does more... my test only examines up to 4096 pages.

 

Screenshot_082220_040152_PM.thumb.jpg.7b7edba7f5938472b7972e647826cb76.jpg

 

I get some questions about how to read the output here.... My memory test examines 32K at a time. 

So for SAMS, I page in 8 4K pages, then test the entire 32K address range. 

For other memory cards, they page 32k at a time... 

 

The 'addresses' on the screen are within the 9900 64K address range. 

 

 

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

I can't match under 40 seconds but I have one that do it 58 seconds and let you set the fill pattern interactively.

This is using a little routine to convert a virtual-address to the real address in the paged buffer at >3000. (that stuff is all in DSK1.SAMS)

 

For anyone who wants to use this you have to transfer the DV80 FILE in the zip file to your local disk, start CAMEL99 and type

 

 INCLUDE DSK?.SAMSTEST

(? Is your disk) 

 

The program will auto start after it compiles. (~9 seconds)

 

 

It does not test the 1st 64K, the pass thru memory.

Spoiler

\ test sams card in 64K segments

MARKER /SAMSTEST   \ command to remove everything when you are done.

NEEDS COMPARE FROM DSK1.COMPARE
NEEDS ELAPSE FROM DSK1.ELAPSE
NEEDS PAGED  FROM DSK1.SAMS
NEEDS U.R    FROM DSK1.UDOTR

HEX
7FFF CONSTANT 32K
FFFF CONSTANT 64K
1000 CONSTANT 4K

CREATE PBUFFER   4K ALLOT  \ holds the pattern we are testing

\ : ERASE    0 FILL ;
\ : BLANKS  BL FILL ;

CODE MOVE16 ( addr1 addr2 len -- ) \ fast move 16bit cells
    C036 , C076 , C104 , 1306 , 0584 ,
    0244 , FFFE , CC31 , 0644 , 15FD ,
    C136 ,
NEXT,
ENDCODE

: BINARY   2 BASE ! ;

: SETPATTERN ( char -- )
             CR ." Bit Pattern = " BINARY DUP 8 .R
             PBUFFER 4K ROT FILL
             CR ;

\ move pattern-buffer into entire segment
: FILLSEG ( seg# -- )
           SEGMENT \ set the segment
           64K 0
           DO
             PBUFFER  I PAGED  4K MOVE16
           4K +LOOP ;

: TESTSEG ( seg# -- )
          CR ." Fill 64K seg# " DUP .  ." with" PBUFFER C@ HEX 4 .R
          FILLSEG
           64K 0
              DO
              CR ." Address" HEX I 5 U.R  ."  ... "
              PBUFFER 4K I PAGED 4K COMPARE
              IF   ." FAIL"
              ELSE ." PASS"
              THEN ?TERMINAL ABORT" *HALTED*"
           4K +LOOP ;
DECIMAL
: SAMSTEST
      PAGE
      CR ." SAMS Card memory test"
      CR ." ---------------------"
      16 1
      DO CR
         CR ." *SEGMENT*" DECIMAL I  3 .R
         CR I TESTSEG
      LOOP ;  ( 58 secs)

\ do the test now
HEX AA SETPATTERN
ELAPSE SAMSTEST

 

 

 

SAMSTEST.zip

Edited by TheBF
failed video upload
  • Like 1
Link to comment
Share on other sites

Yes, Classic99 has a 32MB AMS that was added on request, but I still haven't got around to fixing the configuration so you can set it to anything else (AMSTEST bombs on out it as a result). It's encouraging to hear that code works with the test programs for the actual cards that starting to appear.

 

Link to comment
Share on other sites

Yes, Classic99 has a 32MB AMS that was added on request, but I still haven't got around to fixing the configuration so you can set it to anything else (AMSTEST bombs on out it as a result). It's encouraging to hear that code works with the test programs for the actual cards that starting to appear.

 

  • Like 3
Link to comment
Share on other sites

3 hours ago, Tursi said:

Yes, Classic99 has a 32MB AMS that was added on request, but I still haven't got around to fixing the configuration so you can set it to anything else (AMSTEST bombs on out it as a result). It's encouraging to hear that code works with the test programs for the actual cards that starting to appear.

 

Cool as soon as I get my CPU back I can make a RXB 2020 test for up to 32 Meg or more.

  • Like 1
Link to comment
Share on other sites

  • 1 year later...
On 5/26/2020 at 6:05 PM, jedimatt42 said:

In theory, my memory test will exercise a 16MB SAMS... I think SDD99 was threatening to provide 16MB SAMS

 

https://github.com/jedimatt42/ti994a-32kmemtest/blob/f825dfcf76234ed408e54fd356f7e80b6f16fbb7/main.c#L220

 

https://github.com/jedimatt42/ti994a-32kmemtest/releases

Works great! On a 1MB card, anyway…

60E6CF39-1C16-4B42-9944-4CE40CD81C6B.jpeg

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