Jump to content
IGNORED

(Hardware) Project of the 'calendar quarter'


Omega-TI

Recommended Posts

One reason not to put something like that in the console is the amount of real estate the board would eat, Rich. You need the mapper chip and several other support chips in addition to the memory chip. Something large like that is possible (Zeno boards immediately come to mind as an existing large in-console board), but it wouldn't really be a trivial development effort. Personally, I'd rather just do another run of the existing SAMS PEB boards, since we already have a good set of Gerbers for them. I may do that soon anyway, as there seems to be enough demand to make it worthwhile.

  • Like 3
Link to comment
Share on other sites

One reason not to put something like that in the console is the amount of real estate the board would eat, Rich. You need the mapper chip and several other support chips in addition to the memory chip. Something large like that is possible (Zeno boards immediately come to mind as an existing large in-console board), but it wouldn't really be a trivial development effort. Personally, I'd rather just do another run of the existing SAMS PEB boards, since we already have a good set of Gerbers for them. I may do that soon anyway, as there seems to be enough demand to make it worthwhile.

sidecar would work nicely tho :)

Link to comment
Share on other sites

Printing this at 3.2 inches in length and sticking it to the cpu really helped insure the correct pins were used. Also, I picked a GND pin on the same side as the data pins, instead of the opposite side as the instructions showed, so that I wouldn't have to solder a wire under the new board.

 

ticpu

  • Like 3
Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...

The SAMS memory upgrade puts 1Meg of memory into a TI and is very dinky in size.

With newer chips why not put 1Meg into a TI99 instead of just 32K?

 

The cost benefit of just 32K vs 1Meg pretty much makes it look like a silly project to do.

Where can we find the 1Meg upgrade?

Link to comment
Share on other sites

The SAMS is a small card for the PEB. It is not a console mod. The GERBERS are available, so I could do a small run of bare boards if there is enough interest in them. . .and they are a pretty easy build, once you figure out where the capacitors go.

 

Done. I am in for one.

Link to comment
Share on other sites

Done. I am in for one.

 

I would be very into a SAMS board as well.

 

I'm tempted as well, for a fully built one though. Time has not been on my side lately. I doubt I'll have enough time to source the parts, let alone assemble it.

 

Then there is the Chicken and the Egg thing. Is there anything of value that currently exploits the SAM's card?

I can imagine if Stuart's Browser checked for it and defaulted to a larger buffer size that would give me enough excuse... :)

Link to comment
Share on other sites

 

 

I'm tempted as well, for a fully built one though. Time has not been on my side lately. I doubt I'll have enough time to source the parts, let alone assemble it.

 

Then there is the Chicken and the Egg thing. Is there anything of value that currently exploits the SAM's card?

I can imagine if Stuart's Browser checked for it and defaulted to a larger buffer size that would give me enough excuse... :)

 

Before richard runs in here screaming it I'll say it.. RXB uses ams :)

 

Greg

  • Like 4
Link to comment
Share on other sites

Then there is the Chicken and the Egg thing. Is there anything of value that currently exploits the SAM's card?

I can imagine if Stuart's Browser checked for it and defaulted to a larger buffer size that would give me enough excuse... :)

 

Using SAMS has some challenges for a programmer. The availability issue may become smaller with initiatives like this, but there is still a huge difference between having a large contiguous memory space and having paged memory like SAMS. The most obvious use is as a 'RAM disk' (edit: by which I mean a buffer for files loaded from disk), which is what it has mostly been used for in the past. It's great that RXB has support for paged SAMS, but what would be really great is if it could use SAMS for stack space. High level languages have the possibility of adding an abstraction layer in front of the paged memory so it appears to be contiguous. This is more difficult from assembly without suffering a relatively large performance loss. I would like to write an RPG that would use SAMS for storing a huge world, but because of the challenges this have never left the idea stage.

  • Like 3
Link to comment
Share on other sites

