RobertLM78 Posted June 25, 2014 Share Posted June 25, 2014 Hello again 99ers! I've got some more noob questions to bring to the table .Firstly, I noticed that when I dimension a string array in BASIC that stack is set aside for it. However, it appears to be a weird ~2.8 bytes per element that it sets aside - what is it putting in memory at that point, the name, location, and dimensions of the array? Also, if the stack fills up, will string variables/arrays start using the 'program' space, or is that when we get the infamous OUT OF MEMORY error? And the stack is HIGH memory, is it not?Now on to the SuperAMS. I have not been able to find much more than a schematic for this - no user docs whatsoever (I've pretty well scoured whtech and the 'net). The RXB manual mentions something about a 'MANUAL-AMS', but I haven't been able to find that.What I'd like to do I make use of this new memory toy (1 Meg AMS) with a couple programs (R/XB) I've got on the burner, but, I don't know how to use it. The AMS demo included with RXB appears to load screen dump files, but the two programs in the works use files of typesSEQUENTIAL,INTERNAL,FIXED 20andRELATIVE,INTERNAL,FIXED 108so I'm not sure that the approach used in the Demo really applies, especially since I would like to be able to manipulate the data in AMS memory. I would prefer (but perhaps may not be required for my purposes) to able to use arrays (and I mean big arrays ) in conjunction with the AMS, if possible.Well, I know I've asked a mouthful. But I think a good starting place would be to get my hands on a decent manual for the AMS card - I don't mind doing some reading . Thanks for reading buddies! Quote Link to comment Share on other sites More sharing options...
RobertLM78 Posted June 26, 2014 Author Share Posted June 26, 2014 (edited) Well, after some more research and some toying around I managed to figure out a few things. I figured out stack=LOW memory (please correct me if I'm wrong). I also wrote a small program to see how full I could fill the stack with string arrays, and answer my own question about whether HIGH memory becomes an overflow - indeed it does not. So disregard most of the above - the bottom line is, if I'm going to try load this data into RAM for faster access, I'm going to have to use the SAMS, so am I somehow missing more SAMS documentation on whtech? Perhaps it's with the RXB stuff? Specifically, I'd like to find the 'MANUAL-AMS' mentioned in the RXB manual (2012). I must be tired - I didn't sleep well last night - anyway, I did find some more in-depth material on whtech, it was buried in a some .dsk images. Edited June 26, 2014 by RobertLM78 Quote Link to comment Share on other sites More sharing options...
Stuart Posted June 26, 2014 Share Posted June 26, 2014 I thought with XB, variables are stored in VDP RAM? So they don't encroach on the program in CPU RAM at all? Quote Link to comment Share on other sites More sharing options...
RobertLM78 Posted June 26, 2014 Author Share Posted June 26, 2014 (edited) I believe it depends on what kind of variable - string variables are put in the stack (LOW) and I think numeric variables are put in 'program' (HIGH) memory. But yeah, once the LOW memory fills up, the program breaks: 100 CALL CLEAR 110 DIM A$(300,3),T$(300),S$(300),N$(300) 120 DISPLAY AT(3,1):"REC:" 130 OPEN #2:"WDS1.FILE",RELATIVE,INTERNAL,INPUT,FIXED 108 140 ROF=299 :: FOR I=1 TO ROF 150 DISPLAY AT(4,1):STR$(I) 160 INPUT #2,REC I:A$(I,0),A$(I,1),A$(I,2),T$(I),S$(I),N$(I) 170 IF EOF(2) THEN CLOSE #2 :: GOTO 200 180 IF A$(I,0)="" THEN CLOSE #2 :: GOTO 200 190 NEXT I 200 PRINT "RECORDS LOADED:";I 210 END There are about 180 records in FILE - it gets to 154 before the MEMORY FULL error shows up. Typing SIZE after running it gives about 64 bytes of stack free, and almost all the 'program' memory free (i.e., 24k, minus this little program, of course ). Edited June 26, 2014 by RobertLM78 Quote Link to comment Share on other sites More sharing options...
RobertLM78 Posted June 26, 2014 Author Share Posted June 26, 2014 Actually, another question that came to mind - what about the larger video RAM of the EVPC? Are programs designed for that setup the only way to make use of that extra memory? (BTW, I should mention I'm running EVPC with SAMS in MESS). Quote Link to comment Share on other sites More sharing options...
RobertLM78 Posted June 26, 2014 Author Share Posted June 26, 2014 I thought with XB, variables are stored in VDP RAM? So they don't encroach on the program in CPU RAM at all? So my recollection was right, numeric variables do go get stored in 'program' memory. 100 CALL CLEAR 110 DIM A(300,3),B(300),C(300),D(300) 120 FOR I=1 TO 299 130 DISPLAY AT(3,1):STR$(I) 140 A(I,0)=I :: A(I,1)=I :: A(I,2)=I :: B(I)=I :: C(I)=I :: D(I)=I 150 NEXT I Running SIZE when this is finished gives about 7k program space left, while this time stack is essentially untouched (about 11k). Quote Link to comment Share on other sites More sharing options...
Tursi Posted June 26, 2014 Share Posted June 26, 2014 STACK is VDP memory, as far as I remember, and PROGRAM is high memory. The low 8k of memory expansion is reserved for assembly subprograms. That's in XB anyway.. you need to get Rich's attention to get a description of RXB (which I know has functions for AMS use!) As far as I know (which is not very), no XB dialects use the expanded video RAM of alternate video chips...? 2 Quote Link to comment Share on other sites More sharing options...
RobertLM78 Posted June 26, 2014 Author Share Posted June 26, 2014 (edited) Thanks Tursi! As I was looking over the docs and some notes this morning I was wondering where VDP memory played in on the SIZE command. So SIZE ignores the LOW memory - that would also explain why SIZE gives the amount of 11838 bytes (with nothing in memory), as opposed to something along the lines of 8192 bytes. Edited June 26, 2014 by RobertLM78 Quote Link to comment Share on other sites More sharing options...
jacquesg Posted June 26, 2014 Share Posted June 26, 2014 Hello again 99ers! I've got some more noob questions to bring to the table . What I'd like to do I make use of this new memory toy (1 Meg AMS) with a couple programs (R/XB) I've got on the burner, but, I don't know how to use it. The AMS demo included with RXB appears to load screen dump files, but the two programs in the works use files of types SEQUENTIAL,INTERNAL,FIXED 20 and RELATIVE,INTERNAL,FIXED 108 so I'm not sure that the approach used in the Demo really applies, especially since I would like to be able to manipulate the data in AMS memory. I would prefer (but perhaps may not be required for my purposes) to able to use arrays (and I mean big arrays ) in conjunction with the AMS, if possible. Well, I know I've asked a mouthful. But I think a good starting place would be to get my hands on a decent manual for the AMS card - I don't mind doing some reading . Thanks for reading buddies! Hello Robert, Unless you have been there already, there is a lot of SAMS information in the FILES part of the SWPB section of Yahoo Groups. My SAMS card came with 3 dsk files containing mainly the SAMS manual written by Art Green. The three files which I subsequently uploaded are: _sw99ams1.dsk _sw99ams2.dsk _sw99ams3.dsk The Yahoo Group contains both a SWPB and a swpb section. The above files are in SWPB and include programs that can run from a SAMS card. A game named TI-Nopoly written jn a SAMS adaption of c99 is also included but unfortunately is without source code. I have these programs running on my real TI and on my MESS emulation. . Art Green writes excellent manuals so you may have filled up your reading schedule for the rest of the summer. RXB approach to deal with the contents of a SAMS memory card differs from Art's approach. Each has its purpose. Regards, Jacques 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted June 26, 2014 Share Posted June 26, 2014 STACK is VDP memory, as far as I remember, and PROGRAM is high memory. The low 8k of memory expansion is reserved for assembly subprograms. That's in XB anyway.. you need to get Rich's attention to get a description of RXB (which I know has functions for AMS use!) As far as I know (which is not very), no XB dialects use the expanded video RAM of alternate video chips...? Thanks for the plug Tursi. RXB uses SAMS by putting 2 4K pages in Lower 8K >2000 and >3000 in Hex of the Lower 8K with a RXB command CALL AMSBANK(1,2) You can have up to 240 pages of 4K pages thus 960K used for Lower 8K Assembly Support. I even have a RXB Built in Lower 8K loader that is much faster CALL LOAD("DSK#.XBASSM) Here is a Demo of what you can do: 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted June 26, 2014 Share Posted June 26, 2014 Here is the very last page of RXB documents: PAGE AMS1 AMS MAPPER ****************************************************************** The AMS card has tons of documents as to its function and use. So to re-explain these docs would be pointless. Read the docs or find some, sorry but the RXB package is already huge. In PASS mode the mapper register setup is equivalent to: mapper address mapper page num address range -------------- ------ -------- ------------- HEX Dec HEX Dec memory area --- --- --- --- ----------- >4004 = 16388 is MR02 = >02 = 02 points to >2000 - >2FFF range >4006 = 16390 is MR03 = >03 = 03 points to >3000 - >3FFF range >4014 = 16404 is MR10 = >0A = 10 points to >A000 - >AFFF range >4016 = 16406 is MR11 = >0B = 11 points to >B000 - >BFFF range >4018 = 16408 is MR12 = >0C = 12 points to >C000 - >CFFF range >401A = 16410 is MR13 = >0D = 13 points to >D000 - >DFFF range >401C = 16412 is MR14 = >0E = 14 points to >E000 - >EFFF range >401E = 16414 is MR15 = >0F = 15 points to >F000 - >FFFF range (MR=Mapper Register) In MAP mode the mapper register setup is equivalent to: EXAMPLE1 mapper address mapper page num address range -------------- ------ -------- ------------- HEX Dec HEX Dec memory area --- --- --- --- ----------- >4004 = 16388 is MR02 = >10 = 16 points to >2000 - >2FFF range >4006 = 16390 is MR03 = >11 = 17 points to >3000 - >3FFF range >4014 = 16404 is MR10 = >12 = 18 points to >A000 - >AFFF range >4016 = 16406 is MR11 = >13 = 19 points to >B000 - >BFFF range >4018 = 16408 is MR12 = >14 = 20 points to >C000 - >CFFF range >401A = 16410 is MR13 = >15 = 21 points to >D000 - >DFFF range >401C = 16412 is MR14 = >16 = 22 points to >E000 - >EFFF range >401E = 16414 is MR15 = >17 = 23 points to >F000 - >FFFF range (MR=Mapper Register) PAGE AMS2 In MAP mode the mapper register setup is equivalent to: EXAMPLE2 mapper address mapper page num address range -------------- ------ -------- ------------- HEX Dec HEX Dec memory area --- --- --- --- ----------- >4004 = 16388 is MR02 = >19 = 31 points to >2000 - >2FFF range >4006 = 16390 is MR03 = >01 = 01 points to >3000 - >3FFF range >4014 = 16404 is MR10 = >09 = 09 points to >A000 - >AFFF range >4016 = 16406 is MR11 = >00 = 00 points to >B000 - >BFFF range >4018 = 16408 is MR12 = >07 = 07 points to >C000 - >CFFF range >401A = 16410 is MR13 = >18 = 30 points to >D000 - >DFFF range >401C = 16412 is MR14 = >05 = 05 points to >E000 - >EFFF range >401E = 16414 is MR15 = >04 = 04 points to >F000 - >FFFF range (MR=Mapper Register) As you can see you can switch pages around all you want. Each 4K page of the AMS memory can be engaged even into every 4K section of the 32K at once. Thus giving multiple copies of the same 4K in every 4K chunk. Doing this has few uses but it demonstrates the flexibility of the AMS mapper. RXB limits the ability of the AMS slightly. All the memory of the AMS is used like this: 1. 32K is used for pass mode. Think of it like a normal TI. 24K for XB programs and variables, and lower 8K assembly support. 2. 32K is used for future use. Stashed away for RXB future use. Pages 0,1,4,5,6,7,8,9 are for future use. 3. 4K pages of the rest of the AMS are for AMSBANK, a RXB routine that needs two (2) 4K pages of the AMS for the lower 8K of Assembly support. Pages 16 to 255 AMSBANK. 4. If a 256K AMS is used by RXB then 32K PASS mode, 32K future use, and the rest for AMSBANK. So 32+32=64 and 256-64=192 then 192K of AMS 4K pages would be 192/4=48 or 48 pages of AMSBANK. Now the lower 8K needs two 4K pages because of course 8/4=2 so 48/2=24 and that means 24 8K assembly support routines from one XB program. PAGE AMS3 5. BSAVE and BLOAD in RXB are subroutines to save or load the lower 8K as Program Image files. 33 sectors in length they are only used by BSAVE or BLOAD. The reasons for BSAVE is to save the lower 8K in one easy to load chunk. ALSAVE that creates hidden loaders has one huge disadvantage. ALSAVE can only save one assembly support program at a time. Also it can't load more than one support routine and XB program to run it. BLOAD can load many support routines into the AMS and control them from one XB program. BLOAD and BSAVE can do what ALSAVE can't. Also up to 1Meg can be loaded into the AMS from one XB program and the same program run the assembly support routines. 6. ISR (Interrupt Service Routine) hooks are used by many XB programs so CALL ISROFF and CALL ISRON are for RXB to control the problems created by them. Also compatibility between software packages is ensured. 7. AMSBANK is the primary way RXB manages memory. pages 16 to 255 are numbers in AMSBANK as 0 to 240 so pages 2,3,10,11,12,13,14,15 are for pass mode and pages 0,1,4,5,6,7,8,9 are unused for future use. Thus 240*4=960K of AMS is in AMSBANK. Quote Link to comment Share on other sites More sharing options...
RXB Posted June 26, 2014 Share Posted June 26, 2014 Hello Robert, Unless you have been there already, there is a lot of SAMS information in the FILES part of the SWPB section of Yahoo Groups. My SAMS card came with 3 dsk files containing mainly the SAMS manual written by Art Green. The three files which I subsequently uploaded are: _sw99ams1.dsk _sw99ams2.dsk _sw99ams3.dsk The Yahoo Group contains both a SWPB and a swpb section. The above files are in SWPB and include programs that can run from a SAMS card. A game named TI-Nopoly written jn a SAMS adaption of c99 is also included but unfortunately is without source code. I have these programs running on my real TI and on my MESS emulation. . Art Green writes excellent manuals so you may have filled up your reading schedule for the rest of the summer. RXB approach to deal with the contents of a SAMS memory card differs from Art's approach. Each has its purpose. Regards, Jacques This is a RXB version of the original AMS disk that came with the 128K AMS card modified to use RXB commands instead of Assembly. It works with any size AMS or SAMS and uses no Assembly at all. 10 ! THIS PROGRAM HAS BEEN 11 ! MODIFIED SO NO ASSEMBLY 12 ! IS USED. RXB COMMANDS 13 ! ARE THE ONLY COMMANDS 14 ! USED. THAT MEANS THE 15 ! AMS CAN HAVE ANY PAGE 16 ! SWAPED FROM RXB. 17 !********************* 18 !* * 19 !* XB AMS CARD * 20 !* QUERY PROGRAM * 21 !* * 22 !********************* 23 !VERSION 1.07.951206 24 !BY P. E. SCHIPPNICK 25 !MODIFIED FOR RXB 26 !BY RICH GILBERTSON 27 CALL CLEAR :: GOSUB 28 :: GOTO 29 28 CALL VCHAR(1,31,31,96) :: RETURN 29 FOR I=1 TO 14 :: CALL COLOR(I,2, :: NEXT I 30 CALL SCREEN(15) 31 GOTO 33 32 DISPLAY AT(ROW,(28-LEN(TEXT$))/2):TEXT$ :: RETURN 33 ROW=10 :: TEXT$="TI EXTENDED BASIC" :: GOSUB 32 34 ROW=11 :: TEXT$="AMS CARD" :: GOSUB 32 35 ROW=12 :: TEXT$="QUERY PROGRAM" :: GOSUB 32 36 ROW=13 :: TEXT$="VERSION 1.07" :: GOSUB 32 37 ROW=15 :: TEXT$="BY P. E. SCHIPPNICK" :: GOSUB 32 38 ROW=17 :: TEXT$="MODIFIED FOR RXB" :: GOSUB 32 39 ! SET-UP ASSEM SUPPORT 40 GOSUB 109 41 ! TEST MAP/PASS 42 GOSUB 112 43 ! TEST FOR AMS SIZE 44 GOSUB 91 45 ! MAPPED PAGES 46 GOSUB 60 47 IF M2=M3 THEN CALL CLEAR :: GOSUB 28 :: PRINT:"* NO AMS CARD" :: CALL SOUND(150,219,5) :: END 48 CALL CLEAR :: GOSUB 28 49 ROW=1 :: TEXT$=" *** AMS QUERY PROGRAM ***" :: GOSUB 32 :: ROW=2 :: TEXT$="VERSION 1.07" :: GOSUB 32 50 AMSSIZE$=STR$(AMSSIZE)&"K RAM" 51 ROW=8 :: TEXT$=" AMS MEMORY = "&AMSSIZE$ :: GOSUB 32 52 IF MAPON=0 THEN ROW=12 :: TEXT$=" AMS CARD 32K PASS MODE" :: GOSUB 32 :: GOTO 59 53 ROW=9 :: TEXT$=" AMS IN MAPPED MEMORY MODE" :: GOSUB 32 54 ROW=12 :: TEXT$="PAGES 8K MEMORY:" :: GOSUB 32 55 ROW=13 :: TEXT$=STR$(M2+O*(M2>=O))&" "&STR$(M3+O*(M3>=O)) :: GOSUB 32 56 ROW=15 :: TEXT$="PAGES 24K MEMORY:" :: GOSUB 32 57 ROW=16 :: TEXT$=STR$(MA+O*(MA>=O))&" "&STR$(MB+O*(MB>=O))&" "&STR$(MC+O*(MC>=O))&" "&STR$(MD+O*(MD>=O))&" "&STR$(ME+O*(ME>=O))&" "&STR$(MF+O*(MF>=O)) :: GOSUB 32 58 ROW=18 :: TEXT$="1-"&STR$(AMSSIZE/4)&" PAGES AVAILBLE." :: GOSUB 32 59 END 60 ! MAPPED AT 23ABCDEF 61 CALL AMSON 62 CALL PEEK(24548,M2) :: CALL PEEK(24550,M3) :: CALL PEEK(24564,MA) :: CALL PEEK(24566,MB) :: CALL PEEK(24568,MC) :: CALL PEEK(24570,MD) :: CALL PEEK(24572,ME) 63 CALL PEEK(24574,MF) 64 CALL AMSOFF 65 RETURN 66 ! MAP 2,3,A,B,C,D,E,F 67 CALL AMSON 68 CALL LOAD(24548,2) :: CALL LOAD(24550,3) :: CALL LOAD(24564,10) :: CALL LOAD(24566,11) :: CALL LOAD(24568,12) :: CALL LOAD(24570,13) :: CALL LOAD(24572,14) 69 CALL LOAD(24574,15) 70 CALL AMSOFF 71 RETURN 72 ! MAP 23 ABCDEF 73 GOSUB 66 74 CALL AMSMAP 75 RETURN 76 ! MAP 23 ABCDEF 77 GOSUB 66 78 CALL AMSPASS 79 RETURN 80 ! MAP MODE ON/OFF 81 CALL AMSON :: CALL PEEK(-31804,H1,H2) :: IF H1+H2 THEN CALL ISROFF(ADDRESS) 82 CALL PEEK(24548,M2) :: CALL PEEK(24550,M3) :: CALL LOAD(24550,M2) :: CALL PEEK(8198,A1,B1) :: CALL PEEK(12294,A2,B2) 83 IF A1=A2 AND B1=B2 THEN MAPON=1 ELSE MAPON=0 84 CALL LOAD(24550,M3) 85 IF H1+H2 THEN CALL ISRON(ADDRESS) 86 CALL AMSOFF 87 RETURN 88 CALL PEEK(12288,OLDV) :: NEWV=255-OLDV :: CALL LOAD(12288,NEWV) :: CALL PEEK(12288,TESTV) :: IF TESTV<>OLDV AND TESTV=NEWV THEN MEM=1 ELSE MEM=0 89 IF MEM=1 THEN CALL LOAD(12288,OLDV) 90 RETURN 91 ! FIND AMS SIZE 92 GOSUB 80 :: IF MAPON=0 THEN GOSUB 72 93 CALL PEEK(-31804,H1,H2) :: IF H1+H2 THEN CALL ISROFF(ADDRESS) 94 ! MAP LOWER PAGES 23 95 CALL AMSON :: CALL PEEK(24548,M2) :: CALL PEEK(24550,M3) 96 CALL LOAD(24548,2,"",24550,3) :: GOSUB 109 97 CALL PEEK(8194,MB1,LB1,MB2,LB2) :: CALL LOAD(8194,MB2,LB2,MB1,LB1) 98 ! 1024K/4=240 PAGES 99 E=256 :: CALL PEEK(24550,M3) 100 CALL LOAD(24550,2+E) :: CALL PEEK(12290,A,B,C,D) :: IF A=MB2 AND B=LB2 AND C=MB1 AND D=LB1 THEN AMSSIZE=E*4 :: GOTO 104 101 GOSUB 88 :: IF MEM=0 THEN AMSSIZE=E*4 :: GOTO 104 102 E=E+32 :: IF E<255 THEN 100 103 AMSSIZE=E*4 104 CALL LOAD(24550,2) :: CALL LOAD(8194,MB1,LB1,MB2,LB2) :: CALL LOAD(24548,M2,"",24550,M3) 105 IF MAPON=0 THEN CALL AMSPASS 106 IF H1+H2 THEN CALL ISRON(ADDRESS) 107 CALL AMSOFF 108 RETURN 109 ! EXPANSION MEMORY? 110 CALL PEEK(-31863,A) :: IF A<>231 THEN CALL SOUND(150,218,0) :: PRINT "* NO EXPANSION MEMORY" :: STOP 111 RETURN 112 ! TEST MAP/PASS MODE? 113 CALL AMSON :: CALL PEEK(24544,M0) :: CALL LOAD(24544,0) :: CALL PEEK(24544,O) :: CALL LOAD(24544,M0) :: CALL AMSOFF :: RETURN 114 END Quote Link to comment Share on other sites More sharing options...
RobertLM78 Posted June 27, 2014 Author Share Posted June 27, 2014 Hello Robert, Unless you have been there already, there is a lot of SAMS information in the FILES part of the SWPB section of Yahoo Groups. My SAMS card came with 3 dsk files containing mainly the SAMS manual written by Art Green. The three files which I subsequently uploaded are: _sw99ams1.dsk _sw99ams2.dsk _sw99ams3.dsk The Yahoo Group contains both a SWPB and a swpb section. The above files are in SWPB and include programs that can run from a SAMS card. A game named TI-Nopoly written jn a SAMS adaption of c99 is also included but unfortunately is without source code. I have these programs running on my real TI and on my MESS emulation. . Art Green writes excellent manuals so you may have filled up your reading schedule for the rest of the summer. RXB approach to deal with the contents of a SAMS memory card differs from Art's approach. Each has its purpose. Regards, Jacques Heya Jacques, indeed, I found those disks late last night - that documentation is a little buried. I was expecting the docs to have been converted to pdf by this point . Having glanced through the disks, I would have to agree, the documentation is quite thorough. It looks like it's all assembly support, so RXB will probably be the most direct approach. Rich - thanks for chiming in buddy! So, am I understanding you correctly then that RXB SAMS support is assembly program files only, or can one use it for variable space? If variables can be used, how might I adapt my program above to start passing the stack into pages of AMS memory? I've figured I'd need 9 4K pages to load all the data this program needs, the problem is, I just don't know what I'm doing, or if it's even possible. Quote Link to comment Share on other sites More sharing options...
jacquesg Posted June 27, 2014 Share Posted June 27, 2014 I think the point that Rich was making is that RXB uses SAMS memory without using assembly. He is correct considering that RXB commands resemble an Extended Basic program by the use of line numbers with its command statements. However, I wonder if we are getting into a question of semantics with the extensive use of CALL LOAD and CALL PEEK statements in the Query Program example. It has been a few years since I last used either SAMS or RXB. These are now on my 'To Do' list as I slowly work my way back into using my real iron TI-99/4A and its MESS emulator. In considering Robert's FILES question, you must remember that the SAMS memory card loses its contents when the computer is turned off. Perhaps this is why I have never seen a SAMS program that retains contents when turned off. Art Green's Menu Loader program allowed you to place a number of .assembly programs in SAMS memory and they could be instantly accessed as long as the TI was still on. There is also a SAMS program that played XB music programs temporarily loaded on a SAMS card. Robert, you should be able to place your arrays on the SAMS card while you update them but you will have to save their content to external storage before shutting down your TI or emulator. Of course, your arrays could be put on HRD or even on hard disks. Mess can handle pretty large ram or hard disks and these do not lose contents when MESS is turned off. Just some thoughts to consider, Jacques . Quote Link to comment Share on other sites More sharing options...
RobertLM78 Posted June 27, 2014 Author Share Posted June 27, 2014 (edited) Robert, you should be able to place your arrays on the SAMS card while you update them but you will have to save their content to external storage before shutting down your TI or emulator. Of course, your arrays could be put on HRD or even on hard disks. Mess can handle pretty large ram or hard disks and these do not lose contents when MESS is turned off. Just some thoughts to consider, Jacques Hi Jacques - you're reading my mind bud. Loading the arrays from disk, updating them, and then saving them back to hard disk is exactly what I have in mind, so I don't mind if the data is lost after shutting down . That said, I've not played with any kind of RAMdisk on MESS yet, but if one can be reasonably accessed through BASIC for use with the program, I'd sure give the device consideration. I have a version a program that keeps all this data on the disk, even when updating, but I'd like to speed up its performance by making use of the whopping memory offered by SAMS, as well as adding some features - a new program using SAMS might even make for a good demonstration, in the end . Edited June 27, 2014 by RobertLM78 Quote Link to comment Share on other sites More sharing options...
jacquesg Posted June 27, 2014 Share Posted June 27, 2014 (edited) Robert, As you know I set up MESS using QM2C. If it is of any help to you I have listed the slot settings that I have used for a basic TI-99/4A configuration with 4 RML choices and one with changes to support HSGPL. FWB HSGPL EVPC HSGPL grom port multi none not used joy port twin joy twin joy twin joy peb: slot 2 samsmem samsmem evpc slot 3 horizon horizon horizon slot 4 tirs232 tirs232 samsmem slot 5 not used hsgpl hsgpl slot 6 speech speech tirs232 slot 7 not used not used not used Until I looked this morning I could have sworn that slot 7 contained hfdc. I will have to look into this because the MESS configuration seems to run without hfdc. Over the last week or so I have been reorganizing things on my real TI-99/4a. Bye for now, Jacques . Edited June 27, 2014 by jacquesg Quote Link to comment Share on other sites More sharing options...
RobertLM78 Posted June 27, 2014 Author Share Posted June 27, 2014 (edited) Bonjour Jacques. This question is slightly off-topic, but, the HSPGL needs to have a machine with no grom port? (I've tried to get it to work before and had trouble, so I suspect that might be the reason). Here's my slot setup: ti99_4ev: -peb:slot3 speech -peb:slot4 samsmem -peb:slot5 pcode -peb:slot6 tirs232 -peb:slot8 hfdc The SAMS is definitely working where it is, as I've ran Rich's AMSLDRDEMO, as well as checked its availability with SIZE. I just don't know how to load variables there, but I think I might know where to start trying - I have a hunch VDP memory map (Stack) and the RXB commands MOVES and AMSBANK are going to be key (if, of course, loading variables into SAMS is possible at all). Edited June 27, 2014 by RobertLM78 Quote Link to comment Share on other sites More sharing options...
RobertLM78 Posted June 27, 2014 Author Share Posted June 27, 2014 Is XBASIC stack (11838 bytes) somewhere in the >0800 to >37D7 (about 12k bytes) range of VDP RAM? Quote Link to comment Share on other sites More sharing options...
Gazoo Posted June 27, 2014 Share Posted June 27, 2014 Bonjour Jacques. This question is slightly off-topic, but, the HSPGL needs to have a machine with no grom port? (I've tried to get it to work before and had trouble, so I suspect that might be the reason). Yes, plugging in a cartridge disables the HSGPL, just like with a real TI. Gazoo Quote Link to comment Share on other sites More sharing options...
RobertLM78 Posted June 27, 2014 Author Share Posted June 27, 2014 (edited) Yes, plugging in a cartridge disables the HSGPL, just like with a real TI. Gazoo Thanks Gazoo - I don't have an HSGPL for the real iron . I've wanted to check out all the available hardware for the TI in MESS. (BTW, the specs to my real iron setup are in my signature ). Edited June 27, 2014 by RobertLM78 Quote Link to comment Share on other sites More sharing options...
RobertLM78 Posted June 27, 2014 Author Share Posted June 27, 2014 I've been POKEVing addresses >0800 to >37D7 after running the program that loads the data file, it's hard to say if that's where my arrays are located. The first field of the first record (A$(1,0)) has the name 'ADAMS' in it, I found a 65 and 68 close to the beginning for the POKEV routine, but it didn't have another 65 following the 68 (although the RXB manual says something about offset of 96 - but that would give -96 for the first 20 bytes or so, which are currently all zeros). Quote Link to comment Share on other sites More sharing options...
jacquesg Posted June 27, 2014 Share Posted June 27, 2014 Bonjour Jacques. This question is slightly off-topic, but, the HSPGL needs to have a machine with no grom port? (I've tried to get it to work before and had trouble, so I suspect that might be the reason). Here's my slot setup: ti99_4ev: -peb:slot3 speech -peb:slot4 samsmem -peb:slot5 pcode -peb:slot6 tirs232 -peb:slot8 hfdc The SAMS is definitely working where it is, as I've ran Rich's AMSLDRDEMO, as well as checked its availability with SIZE. I just don't know how to load variables there, but I think I might know where to start trying - I have a hunch VDP memory map (Stack) and the RXB commands MOVES and AMSBANK are going to be key (if, of course, loading variables into SAMS is possible at all). I edited my previous message to show the slot settings for my MESS EVPC HSGPL set up. QM2C numbers slots from 0 to 7. I seem to remember Michael saying that evpc had to be in slot 2. Is that what you have? I also do not know how to load variables in a SAMS card. When I last programmed with the SAMS card I used the supplied c99 program. It has been a number of years since I last programmed using c99 and in particular the version for use with the SAMS card. Regards, Jacques Quote Link to comment Share on other sites More sharing options...
RobertLM78 Posted June 27, 2014 Author Share Posted June 27, 2014 (edited) I edited my previous message to show the slot settings for my MESS EVPC HSGPL set up. QM2C numbers slots from 0 to 7. I seem to remember Michael saying that evpc had to be in slot 2. Is that what you have? Absolutely - I have the EVPC running with all the mentioned slot devices (I had just copied the line from my start script, which only requires slot2 to be free ) I also do not know how to load variables in a SAMS card. When I last programmed with the SAMS card I used the supplied c99 program. It has been a number of years since I last programmed using c99 and in particular the version for use with the SAMS card. Regards, Jacques C99 is a C compiler isn't it? I don't know much C yet. I think using RXB and loading the variables into SAMS is the way I'd like to go, if possible. It would probably make for a good example too, as I mentioned earlier, since the examples in the RXB manual don't do anything with variables. Edited June 27, 2014 by RobertLM78 Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted June 27, 2014 Share Posted June 27, 2014 Is XBASIC stack (11838 bytes) somewhere in the >0800 to >37D7 (about 12k bytes) range of VDP RAM? Here's what Thierry Nouspikel says: VDP RAM in XB ...lee 1 Quote Link to comment Share on other sites More sharing options...
RobertLM78 Posted June 27, 2014 Author Share Posted June 27, 2014 (edited) So would this be the place (bold and italics)? >0000 +-------------------------+ <--- VR2=00, VR4=00, VR6=00 | Screen image table | | Also char + sprite | | (not used) patterns | >0300 +-------------------------+ <--- VR5=06 | Sprite attributes table | >0370 +-------------------------+ | XB system area | >03F0 +-------------------------+ | Char patterns >2E-8F | | Also sprite patterns | >0780 +-------------------------+ | Sprite motion table | >0800 +-------------------------+ <--- VR3=20 | Color table | >0820 +-------------------------+ | Crunch buffer | >08C0 +-------------------------+ | Edit/recall buffer | >0958 +-------------------------+ <--- VR4=01 | Value stack | <--- @>8324 | | <--- @>836E | PAB list | <--- @>833C | | | String space | <--- @>831A | | <--- @>8318 | Symbol table | <--- @>833E (if no mem exp) | | | Line number table | <--- @>8330 (if no mem exp) | | <--- @>8332 | Statement list | >37D8 +-------------------------+ <--- @>8370 | File buffers (3 files) | >3FFF +-------------------------+ VR0=0, VR1=E0, VR7=07 What's up with those addresses - aren't they out of range (831A and 8318)? (Sorry for my naiveté ). Now, I would imagine variables names have to be kept somewhere, too, and would have to 'come along for the ride' when moving between pages of SAMS and stack(?). This also makes me wonder if I would need separately named arrays for each page of SAMS, or if one name may be used for all pages... Edited June 27, 2014 by RobertLM78 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.