The SAMS is a small card for the PEB. It is not a console mod. The GERBERS are available, so I could do a small run of bare boards if there is enough interest in them. . .and they are a pretty easy build, once you figure out where the capacitors go.

I'd have to buy a PEB... which I currently have no room for. I guess I'll go with the 16 bit 32K mod.

*edit*

Where are the programming docs?

*edit*

Never mind, I found the docs.

 

Edited by JamesD
Link to comment
Share on other sites

  • 2 weeks later...

I had to rebuild the GERBER files for the SAMS, as they were in the older 274D format that isn't really supported by the board houses anymore. That gave me an opportunity to fine-tune the board a bit, like adding the tabs to let it use the card slots properly and to add an LED circuit to the board. I'm about done with the fully-updated layout (I still have to go through and make sure I didn't miss any connections or leave any other errors on the board). I also made to power and ground traces a bit more robust. . .If it takes off, I may also eventually do a sidecar version so that the console-only crowd has potential access to some super-sized memory goodness too.

  • Like 4
Link to comment
Share on other sites

That's awesome!

 

I especially like the added LED. I love my PEB, it is the coolest. When cards don't have an LED, it crushes my dream of someday having the LEDs do a knightrider bit on demand. :) NO seriously, having the LED is nice. I'm used to looking at the lights for assurance that when my TI is locked up, the storage devices are off, and the memory is usually active.

 

-M@

  • Like 2
Link to comment
Share on other sites

 

Using SAMS has some challenges for a programmer. The availability issue may become smaller with initiatives like this, but there is still a huge difference between having a large contiguous memory space and having paged memory like SAMS. The most obvious use is as a RAM disk (in general, or for a specific program), which is what it has mostly been used for in the past. It's great that RXB has support for paged SAMS, but what would be really great is if it could use SAMS for stack space. High level languages have the possibility of adding an abstraction layer in front of the paged memory so it appears to be contiguous. This is more difficult from assembly without suffering a relatively large performance loss. I would like to write an RPG that would use SAMS for storing a huge world, but because of the challenges this have never left the idea stage.

Hmm who ever wrote a program to use the SAMS like a RAMDISK?

Funnelweb used it for Editor Buffer space in both TI Writer and Editor Assembler Editor.

I use it in RXB as a 1Meg Assembly space 8K paged area. Managed from XB using GPL.

 

Assembly has an issue of some place of 4K size has to be saved as the control area to run the other 1020K of space.

 

And I have shown how easy it is to make the SAMS actually store a large world and page it to play a game, granted I am not a good Game writer but the principle is there.

 

 

100 ! IN THE DARK
110 GOSUB 1110
120 CALL AMSBANK(B,B+1) :: CALL MOVES("RV",768,W,0) :: N=INT(X/256) :: O=X-(N*256) :: CALL LOAD(-12286,N,O)
130 CALL SPRITE(#1,128,5,89,C*8-7)
140 ! KEYS IN Z$=ARROWS OR Ss Dd Xx Ee SPACE ENTER AID Pp
150 Z$=CHR$(&"Ss"&CHR$(9)&"Dd"&CHR$(10)&"Xx"&CHR$(11)&"Ee"&CHR$(32)&CHR$(13)&CHR$(1)&"Pp"
160 ! MAIN LOOP
170 CALL SOUND(50,-6,15)
180 U=W+351+C :: CALL LOAD(U,225)! FOOTSTEPS
190 CALL LOCATE(#1,90,C*8-7) :: CALL MOVES("RV",768,W,0)! SHOW ME
200 ! ARROWS OR L,R,D,U,SPACE,ENTER,FCTN7,P,p
210 CALL ONKEY(Z$,0,K,Z)GOTO 370,370,370,410,410,410,450,450,450,510,510,510,580,690,810,1590,1590
220 ! ENEMY MOVEMENTS
230 IF F+T<9 THEN 210
240 CALL PEEK(-12276,G) :: IF G=218 THEN E=I*5 :: CALL LOAD(-12276,0)
250 IF M<>B THEN 280
260 IF E=0 THEN 270 ELSE E=E-1 :: GOTO 210
270 IF U-X<256 AND M=B THEN CALL SOUND(-1,2500,2)
280 CALL AMSBANK(M,M+1) :: CALL EXECUTE(-12256)
290 CALL PEEK(-12286,G,H) :: X=(G*256)+H :: IF U=X AND B=M THEN 750! MISSION FAILED
300 IF(U<X AND M>B)OR(X<U AND B>M)THEN M=B :: CALL LOAD(-12286,33,129)
310 IF X<8227 AND M=0 THEN 360
320 IF X>16348 AND M=42 THEN 360
330 IF X<8227 THEN M=M-1 :: X=X+4096
340 IF X>16348 THEN M=M+1 :: X=X-4096 ELSE 360
350 N=INT(X/256) :: O=X-(N*256) :: CALL AMSBANK(M,M+1) :: CALL LOAD(-12286,N,O)
360 CALL AMSBANK(B,B+1) :: GOTO 190
370 ! MOVE LEFT
380 CALL GCHAR(12,C-1,G) :: IF G=143 OR G=119 OR G=111 OR G=103 THEN 640
390 IF G=122 THEN 760
400 C=C-1 :: GOTO 160
410 ! MOVE RIGHT
420 CALL GCHAR(12,C+1,G) :: IF G=143 OR G=119 OR G=111 OR G=103 THEN 640
430 IF G=122 THEN 760
440 C=C+1 :: GOTO 160
450 ! MOVE DOWN
460 IF W=15488 AND B=42 THEN 1020
470 CALL GCHAR(13,C,G) :: IF G=143 OR G=119 OR G=111 OR G=103 THEN 640
480 IF G=122 THEN 760
490 IF W>=15615 THEN B=B+1 :: W=W-4096 :: GOTO 570
500 W=W+32 :: GOTO 160
510 ! MOVE UP
520 IF W=8192 AND B=0 THEN CALL HCHAR(1,1,119,480) :: CALL MOVES("VR",768,0,W) :: GOTO 640
530 CALL GCHAR(11,C,G) :: IF G=143 OR G=119 OR G=111 OR G=103 THEN 640
540 IF G=122 THEN 760
550 IF W=8192 THEN B=B-1 :: W=W+4096 :: GOTO 570
560 W=W-32 :: GOTO 160
570 CALL AMSBANK(B,B+1) :: GOTO 160
580 ! FEEL AROUND ME
590 CALL CHAR(128,"0000187E7E242466")
600 N=INT(U/256) :: O=U-(N*256) :: CALL LOAD(-12282,N,O)
610 CALL EXECUTE(-12034)
620 CALL PEEK(-12288,N,O) :: F=F+N :: S=S+(I*N) :: T=T+O
630 FOR Z=1 TO N+O :: CALL SOUND(1,-5,3) :: NEXT Z :: CALL CHAR(128,"187E5A5A3C242424") :: GOTO 190
640 CALL SOUND(99,200,20,-7,0) :: GOTO 160
650 ! SHOW SCORE
660 CALL MOVES("VR",768,0,W) :: CALL CLEAR :: CALL HPUT(10,1,"TRAPS=",10,7,T,10,13,"SCANS=",10,19,S,10,24,"FOOD=",10,29,F)
670 CALL HPUT(14,1,"YOU ARE INJURED "&STR$(D)&" TIMES!") :: GOTO 1570
680 ! SHOW AREA SCAN
690 IF S THEN 700 ELSE GOSUB 660 :: GOTO 160
700 CALL CLEAR :: CALL SOUND(10,2E4,6,770,5,440,6,-7,3) :: U=W+352 :: K=U+32 :: N=352 :: O=384 :: FOR Z=1 TO 12
710 CALL MOVES("RV",32,U,N,"RV",32,K,O) :: U=U-32 :: K=K+32 :: N=N-32 :: O=O+32 :: NEXT Z
720 CALL COLOR(11,16,1,12,7,1) :: FOR Z=1 TO 100 :: CALL KEY(0,K,J) :: IF K=13 THEN 740
730 NEXT Z :: GOTO 700
740 CALL COLOR(11,2,1,12,2,1) :: S=S-1 :: GOTO 160
750 ! GAME OVER FAILED
760 FOR Z=1 TO 24 STEP 4 :: CALL SOUND(100,-7,Z) :: NEXT Z
770 D=D+1 :: IF I=0 THEN I=1 ELSE I=I-1 :: E=I
780 GOSUB 660 :: IF U=X AND M=B THEN CALL HPUT(22,5,"REPAIR BOT CAUGHT YOU!",20,12,"YOU DIE!") :: END
790 IF D=25 THEN CALL HPUT(22,2,"YOUR INJURIES ARE TO GREAT...",20,12,"YOU DIE!") :: END
800 GOTO 120
810 CALL CLEAR :: CALL HPUT(1,10,"IN THE DARK",12,2,"SUGGEST YOU SWITCH DISKS NOW!",24,9,"PRESS SPACE KEY") :: CALL KEY(" ",0,K,S)
820 OPEN #1:P$&"SCORE",OUTPUT
830 PRINT #1:W! 8K ADDRESS
840 PRINT #1:T! TRAPS
850 PRINT #1:S! SCANS
860 PRINT #1:F! FOOD
870 PRINT #1:D! DEAD/FAILED
880 PRINT #1:B! BANKS 4K
890 PRINT #1:I! INCREMENTS
900 PRINT #1:C! COLUMN ME
910 PRINT #1:X! 8K ADDRESS
920 PRINT #1:M! BANKS 4K
930 CLOSE #1
940 FOR BANK=0 TO 84 STEP 2
950 CALL AMSBANK(BANK,BANK+1)
960 CALL BSAVE(P$&"ITDT"&STR$(PAGE))
970 PAGE=PAGE+1
980 CALL MOVES("RV",768,8192,0)
990 NEXT BANK
1000 PRINT "GAME SAVED!" :: END
1010 CALL SOUND(99,200,20,-5,0) :: RETURN
1020 ! WE HAVE A WINNER!
1030 CALL CLEAR :: CALL HPUT(12,5,"YOU ARE FREE AT LAST!!",24,7,"< PRESS ANY KEY >")
1040 DIM Y(6) :: RESTORE 1050
1050 DATA 247,262,294,330,349,392,440
1060 FOR Z=0 TO 6 :: READ Y(Z) :: NEXT Z
1070 Z=INT(RND*7) :: N=Z :: O=Z :: GOTO 1090
1080 O=N :: N=Z :: Z=INT(RND*7)
1090 CALL SOUND(-200,Y(Z),0,Y(N),9,Y(O),19)
1100 CALL KEY(0,K,G) :: IF G=0 THEN 1080 ELSE GOSUB 660 :: END
1110 ! TITLE SCREEN
1120 CALL CLEAR :: FOR Z=0 TO 8 :: CALL COLOR(Z,16,1) :: NEXT Z :: CALL SCREEN(2)
1130 FOR Z=9 TO 12 :: CALL COLOR(Z,2,1) :: NEXT Z
1140 CALL CHAR(128,"187E5A5A3C242424") :: CALL COLOR(13,5,1)
1150 CALL CHAR(111,"00003C3C3C000000") :: CALL COLOR(10,8,1)
1160 CALL CHAR(119,"FFFFFFFFFFFFFFFF") :: CALL CHAR(122,"00005A5A5A5A0000") :: CALL DUPCHAR(119,143) :: CALL COLOR(14,15,1)
1170 CALL CHAR(103,"007F7F7F7F7F7F00") :: CALL COLOR(9,12,1) :: RESTORE 1180
1180 DATA 73,78,32,84,72,69,32,68,65,82,75,32
1190 FOR Z=1 TO 12 :: READ K :: CALL SPRITE(#Z,K,15,29,Z*21) :: NEXT Z :: CALL MAGNIFY(2)
1200 CALL HPUT(12,15,"BY",18,8,"RICH GILBERTSON") :: GOSUB 1570
1210 ! LOADER FOR MAP
1220 CALL CLEAR :: CALL HPUT(17,4,"WHERE IS THE MAP?")
1230 CALL HPUT(20,3,"EXAMPLE: 1 OR DSK.VOLNAME.",23,3,"DISK # OR DEVICE PATH:") :: PRINT :: INPUT D$
1240 IF LEN(D$)=1 THEN P$="DSK"&D$&"." ELSE P$=D$
1250 CALL AMSINIT :: PRINT "LOADING..."
1260 FOR BANK=0 TO 84 STEP 2
1270 CALL AMSBANK(BANK,BANK+1)
1280 CALL BLOAD(P$&"ITDT"&STR$(PAGE))
1290 PAGE=PAGE+1 :: CALL MOVES("RV",768,8192,0) :: NEXT BANK
1300 PRINT "LOADING ASSEMBLY ROUTINES!" :: GOSUB 1610
1310 ! LOAD OLD GAME
1320 OPEN #1:P$&"SCORE",INPUT
1330 INPUT #1:W! 8K ADDRESS (ME)
1340 INPUT #1:T! TRAPS
1350 INPUT #1:S! SCANS
1360 INPUT #1:F! FOOD
1370 INPUT #1:D! DEAD/FAILED
1380 INPUT #1:B! BANKS 4K (ME)
1390 INPUT #1:I! INCREMENTS
1400 INPUT #1:C! COLUMN (ME)
1410 INPUT #1:X! 8K ADDRESS (ENEMY)
1420 INPUT #1:M! BANKS 4K (ENEMY)
1430 CLOSE #1 :: E=I
1440 CALL CLEAR :: CALL HPUT(24,2,"DO YOU WANT INSTRUCTIONS? Y/N") :: CALL KEY("YyNn",0,K,Z) :: CALL CLEAR
1450 ! INSTRUCTIONS
1460 CALL MAGNIFY(1) :: CALL DELSPRITE(ALL) :: IF K=78 OR K=110 THEN RETURN
1470 CALL HPUT(1,10,"IN THE DARK",3,1,"YOU HAVE BEEN CAPTURED AND ARE  NOW A TEST TEST SUBJECT.")
1480 CALL HPUT(5,1,"YOU HAVE A TOOL TO DISARM TRAPS.BUT YOU MUST GET ON HANDS AND",7,1,"KNEES TO FEEL THEM IN THE DARK.")
1490 CALL HPUT(9,1,"SPACE BAR TO FEEL AROUND YOU.   g IS A DISARMED TRAP.",11,1,CHR$(143)&" ARE WALLS FOUND.")
1500 CALL HPUT(12,1,"o IS FOOD AND SCAN CHIPS.",14,1,"ENTER KEY TO TURN ON SCAN CHIP.")
1510 CALL HPUT(16,1,"FREEDOM IS END OF THE TUNNEL!",18,1,"DO NOT TOUCH THE REPIAR BOT!",20,4,"YOU WILL DIE INSTANTLY!")
1520 CALL HPUT(22,1,"DISARMED TRAPS SLOWS REPAIR BOT!") :: GOSUB 1570
1530 CALL CLEAR :: CALL HPUT(1,10,"IN THE DARK",4,1,"(FNCT 7) SAVES THE GAME PROGRESS",6,1,"ARROWS OR ESDX KEYS ARE MOVEMENT")
1540 CALL HPUT(8,1,"SPACE BAR FEELS AROUND YOU",10,1,"ENTER IS SCAN CHIP (FULL SCREEN)",12,1,"P IS THE PAUSE KEY")
1550 CALL HPUT(14,1,"BY THE WAY THE REPAIR BOT MAKES A SOUND WHEN IT GETS CLOSE.")
1560 CALL HPUT(17,1,"THIS GAME USES 336K OF SAMS     MEMORY IN 43 FILES.",20,1,"SEE IF YOU CAN COMPLETE THE GAMEWITHOUT A SINGLE INJURY.")
1570 CALL HPUT(24,8,"<PRESS ANY KEY>") :: CALL KEY(0,K,Z) :: IF Z=0 THEN 1570 ELSE RETURN
1580 FOR Z=1 TO 24 STEP 4 :: CALL SOUND(100,110*Z,30-Z,44000/Z,Z) :: NEXT Z :: RETURN
1590 ! PAUSE KEY
1600 CALL CLEAR :: CALL HPUT(10,13,"PAUSED!") :: GOSUB 1570 :: GOTO 160
1610 ! EXECUTE ASSEMBLY
1620 CALL LOAD(-12288,0) :: CALL MOVES("RR",406,-12288,-12287)
1630 CALL LOAD(-12256,208,0,208,36,2,6,199,0,2,7,0,32,2,8,1,0,192,129,96,135,145,146,19,27)
1640 CALL LOAD(-12232,6,2,145,146,19,24,160,135,145,146,19,21,160,135,145,146,19,18,5,130,145,146)
1650 CALL LOAD(-12210,19,15,5,130,145,146,19,12,96,135,145,146,19,9,96,135,145,146,19,6)
1660 CALL LOAD(-12190,2,134,207,0,19,13,2,6,207,0,16,225,2,134,199,0,22,4,2,6,218,0,212,134)
1670 CALL LOAD(-12166,3,128,2,6,128,0,212,134,2,6,225,0,192,129,6,2,145,146,19,42,160,135)
1680 CALL LOAD(-12144,145,146,19,39,5,130,145,146,19,36,5,130,145,146,19,33,96,135,145,146)
1690 CALL LOAD(-12124,19,30,96,135,145,146,19,27,6,2,145,146,19,24,6,2,145,146,19,21,177,136)
1700 CALL LOAD(-12102,2,134,228,0,19,1,16,226,2,6,225,0,2,1,32,34,5,129,2,129,63,221,22,5,177,136)
1710 CALL LOAD(-12076,2,134,228,0,19,17,16,247,145,145,19,209,16,244,2,6,225,0,145,145,19,6)
1720 CALL LOAD(-12054,177,136,2,134,227,0,22,250,2,6,127,0,177,136,212,70,192,66,3,128)
1730 CALL LOAD(-12034,208,0,209,2,4,192,2,7,0,32,193,3,97,7,5,132,2,6,218,0,6,160,209,52,128,132)
1740 CALL LOAD(-12008,22,250,2,6,215,0,6,160,209,52,128,132,22,250,2,6,207,0,6,160,209,52)
1750 CALL LOAD(-11986,128,132,22,250,3,128,192,131,96,135,145,146,19,22,6,2,145,146,19,19)
1760 CALL LOAD(-11966,160,135,145,146,19,16,160,135,145,146,19,13,5,130,145,146,19,10,5,130)
1770 CALL LOAD(-11946,145,146,19,7,96,135,145,146,19,4,96,135,145,146,19,1,4,91,2,134,218,0)
1780 CALL LOAD(-11924,22,4,2,8,199,0,5,128,16,13,2,134,215,0,22,3,2,8,239,0,16,7)
1790 CALL LOAD(-11902,2,134,207,0,22,5,2,8,128,0,2,32,1,0,212,136,4,91)
1800 RETURN
Edited by RXB
  • 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...