+arcadeshopper Posted April 16, 2020 Share Posted April 16, 2020 10 minutes ago, OLD CS1 said: @RXB Yeah, unfortunately that does not have the build number. But you can get that using the winver.exe command. @arcadeshopper might be onto something. Some AMD system OEMs build their systems with both Intel and AMD drivers to save time on imaging. This has been known to cause various ridiculous problems. Is yours home-built or is it an ASUS OEM build? Another thing to consider is if your BIOS is up-to-date (cannot recall if you addressed this.) BIOS updates will contain errata updates for CPUs, and some CPUs have silly little bugs (like the kind that can cause Excel spreadsheets to randomly crash -- hand to God, a BIOS update actually fixed this problem.) yepyep.. this is why I always check updates.. and.. never use AMD save 40 bucks.. waste 300 hours Quote Link to comment Share on other sites More sharing options...
RXB Posted April 16, 2020 Share Posted April 16, 2020 1 hour ago, arcadeshopper said: in that capture you left out the build no I see your problem.. ryzen cpu's lock up running classic99.. (joke) I've run batch 3 times so far no lockups.. twice from rxb and one from the menu .. it does however stop after the copy to TEST3 command. not sure if the copy with classic99 is truncated or just ends abruptly Yea the lock ups sometimes just are non responsive for a few minutes or just briefly like 1 minute, other times just nothing works, but you can get the Debugger running. Trouble is when you get the Debugger screen nothing is moving and nothing works to get it to start running again. Has to be something in Windows 10 doing this as everything else is fine with Windows 10 otherwise. Like I said thousands of Apps in also get this problem, definitely a Microsoft created issue. Quote Link to comment Share on other sites More sharing options...
+FarmerPotato Posted April 16, 2020 Share Posted April 16, 2020 38 minutes ago, arcadeshopper said: yepyep.. this is why I always check updates.. and.. never use AMD save 40 bucks.. waste 300 hours Maybe... I built my PC 7 years ago on an AMD FX-8350, and it has been running smoothly ever since. (still on Windows 7.) It is my engineering workstation. MS Office, LabView, Kicad, Virtualbench, CorelDraw, Diamond Lattice, Vivado, and of course Classic99, everything I throw at it. Quote Link to comment Share on other sites More sharing options...
+arcadeshopper Posted April 16, 2020 Share Posted April 16, 2020 Maybe... I built my PC 7 years ago on an AMD FX-8350, and it has been running smoothly ever since. (still on Windows 7.) It is my engineering workstation. MS Office, LabView, Kicad, Virtualbench, CorelDraw, Diamond Lattice, Vivado, and of course Classic99, everything I throw at it. For every one person with no issues I have 10 with "weird behavior"Sent from my LM-G820 using Tapatalk Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted April 16, 2020 Share Posted April 16, 2020 1 hour ago, FarmerPotato said: I built my PC 7 years ago on an AMD FX-8350, and it has been running smoothly ever since. (still on Windows 7.) It is my engineering workstation. YOU built it... that is the key. OEMs have been historically just awful with their AMD systems. This came to light several times regarding OS upgrades where the presence of Intel drivers caused Windows upgrades to fail. Several Microsoft Knowledge Base articles existed (might still) on the matter. I recall one such instance where it lead to computers which would not boot. Lazy, lazy OEMs. 3 Quote Link to comment Share on other sites More sharing options...
+dhe Posted April 16, 2020 Author Share Posted April 16, 2020 classic99 with a ryzen 4 processor and 64gb of memory, win1909 and I have accidentally left classic99 running over night with no issues. 1 Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted April 16, 2020 Share Posted April 16, 2020 45 minutes ago, FarmerPotato said: Maybe... I built my PC 7 years ago on an AMD FX-8350, and it has been running smoothly ever since. (still on Windows 7.) It is my engineering workstation. MS Office, LabView, Kicad, Virtualbench, CorelDraw, Diamond Lattice, Vivado, and of course Classic99, everything I throw at it. Reminds me of a friend who, like me, built his own machines. Except that he always went for the cheap ram, cheaper parts, etc. I went for moderately priced, trusted components. I swear he reloaded his machines every few weeks; I usually get a few years out of my OS/system before I reload just to freshen things up on my own, except for the few times I've had a drive nosedive. So I always wonder if a lot of the problems people experience with corruption of OS are really manifestations of substandard hardware. Anyway... I ran Classic99 on my Win10 machine yesterday and today, without restarting it, with no issues. 1 Quote Link to comment Share on other sites More sharing options...
+FarmerPotato Posted April 16, 2020 Share Posted April 16, 2020 54 minutes ago, OLD CS1 said: YOU built it... that is the key. OEMs have been historically just aweful with their AMD systems. This came to light several times regarding OS upgrades where the presence of Intel drivers caused Windows upgrades to fail. Several Microsoft Knowledge Base articles existed (might still) on the matter. I recall one such instance where it lead to computers which would not boot. Lazy, lazy OEMs. Maybe I got lucky. I went over to MicroCenter and talked to a sales clerk about what they had on the shelf. I got the newest Gigabyte mobo supporting AM3+ socket. I've had flaky mobos in the past, but not this one. I think I have 16GB of Corsair RAM. I've upgraded the video card once (both ATI), moved to an SSD, and added that MemoryBoost thing on a stick. The only complaint I have about the Gigabyte Mobo is that it still takes 3 tries to plug in a USB. Sometimes more, because of SATA plugs that look like USB. 3 Quote Link to comment Share on other sites More sharing options...
Tursi Posted April 17, 2020 Share Posted April 17, 2020 19 hours ago, RXB said: RXB 2020 GRAM unfinished? Really? You can do same this with RXB 2015, just load the Object files into GRAM in Classic99 and use the CALL USER("DSK1.BATCH") file and after a few times Classic99 will lock up. Or load the GRAMs and Assemble the DV80 files using GPL Assembler and at times it will lock up Classic99. All of these are in RXB 2012 and RXB 2015 package including the GPL Assembler and GPL@LOADER Tursi is right it has something to do with Keys but I have no idea what is the reason. You said it has something to do with keys, I still have not drawn conclusions. I can't reproduce it - until I can, I can't investigate. I'm also suspicious that it's something on your machine because I also run 64-bit Windows and plenty of 32-bit apps without issue. However I don't accept that it's going to crash all the time, I don't permit that situation to persist. I remove the crashing software. You /do/ use Classic99 in a manner that most people do not, that's why I keep an open mind that it could be my bug. But we need to figure out what makes it happen more reliably. Or I need to get lucky, one or the other. Quote Link to comment Share on other sites More sharing options...
Tursi Posted April 17, 2020 Share Posted April 17, 2020 19 hours ago, RXB said: You can do same this with RXB 2015, just load the Object files into GRAM in Classic99 and use the CALL USER("DSK1.BATCH") file and after a few times Classic99 will lock up. Just to be clear -- can I get the DSK1.BATCH file? Also, anything disk related I need to know - are you using images or files? Quote Link to comment Share on other sites More sharing options...
+arcadeshopper Posted April 17, 2020 Share Posted April 17, 2020 Just to be clear -- can I get the DSK1.BATCH file? Also, anything disk related I need to know - are you using images or files? It's in the Richard Gilbertson folder at least I found one there.. been through it 5 times nowSent from my LM-G820 using Tapatalk Quote Link to comment Share on other sites More sharing options...
RXB Posted April 17, 2020 Share Posted April 17, 2020 3 hours ago, Tursi said: Just to be clear -- can I get the DSK1.BATCH file? Also, anything disk related I need to know - are you using images or files? DSK1.BATCH is included in the RXB 2015 package. It is also in RXB 2000, 2001, 2011, and 2012 also. No not using disk images just FAID files and folders. I make a Text File in Windows Note Pad, use TIDIR to make it a DV80 file in a DSK 1 to 9 then use this XB program: 100 OPEN #1:"DSK8.USERDEMO",INPUT 110 OPEN #2:"DSK8.BATCH",OUTPUT 120 LINPUT #1:Z$ 130 IF LEN(Z$)=80 THEN X$=X$&Z$ :: GOTO 120 140 IF LEN(Z$)<80 THEN PRINT #2:X$&Z$&CHR$(13) 150 X$,Z$="" :: GOTO 120 When it beeps or crashes take your pick I type: CALL CLSALL From here you can type: CALL XB From Title screen push COMMA key on keyboard. Then push number 8 on keyboard as that is disk USERDEMO is on and BATCH is the end result file. Now you are running BATCH on RXB in 2001 to 2015 versions. Quote Link to comment Share on other sites More sharing options...
RXB Posted April 17, 2020 Share Posted April 17, 2020 Well this is the new BATCH file for RXB 2020 in case you want to see it, but of course only runs on RXB 2020. ! COPY this file to a empty ! DISK 1, under name "BATCH" ! then type: ! CALL USER("DSK1.BATCH") ! Print out a copy to follow ! along with the program ! PRESS ANY KEY CALL KEY("",5,K,S) NEW ! As you can see RXB KEY ! has been modified to ! accept empty strings ! PRESS ANY KEY CALL KEY("",5,K,S) NEW CALL QUITON ! To follow along with this ! demo print it out first ! PRESS ANY KEY TO CONTINUE ! PRESS QUIT TO EXIT USER CALL KEY("",5,K,S) NEW ! RXB CALL KEY UPDATED ! Normal XB CALL KEY(1,A,X)::CALL KEY(2,B,Y) ! RXB UPDATE CALL KEY(1,A,X,2,B,Y) ! See no double Colon needed ! or added to RXB version ! (HINT: press space bar) CALL KEY(" ",5,K,S) NEW ! RXB ADDS A STRING CHECK ! (HINT: press Y N y n) CALL KEY("YyNn",5,K,S) ! (HINT: press a number) CALL KEY("1234567890",5,K,S) ! (HINT: press ENTER) CALL KEY(CHR$(13),5,K,S) ! (HINT: press a symbol) V$="`~!@#$%^&*()-_=+[]\{}|" CALL KEY(V$,5,K,S) ! Much less XB code in RXB ! than in normal XB to do ! same thing CALL KEY("",5,K,S) NEW ! Normal XB CALL KEY routine 100 PRINT "CHOOSE A KEY: Yes, No, Maybe, END" 110 CALL KEY(3,K,S) 120 IF K=89 THEN PRINT "YES" :: GOTO 110 130 IF K=78 THEN PRINT "NO" :: GOTO 110 140 IF K=77 THEN PRINT "MAYBE" :: GOTO 110 150 IF K=69 THEN PRINT "END" :: END 160 GOTO 110 ! HINT: (press any key) CALL KEY("",5,K,S) RUN SAVE "DSK1.XBKEYSCAN",IV254 NEW ! RXB CALL ONKEY routine 100 ! RXB CALL ONKEY 110 PRINT "CHOOSE A KEY: Yes, No, Maybe, END" 120 CALL ONKEY("YNME",3,K,S) GOTO 140,150,160,170 130 GOTO 120 140 PRINT "YES!" :: GOTO 120 150 PRINT "NO!" :: GOTO 120 160 PRINT "MAYBE!" :: GOTO 120 170 PRINT "END!" ! (HINT: press any key) CALL KEY("",5,K,S) RUN SAVE "DSK1.RXBONKEY",IV254 NEW ! RXB can save most files inINTERNAL VARIABLE 254 formatinstead of PROGRAM format ! RXB makes cataloging filesbetter for you to use as PROGRAM format is confused ! with Assembly Programs often, so RXB fixed this! ! Tack a comma and IV254 to change from XB Program Image to IV254 format ! EXAMPLE: SAVE "DSK1.IV-Format",IV254 CALL KEY("",5,K,S) 1 ! MERGE TO SHOW ADDRESS AND LINE SIZE OF PROGRAMS 2 CALL CLEAR :: PRINT:"Output to Device? (Y/N)" :: CALL KEY("YN",3,K,S) :: IF K=89 THEN INPUT "DEVICE:":Z$ :: OPEN #1:Z$,OUTPUT :: P=1 3 CALL CLEAR :: CALL PEEK(-31952,A,B,C,D) :: A=A*256+B-65536 :: C=C*256+D-65536 :: PRINT #P:" PROGRAM INFORMATION": :"Line Number Table" :: CALL HEX(A,A$,C,C$) 4 PRINT #P: :"Start Address ";A$:"End Address ";C$: : :"Line Bytes Start":"Number Used Address":"------ ----- -------" 5 FOR I=C-3 TO A STEP-4 :: CALL PEEK(I,B,D,E,F) :: B=B*256+D :: E=E*256+F-65536 :: CALL PEEK(E-1,D) :: D=D+5 :: T=T+D :: CALL HEX(E,E$) 6 PRINT #P,USING "##### ### ######":B,D,E$ :: IF E THEN CALL SCREEN(6) :: GOSUB 8 7 NEXT I :: A=(A-C-1)/-4 :: PRINT #P: : :TAB(8);"Total Bytes =";T:" Number of lines =";A:"Average Bytes/Line =";INT(T/A) :: STOP 8 IF Z$="" THEN CALL KEY("",3,D,E) :: CALL SCREEN(8) :: RETURN ELSE RETURN SAVE "DSK1.LINESHOW",IV254 ! See above comma and IV254 this is an added RXB option ! Now if the XB program is smaller then 2 sectors it will be saved in program image format instead the reason is 254 filler bytes waste space CALL KEY("",5,K,S) NEW ! RXB also has a catalog routine CALL CAT(1) or ! CALL CAT("DSK1.") or CALL CAT(49) this would be char 1 in ASCII ! RXB is smarter then most other XB versions to catalogdrives ! RAMDISK can use CALL CAT("DSKA.") or CALL CAT(65) or CALL CAT(A) CALL KEY("",5,K,S) CALL CAT(49) ! That was using CALL CAT(49) character 1 in ASCII ! Hey notice the IV254 LINESHOW 6 sectors long? CALL KEY("",5,K,S) NEW ! RXB CALL JOYST UPDATED ! NORMAL XB CALL JOYST(1,A,B) :: CALL JOYST(2,C,D) ! RXB UPDATE CALL JOYST(1,A,B,2,C,D) CALL KEY("",5,K,S) NEW 100 ! JOYLOCATE JOYST + LOCATE + IF KEY GOTOLINE NUMBER 110 ! As this does all this in a single command should be used in pllace of normal XB more compliated version 120 CALL CLEAR 130 CALL CHAR(143,"FFFFFFFFFFFFFFFF") 140 CALL SPRITE(#1,143,2,9,190) 150 CALL JOYLOCATE(1,X,Y,8,8,#1,R,C,K)GOTO 180 160 PRINT X;Y;K;R;C 170 GOTO 150 180 PRINT X;Y;K;R;C;"FIRE" 190 GOTO 150 SAVE "DSK1.JLOCATE",IV254 CALL KEY("",5,K,S) NEW 100 ! RXB CALL JMOTION 110 ! JOYMOTION JOYST + MOTION + IF KEY GOTOLINE NUMBER 120 ! As this does all this in a single command should be used in pllace of normal XB more compliated version 130 CALL CLEAR 140 CALL CHAR(143,"FFFFFFFFFFFFFFFF") 150 CALL SPRITE(#1,143,2,9,190,20,0) 160 CALL JOYMOTION(1,X,Y,#1,9,9,K)GOTO 190 170 PRINT X;Y,K 180 GOTO 160 190 PRINT X;Y,K;"FIRE" 200 GOTO 160 SAVE "DSK1.JMOTION",IV254 CALL KEY("",5,K,S) NEW 100 ! RUN FOR ONE HOUR AND COMPARE PRINT X XB VS RXB 110 ! NORMAL XB DISTANCE 120 CALL CLEAR :: X=190 130 CALL SPRITE(#1,65,2,9,X,20,0,#2,66,2,9,X,30,0,#3,67,2,9,X,-20,0) 140 CALL DISTANCE(#1,#2,D) 150 CALL DISTANCE(#1,#3,E) 160 CALL DISTANCE(#2,#3,F) 170 X=X+1 :: PRINT D;E;F 180 GOTO 140! X IS COUNTER 190 ! 200 ! RXB DISTANCE 210 CALL CLEAR :: X=190 220 CALL SPRITE(#1,65,2,9,X,20,0,#2,66,2,9,X,30,0,#3,67,2,9,X,-20,0) 230 CALL DISTANCE(#1,#2,D,#1,#3,E,#2,#3,F) 240 X=X+1 :: PRINT D;E;F 250 GOTO 230! X IS COUNTER ! RUN FOR 1 HOUR TEST OF ! NORMAL DISTANCE XB VS RXB SAVE "DSK1.DISTANCE",IV254 CALL KEY("",5,K,S) NEW ! RXB CALL COLOR UPDATED ! NORMAL XB FOR L=0 TO 14 :: CALL COLOR(L,2,11) :: NEXT L ! RXB COLOR UPDATE CALL COLOR(ALL,2,11) CALL KEY("",5,K,S) NEW ! RXB CALL GCHAR UPDATED ! NORMAL XB CALL GCHAR(22,3,A) :: CALL GCHAR(22,4,B) :: CALL GCHAR(22,5,C) ! RXB GCHAR UPDATE CALL GCHAR(22,3,A,22,4,B,22,5,C) ! As you can see saves bytes ! and much faster CALL KEY("",5,K,S) ! RXB has HGET like GCHAR but like multiple HCHAR & VCHAR in a row unlike GCHAR 1 character at a time ! RXB has a huge advantage for saving program space and making faster programs CALL HGET(23,1,14,X$) CALL VGET(21,3,4,Y$) CALL KEY("",5,K,S) PRINT X$:Y$ ! HGET & VGET are way betterthen GCHAR to use obviously CALL KEY("",5,K,S) NEW ! RXB CALL HCHAR UPDATED ALSO VCHAR UPDATED ! NORMAL XB CALL HCHAR(9,25,33,5) :: CALL HCHAR(10,25,33,6) :: CALL HCHAR(11,25,33,7) ! RXB UPDATE CALL HCHAR(9,25,33,5,10,25,33,6,11,25,33,7) ! NOTICE RXB version must have number of characters to repeat or errors out CALL KEY("",5,K,S) NEW ! RXB has reverse HCHAR & VCHAR now 100 CALL VCHAR(24,32,32,768) 110 CALL HCHAR(24,32,65,-384,1,1,66,384) 120 CALL VCHAR(24,32,66,-384,1,1,65,384) 130 CALL HCHAR(24,32,67,-384,1,1,68,384) 140 CALL HCHAR(24,32,32,-768) 150 END CALL KEY("",5,K,S) RUN SAVE "DSK1.HCHARVCHAR",IV254 NEW ! RXB has HPUT like HCHAR & VCHAR but like multiple ones in a row CALL KEY("",5,K,S) NEW CALL HPUT(4,9,"THIS IS HPUT TEST") CALL VPUT(4,9,"THIS IS VPUT TEST") ! Better then DISPLAY AT as uses entire screen and does vertical + horizontal CALL KEY("",5,K,S) NEW ! RXB CALL VERSION UPDATED CALL VERSION(A) :: PRINT A CALL KEY("",5,K,S) NEW ! NEW RXB SOUND SUBROUTINES CALL BEEP ! NEW RXB SUBROUTINE CALL HONK CALL KEY("",5,K,S) NEW ! Create a XB program NUM 1,2 REM Test PRINT "THIS IS A TEST PROGRAM" CALL BEEP END ! SAVE THE PROGRAM SAVE "DSK1.TEST",IV254 CALL KEY("",5,K,S) NEW ! HOW TO EDIT IN USER OLD "DSK1.TEST" RES 10,10 NUM 9,10 ! REMARK HERE ! SHOW IT ! LET THEM KNOW IT ! DONE RES 100,5 CALL KEY("",5,K,S) LIST SAVE "DSK1.TEST2",IV254 CALL KEY("",5,K,S) NEW ! RUN PROGRAMS BUT GO BACK TO USER CALL KEY("",5,K,S) RUN "DSK1.TEST" RUN "DSK1.TEST2" CALL KEY("",5,K,S) ! MERGE PROGRAMS AND RUN SAVE "DSK1.TESTM",MERGE OLD "DSK1.TEST" LIST MERGE "DSK1.TESTM" LIST SAVE "DSK1.TEST4",IV254 CALL KEY("",5,K,S) NEW ! RXB IMPROVED SIZE SIZE CALL KEY("",5,K,S) NEW ! NOW YOU SEE FREE SPACE ANDTHE FIRST FREE ADDRESS LOCATION IN SIZE ALSO NOW ASSEMBLY SIZE AND LOCATIONS OF MEMORY CALL KEY("",5,K,S) 10 CALL INIT 20 CALL SIZE 30 CALL KEY("",5,K,S) RUN ! SEE LOWER 8K CHANGED? CALL KEY("",5,K,S) NEW ! New RXB VDPSTACK MANAGER ! Changing VDPSTACK triggersreset VDP & Program space sodoes a NEW after changes ! 10 CALL VDPSTACK(2392) ! >0958 STACK !NORMAL VDP STACK LOCATION CALL KEY("",5,K,S) 10 CALL VDPSTACK(2392) CALL KEY("",5,K,S) RUN SIZE CALL KEY("",5,K,S) ! New RXB VDPSTACK MANAGER ! CALL VDPSTACK(4096) ! >1000 VDP STACK LOCATION CALL KEY("",5,K,S) CALL VDPSTACK(4096) SIZE CALL KEY("",5,K,S) NEW ! New RXB VDPSTACK MANAGER ! CALL VDPSTACK(6176) ! >1820 VDP STACK LOCATION CALL KEY("",5,K,S) CALL VDPSTACK(6176) SIZE CALL KEY("",5,K,S) NEW ! New RXB VDPSTACK MANAGER ! CALL VDPSTACK(2392) ! >0958 STACK !NORMAL STACK LOCATION CALL KEY("",5,K,S) CALL VDPSTACK(2392) SIZE CALL KEY("",5,K,S) NEW ! New RXB RAM MANAGER ! CALL PRAM(ADDRESS) ! Normal XB RAM >A040 ! 24K RAM minus 64 bytes CALL KEY("",5,K,S) NEW SIZE CALL KEY("",5,K,S) NEW ! New RXB RAM MANAGER ! >A000 - 24K RAM" ! CALL PRAM(-24576) CALL KEY("",5,K,S) CALL PRAM(-24576) SIZE CALL KEY("",5,K,S) NEW ! New RXB RAM MANAGER ! >B000 - 20K RAM ! CALL PRAM(-20480) CALL KEY("",5,K,S) CALL PRAM(-20480) SIZE CALL KEY("",5,K,S) NEW ! New RXB RAM MANAGER ! >C000 - 16K RAM ! CALL PRAM(-16384) CALL KEY("",5,K,S) CALL PRAM(-16384) SIZE CALL KEY("",5,K,S) NEW ! New RXB RAM MANAGER ! >D000 - 12K RAM ! CALL PRAM(-12288) CALL KEY("",5,K,S) CALL PRAM(-12288) SIZE CALL KEY("",5,K,S) NEW ! New RXB RAM MANAGER ! >E000 - 8K RAM ! CALL PRAM(-8192) CALL KEY("",5,K,S) CALL PRAM(-8192) SIZE CALL KEY("",5,K,S) NEW ! New RXB RAM MANAGER ! >FFBE - 298 BYTES RAM ! CALL PRAM(-322) CALL KEY("",5,K,S) CALL PRAM(-322) SIZE CALL KEY("",5,K,S) NEW ! New RXB RAM MANAGER ! RESET RAM TO NORMAL XB RAM ! CALL PRAM(-24512) CALL KEY("",5,K,S) CALL PRAM(-24512) SIZE CALL KEY("",5,K,S) NEW ! TRACE FROM USER OLD "DSK1.TEST" TRACE RUN UNTRACE CALL KEY("",5,K,S) NEW ! USER IGNORES ERRORS NUM ! ERRORS IN USER GOTO 1000 RUN ! SAME AS BREAK OR FCTN4 (By the way FCTN4 does not work in USER) CALL KEY("",5,K,S) NEW 100 ! RXB NEW IN PROGRAM 110 CALL NEW CALL KEY("",5,K,S) SAVE "DSK1.NEW",IV254 RUN 100 ! NORMAL XB CLOSE 110 OPEN #1:"DSK1.FILE1" 120 OPEN #2:"DSK1.FILE2" 130 CLOSE #1 140 CLOSE #2 200 ! RXB CLOSE ALL 210 OPEN #1:"DSK1.FILE1" 220 OPEN #2:"DSK1.FILE2" 230 CALL CLSALL SAVE "DSK1.CLSALL",IV254 CALL KEY("",5,K,S) RUN CALL KEY("",5,K,S) NEW 100 ! NORMAL XB CHARSET 110 CALL HCHAR(1,1,32,768) :: PRINT "NORMAL XB CALL CHARSET": : 120 FOR L=159 TO 30 STEP-1 :: PRINT CHR$(L);" "; :: CALL CHAR(L,"4567") :: NEXT L 130 FOR D=1 TO 600 :: NEXT D 140 CALL CHARSET 150 PRINT "XB CHARSET RESETS 32 TO 95": : : 160 FOR D=1 TO 900 :: NEXT D 170 ! RXB CHARSETALL 180 CALL CHARSETALL 190 PRINT "RXB CHARSETALL 30 TO 159": : 200 PRINT "PRESS ANY KEY" 210 CALL KEY("",5,K,S) CALL KEY("",5,K,S) RUN SAVE "DSK1.CHARSETALL",IV254 NEW ! CALL MOVES COMMAND moves any memory to any memory RAMor VDP or GROM or GRAM ! Works with Music files andCRU control of devices and CRU control of devices ! This demo show CALL MOVES with VDP Addresses 100 CALL CLEAR 110 T$="HELLO WORLD" 120 B$=" " 130 CALL BIAS(1,T$,1,B$) 140 FOR X=757 TO 0 STEP-1 150 CALL MOVES("$V",11,T$,X,"$V",1,B$,X+10) 170 NEXT X CALL KEY("",5,K,S) SAVE "DSK1.MOVESHELLO",IV254 NEW 100 ! RXB EXAMPLE CALL MOVES(GROM to screen) 110 FOR GA=0 TO 32767 STEP 768 :: CALL MOVES("GV",768,GA,0):: NEXT GA 120 ! RXB EXAMPLE CALL MOVES (RIPPLE EXAMPLE) 130 CALL HCHAR(1,1,32) 140 CALL MOVES("VV",767,0,1) 150 ! RXB EXAMPLE CALL MOVES (SCAN VDP) 160 FOR V=0 TO 16384 STEP 768 :: CALL MOVES("VV",768,V,0):: NEXT V 170 ! RXB EXAMPLE CALL MOVES(RAM to screen) 180 FOR R=0 TO 8192 STEP 768 :: CALL MOVES("RV",768,R,0) :: NEXT R CALL KEY("",5,K,S) RUN SAVE "DSK1.MOVES",IV254 NEW 10 ! RXB EXAMPLE CALL MOVES(type$,bytes,from,to) 20 PRINT "Disk controller EPROM chip" 100 CALL CHAR(31,"F0F0F0F0F0F0F0F0") 110 CALL IO(3,8,2176,255) ! TURN ON EPROM 120 FOR A=16384 TO 24576 STEP 224 130 CALL MOVES("R$",224,A,T$) 140 CALL HEX(A,H$) 150 PRINT " ADDRESSS=";A;"HEX=";H$: :T$: : 160 FOR L=1 TO 400 :: NEXT L 170 NEXT A 180 CALL CHAR(31,"00") 190 CALL IO(3,8,2176,0) ! TURN OFF EPROM SAVE "DSK1.MOVESDSR",IV254 CALL KEY("",5,K,S) NEW 10 ! RXB EXAMPLE CALL BIAS 20 ! MOVES get VDP from screen into a String Variable X$ 30 CALL MOVES("V$",255,511,X$) 40 ! CALL BIAS removes 96 screen bias from all characters in String Variable X$ 50 CALL BIAS(0,X$) 60 ! After screen bias is removed it can be printed on screen 70 PRINT X$ CALL KEY("",5,K,S) SAVE "DSK1.BIAS",IV254 NEW ! RXB Binary SAVE routine called BSAVE and BLOAD have been changed to PSAVE and PLOAD ! The previous version 2015 were 8K sized files but 2020versions are 4K in size files ! This change was for SAMS support as any 4 key page can be loaded or saved anywhere in RAM now ! To explain 2,3,A,B,C,D,E,Fis the HEX location of RAM boundries thus RXB can load 4K files into RAM for SAMS CALL KEY("",5,K,S) NEW 100 CALL CLEAR 110 CALL MAGNIFY(2) 120 CALL SCREEN(15) 130 CALL COLOR(1,1,15) 140 FOR S=2 TO 8 150 CALL COLOR(S,2,15) 160 NEXT S 170 CALL SPRITE(#1,87,13,84,26) 180 CALL SPRITE(#2,73,13,58,58) 190 CALL SPRITE(#3,78,13,32,90) 200 CALL SPRITE(#4,68,13,58,122) 210 CALL SPRITE(#5,89,13,32,154) 220 CALL SPRITE(#6,88,13,58,186) 230 CALL SPRITE(#7,66,13,84,218) 240 CALL SPRITE(#8,51,12,128,90) 250 CALL SPRITE(#9,46,12,128,122) 260 CALL SPRITE(#10,48,12,128,154) 270 CALL SPRITE(#11,42,5,1,1,0,127) 280 CALL SPRITE(#12,42,5,1,243,127,0) 290 CALL SPRITE(#13,42,5,176,243,0,-127) 300 CALL SPRITE(#14,42,5,176,1,-127,0) 310 CALL SPRITE(#15,42,16,1,128,0,111) 320 CALL SPRITE(#16,42,16,96,243,111,0) 330 CALL SPRITE(#17,42,16,176,128,0,-111) 340 CALL SPRITE(#18,42,16,96,1,-111,0) 350 CALL SPRITE(#19,42,7,1,1,0,99) 360 CALL SPRITE(#20,42,7,1,243,99,0) 370 CALL SPRITE(#21,42,7,176,243,0,-99) 380 CALL SPRITE(#22,42,7,176,1,-99,0) 390 FOR R=3 TO 21 400 CALL HPUT(R,3,RPT$("a",28)) 410 NEXT R 420 CALL CHAR(97,"00FF00FF00FF00FF") 430 ! THIS IS HOW THE TITLE SCREEN WAS CREATED AND WAS SAVED 440 CALL HCHAR(3,3,96,28) 450 CALL VCHAR(3,3,96,20) 460 CALL HCHAR(22,3,96,28) 470 CALL VCHAR(3,30,96,20) 480 CALL HPUT(15,5,"RICHARD LYNN GILBERTSON") 490 CALL HPUT(20,9,"<<<PUSH A KEY>>>") 500 ! LOOP HERE FOR MOVEMENT 510 CALL CHAR(96,"FF818181818181FF") 520 IF RND>.5 THEN CALL COLOR(9,RND*15+1,15) 530 CALL CHAR(96,"00E7E7E7E7E7E700") 540 CALL KEY(0,K,S):: IF S=0 THEN 510 550 ! GET SPRITE MOTION IN N 560 CALL PEEK(-31878,N) 570 ! MOVE VDP TO LOW 8K RAM 580 CALL MOVES("VR",2079,0,8192) 590 ! SAVE RAM TO DISK 600 CALL PSAVE(2,"DSK1.SCREEN") ! SET UP SCREEN AND PSAVE IT SAVE "DSK1.PSAVESCRN",IV254 CALL KEY("",5,K,S) RUN 100 ! RELOAD SAVED MEMORY 110 CALL PLOAD(2,"DSK1.SCREEN") 120 ! RESET MAGNIFICATION 130 CALL MAGNIFY(2) :: CALL SCREEN(15) 140 ! MOVE FROM RAM TO VDP 150 CALL MOVES("RV",2079,8192,0) 160 ! RESET SPRITE MOTION 170 CALL LOAD(-31878,22) 180 ! LOOP HERE FOR MOVEMENT. 190 CALL CHAR(96,"FF818181818181FF") 200 IF RND>.5 THEN CALL COLOR(9,RND*15+1,15) 210 CALL CHAR(96,"00E7E7E7E7E7E700") 220 CALL KEY(0,K,S):: IF S=0 THEN 190 SAVE "DSK1.PLOADSCRN",IV254 CALL KEY("",5,K,S) RUN NEW 10 ! RXB EXAMPLE RXB SUBPROGRAM FINDER 100 CALL CLEAR :: ADDRESS=-24538 110 RESTORE :: FOR I=1 TO 2 :: READ X$,Y$,Z$ :: PRINT X$;TAB(11);Y$;TAB(22);Z$ :: NEXT I 120 CALL PEEKG(ADDRESS,B1,B2) :: CALL HEX(B1,B1$,B2,B2$) :: ADDRESS$=SEG$(B1$,3,2)&SEG$(B2$,3,2) 130 CALL PEEKG(ADDRESS+2,LENGTH) 140 CALL MOVES("G$",LENGTH,ADDRESS+3,N$) 150 CALL PEEKG(ADDRESS+3+LENGTH,S1,S2) :: CALL HEX(S1,S1$,S2,S2$) :: S$=SEG$(S1$,3,2)&SEG$(S2$,3,2) 160 CALL HEX(ADDRESS,A$) :: PRINT A$;"-";ADDRESS$;" ";TAB(11);N$;" ";TAB(22);S$ :: PRINT 170 DATA HEADER,SUBPROGRAM,START,*******,**********,******* 180 CALL HEX(ADDRESS$,ADDRESS) :: IF ADDRESS THEN 120 SAVE "DSK1.SUBPGMFNDR",IV254 CALL KEY("",5,K,S) NEW 10 ! RXB EXAMPLE CALL POKER(register,value) 100 CALL CLEAR :: FOR I=0 TO 764 STEP 8 :: CALL POKEV(I,161,162,163,164,165,166,167,168) :: NEXT I 110 CALL CLEAR :: FOR I=0 TO 758 STEP 16 :: CALL POKEV(I,161,162,163,164,165,166,167,168,169,170,172,173,174,175,176) :: NEXT I 120 CALL CLEAR :: FOR I=126 TO 223 :: CALL POKEV(I,I+1,I+2,I+3,I+4,I+5,I+6,I+7) :: NEXT I 130 PRINT: :"SCREEN COLOR CHANGES" :: FOR T=1 TO 5 :: FOR I=0 TO 15 :: CALL POKER(7,1) :: NEXT I :: NEXT T :: CALL SCREEN(8) 140 A$="!@#$%^&*()+1234567890=-:><,.;/~_?'|{}\`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" :: FOR I=1 TO 5 :: PRINT A$ :: NEXT I 150 PRINT: :"CHARACTER COLOR CHANGES" :: FOR I=30 TO 70 :: FOR T=2063 TO 2076 :: CALL POKEV(T,I) :: NEXT T :: NEXT I :: CALL CHARSET :: PRINT 160 PRINT "PRESS A KEY FOR TEXT MODE": : :: CALL BEEP 170 CALL KEY("",0,K,S) :: CALL POKER(7,244) :: CALL POKER(1,240) 180 PRINT " PRESS A KEY FOR MULTI COLOR MODE": : :: CALL BEEP 190 CALL KEY("",0,K,S) :: CALL POKER(1,232) :: GOSUB 230 :: CALL POKER(1,224) 200 PRINT "PRESS A KEY FOR BIT MAP MODE": : :: CALL BEEP 210 CALL KEY("",0,K,S) :: CALL POKER(0,2) :: CALL POKER(1,224) 220 GOSUB 230 :: CALL POKER(0,0) :: END 230 FOR I=1 TO 800 :: NEXT I :: RETURN SAVE "DSK1.POKER",IV254 CALL KEY("",5,K,S) NEW 100 ! RXB EXAMPLE CALL MOTION(STOP,GO) 110 CALL CLEAR :: CALL CHAR(128,RPT$("F",16)) :: CALL MAGNIFY(2) 120 A$="OUT" :: GOSUB 130 :: A$="" :: GOSUB 130 :: CALL QUITON :: END 130 CALL HPUT(1,3,"MOTION WITH"&A$&" RXB") :: IF A$="" THEN CALL MOTION(STOP) 140 FOR A=1 TO 11 :: CALL SPRITE(#A,128,2,A*16-7,1,0,30) :: NEXT A :: IF A$="" THEN CALL MOTION(GO) 150 CALL HPUT(24,4,"PRESS ANY KEY TO CONTINUE.") :: CALL KEY("",0,K,S) :: CALL DELSPRITE(ALL) :: CALL CLEAR :: RETURN SAVE "DSK1.MOTIONGO",IV254 CALL KEY("",5,K,S) RUN NEW 10 ! RXB EXAMPLE CALL MOTION(GO,STOP) 100 A(0)=-1 :: A(1)=1 :: CALL MOTION(GO) 110 CALL CLEAR :: CALL MAGNIFY(2) :: CALL SCREEN(15) 120 FOR S=1 TO 28 130 CALL SPRITE(#S,64+S,2,20+S,50+S,INT(A(RND*1))*INT(RND*127),INT(A(RND*1))*INT(RND*127)) 140 NEXT S 150 N=N+1 :: ON INT(RND*3)+1 GOSUB 160,170,180 :: IF N>50 THEN END ELSE 150 160 CALL MOTION(GO) :: RETURN 170 CALL MOTION(STOP) :: RETURN 180 FOR DELAY=0 TO 200 :: NEXT DELAY :: RETURN SAVE "DSK1.MOTIONSTOP",IV254 CALL KEY("",5,K,S) RUN NEW 10 ! RXB EXAMPLE CALL COLOR(ALL,fore,back) 20 FOR L=0 TO 256 :: PRINT CHR$(L);:: NEXT L 30 CALL COLOR(ALL,RND*15+1,RND*15+1) 40 Z=Z+1 :: IF Z=50 THEN END ELSE 30 SAVE "DSK1.COLORALL",IV254 CALL KEY("",5,K,S) NEW 10 ! RXB EXAMPLE CALL MOTION(ALL,x,y) 100 A(0)=-127 :: A(1)=127 :: CALL MOTION(GO) 110 CALL CLEAR :: CALL MAGNIFY(2):: CALL SCREEN(15) 120 FOR S=1 TO 28 130 CALL SPRITE(#S,64+S,2,20+S,50+S,A(RND)*RND,A(RND)*RND) 140 NEXT S 150 CALL MOTION(ALL,A(RND)*RND,A(RND)*RND) 160 C=C+1 :: IF C<70 THEN 150 170 ! pretty cool huh? SAVE "DSK1.MOTIONALL",IV254 CALL KEY("",5,K,S) NEW ! RXB EXAMPLE CALL HEX(number,string) 10 ! Decimal & Hexidecimal 11 FOR D=-32000 TO 30000 STEP 1000 12 CALL HEX(D,H$) 13 PRINT "DEC=";D,"HEX=";H$ 100 ! Hexidecimal to Decimal 120 CALL HEX(H$,D) 130 PRINT "HEX=";H$,"DEC=";D 140 NEXT D SAVE "DSK1.HEX~DEC",IV254 CALL KEY("",5,K,S) NEW 100 ! NUMBERS VS STRINGS 110 DATA 200,124,97,249,140,77,81,173,254,78,93,12,38,65,55,6,0 120 READ N :: B$="BYTES" 130 CALL HEX(N,N$) 140 S$=S$&SEG$(N$,2,2) 150 IF N<>0 THEN 120 160 PRINT "DATA: ";8*16,B$ 170 PRINT "STRING:";LEN(S$)+1,B$ 180 PRINT "SAVED: ";(8*16)-(LEN(S$)+1),B$ 190 ! 8 BYTES PER DATA WHILE STRING IS 2 BYTES SAVE "DSK1.HEXSTRING",IV254 CALL KEY("",5,K,S) NEW 10 ! RXB EXAMPLE CALL CHAR(S,char,char) CALL CHAR(S,value#,value#) 100 A(0)=-1 :: A(1)=1 :: CALL MOTION(GO) 110 CALL CLEAR :: CALL MAGNIFY(2):: CALL SCREEN(15) 120 FOR S=1 TO 28 130 CALL SPRITE(#S,64+S,INT(RND*16)+1,20+S,50+S,INT(A(RND*1))*INT(RND*20),INT(A(RND*1))*INT(RND*20)) 140 NEXT S 150 CALL COLOR(S,#INT(RND*28)+1,#INT(RND*28)+1):: CALL CHAR(S,INT(RND*28)+64,INT(RND*28)+64) 160 Z=Z+1 :: IF Z=50 THEN END ELSE 150 SAVE "DSK1.SWAP",IV254 CALL KEY("",5,K,S) NEW 10 ! RXB EXAMPLE CALL CHAR(I,ALL) 100 CALL CHAR(I,ALL) 110 A=A+1 :: IF A<8 THEN 100 120 ! Inverts all character definitions SAVE "DSK1.INVERSEALL",IV254 CALL KEY("",5,K,S) NEW ! RXB has improved ! a COINC routine ! run this demo to see results! CALL KEY("",5,K,S) 100 ! RUN FOR 1 HOUR AND AND PRINT X FOR XB VS RXB 110 ! NORMAL XB COINC 120 CALL CLEAR :: X=190 130 CALL SPRITE(#1,65,2,9,X,20,0,#2,66,2,9,X,30,0,#3,67,2,9,X,-20,0) 140 CALL COINC(ALL,A) 150 CALL COINC(#1,#2,12,B) 160 CALL COINC(#1,#3,12,C) 170 CALL COINC(#2,#3,12,D) 180 X=X+1 :: PRINT A;B;C;D 190 GOTO 140 200 ! 210 ! RXB COINC 220 CALL CLEAR :: X=190 230 CALL SPRITE(#1,65,2,9,X,20,0,#2,66,2,9,X,30,0,#3,67,2,9,X,-20,0) 240 CALL COINC(ALL,A,#1,#2,12,B,#1,#3,12,C,#2,#3,12,D) 250 X=X+1 :: PRINT A;B;C;D 260 GOTO 240 CALL KEY("",5,K,S) SAVE "DSK1.COINC",IV254 NEW 10 ! RXB EXAMPLE 100 ! This program gives the illusion of sprites that bank 90% at a time 110 CALL MAGNIFY(2):: CALL CLEAR :: CALL SCREEN(15) :: CALL MOTION(GO) 120 CALL SPRITE(#1,65,2,100,10,0,35,#2,66,16,10,140,25,0) 130 CALL COINC(ALL,V) 140 IF V THEN CALL CHAR(S,65,66):: CALL RMOTION(#1):: CALL COLOR(S,#1,#2)::GOSUB 160 ELSE 130 150 GOTO 130 160 FOR L=1 TO 600 :: NEXT L 170 A=A+1 :: IF A<5 THEN RETURN SAVE "DSK1.SPRITESWAP",IV254 CALL KEY("",5,K,S) NEW 10 ! RXB EXAMPLE CALL GMOTION(#sprite,x,y) 100 A(0)=-1 :: A(1)=1 :: CALL CLEAR :: CALL MAGNIFY(2):: CALL SCREEN(15) 110 FOR S=1 TO 28 120 CALL SPRITE(#S,64+S,INT(RND*16)+1,20+S,50+S, INT(A(RND*1))*INT(RND*127),INT(A(RND*1))*INT(RND*127)) 130 NEXT S 140 S=INT(RND*28)+1 :: CALL GMOTION(#S,X,Y):: CALL HPUT(24,3,"CALL GMOTION(#"&STR$(S)&","&STR$(X)&","&STR$(Y)&") ") ::FOR L=1 TO 1000 :: NEXT L 150 CALL MOTION(#S,Y,X):: Z=Z+1 :: IF Z<8 THEN 140 SAVE "DSK2.GMOTION",IV254 CALL KEY("",5,K,S) RUN NEW 10 ! RXB EXAMPLE CALL GMOTION/MOTION 100 A(0)=-1 :: A(1)=1 :: CALL CLEAR :: CALL MAGNIFY(2):: CALL SCREEN(15) 110 FOR S=1 TO 28 120 CALL SPRITE(#S,64+S,INT(RND*16)+1,20+S,50+S,INT(A(RND*1))*INT(RND*32),INT(A(RND*1))*INT(RND*32)) 130 NEXT S 140 S=INT(RND*28)+1 :: CALL GMOTION(#S,X,Y):: CALL MOTION(#S,Y,X) 150 Z=Z+1 :: IF Z<300 THEN 140 160 ! GMOTION gets motion from one sprite and puts into another sprite SAVE "DSK1.G~MOTION",IV254 CALL KEY("",5,K,S) NEW 10 ! RXB EXAMPLE CALL RMOTION(#sprite) CALL RMOTION(ALL) 100 A(0)=-1 :: A(1)=1 :: CALL CLEAR :: CALL MAGNIFY(2) :: CALL SCREEN(15) 110 FOR S=1 TO 28 120 CALL SPRITE(#S,64+S,INT(RND*16)+1,20+S,50+S,INT(A(RND*1))*INT(RND*32),INT(A(RND*1))*INT(RND*32)) 130 NEXT S 140 IF RND>.2 THEN CALL RMOTION(#INT(RND*28)+1)ELSE CALL RMOTION(ALL) 150 Z=Z+1 :: IF Z<200 THEN 140 160 ! As this does all this in a single command should be used in pllace of normal XB more compliated version SAVE "DSK1.RMOTION",IV254 CALL KEY("",5,K,S) NEW 10 ! RXB EXAMPLE CALL IO (SOUND LIST) 100 A=8191 110 DATA 5,159,191,223,255,227,1 120 DATA 9,142,1,164,2,197,1,144,182,211,6 130 DATA 3,145,183,212,5 140 DATA 3,146,184,213,4 150 DATA 5,167,4,147,176,214,5 160 DATA 3,148,177,215,6 170 DATA 3,149,178,216,7 180 DATA 5,202,2,150,179,208,6 190 DATA 3,151,180,209,5 200 DATA 3,152,181,210,4 210 DATA 5,133,3,144,182,211,5 220 DATA 3,145,183,212,6 230 DATA 3,146,184,213,7 240 DATA 5,164,2,147,176,214,6 250 DATA 3,148,177,215,5 260 DATA 3,149,178,216,4 270 DATA 5,197,1,150,179,208,5 280 DATA 3,151,180,209,6 290 DATA 3,152,181,210,7 300 DATA 3,159,191,223,0 310 A=A+1 :: READ B :: CALL POKEV(A,B) 320 IF B=0 THEN 330 ELSE 310 330 CALL IO(1,8192) SAVE "DSK1.IO~CHIMES",IV254 RUN CALL KEY("",5,K,S) NEW 100 CALL CLEAR! CRASH 110 DATA 2,228,242,5 120 DATA 2,228,240,18 130 DATA 2,228,241,16 140 DATA 2,228,242,14 150 DATA 2,228,243,12 160 DATA 2,228,244,10 170 DATA 2,229,245,9 180 DATA 2,229,246,8 190 DATA 2,229,247,7 200 DATA 2,229,248,6 210 DATA 2,229,249,5 220 DATA 2,230,250,4 230 DATA 2,230,251,3 240 DATA 2,230,252,2 250 DATA 2,230,253,1 260 DATA 2,230,254,1 270 DATA 1,255,0,0 280 FOR AD=4096 TO 4160 STEP 4 290 READ V1,V2,V3,V4 300 CALL POKEV(AD,V1,V2,V3,V4) 310 NEXT AD 320 CALL IO(1,4096) 330 PRINT "CRASH": :"TYPE:":"CALL IO(1,4096)" SAVE "DSK1.IO~CRASH",IV254 RUN CALL KEY("",5,K,S) NEW 100 ! CATALOG ALL DISKS 110 N=49 120 ON ERROR 150 130 N=N+1 140 CALL CAT(N) 150 PRINT D$ 160 IF N<128 THEN 120 ELSE END SAVE "DSK1.CATALL",IV254 CALL KEY("",5,K,S) NEW 100 ! RUN FOR 1 HOUR AND AND PRINT X FOR XB VS RXB 110 ! NORMAL XB COINC 120 CALL CLEAR :: X=190 130 CALL SPRITE(#1,65,2,9,X,20,0,#2,66,2,9,X,30,0,#3,67,2,9,X,-20,0) 140 CALL COINC(ALL,A) 150 CALL COINC(#1,#2,12,B) 160 CALL COINC(#1,#3,12,C) 170 CALL COINC(#2,#3,12,D) 180 X=X+1 :: PRINT A;B;C;D 190 GOTO 140 200 ! 210 ! RXB COINC 220 CALL CLEAR :: X=190 230 CALL SPRITE(#1,65,2,9,X,20,0,#2,66,2,9,X,30,0,#3,67,2,9,X,-20,0) 240 CALL COINC(ALL,A,#1,#2,12,B,#1,#3,12,C,#2,#3,12,D) 250 X=X+1 :: PRINT A;B;C;D 260 GOTO 240 ! 1 HOUR TEST XB VS RXB SAVE "DSK1.CONICTEST",IV254 CALL KEY("",5,K,S) NEW ! CREATE USER FILE FROM USER FILE OPEN #1:"DSK1.TEST-USER",OUTPUT PRINT #1:"1 CALL CLEAR ! TEST OF USER"&CHR$(13) PRINT #1:"2 A$="&""""&" RXB USER "&""""&CHR$(13) PRINT #1:"3 B$="&""""&" DEMO "&""""&CHR$(13) PRINT #1:"4 C$="&""""&" FINISHED "&""""&CHR$(13) PRINT #1:"5 CALL HPUT(12,11,A$,14,11,B$,16,11,C$)"&CHR$(13) PRINT #1:"SAVE DSK1.END-DEMO"&CHR$(13) PRINT #1:"RUN"&CHR$(13) CLOSE #1 CALL KEY("",5,K,S) CALL CAT("DSK1.") CALL KEY("",5,K,S) ! USER CAN CALL USER FILES ! IF IT IS THE LAST COMMAND FOR L=0 TO 3000 :: NEXT L CALL USER("DSK1.TEST-USER") Quote Link to comment Share on other sites More sharing options...
+arcadeshopper Posted April 17, 2020 Share Posted April 17, 2020 Still working Sent from my LM-G820 using Tapatalk Quote Link to comment Share on other sites More sharing options...
GDMike Posted April 18, 2020 Share Posted April 18, 2020 (edited) BTW..I saw a msg in my news feed earlier today saying Microsoft broke defender and Win 10 users need the new patch asap. https://www.techradar.com/amp/news/microsoft-has-just-broken-windows-10s-antivirus-protection-apply-this-fix-straight-away Edited April 18, 2020 by GDMike Quote Link to comment Share on other sites More sharing options...
+OLD CS1 Posted April 18, 2020 Share Posted April 18, 2020 Windows Defender has always been questionable. Its rankings bounce up-and-down like a yo-yo. It is better than nothing, but I would not trust my system to it, solely. It does have its place, even when going with a commercial security and protection product. At the very least, being it is a Microsoft product and now integrated into Windows, it "knows" quite a bit about the system and can provide a good level of monitoring and protection supplemental to a third-party product. 2 Quote Link to comment Share on other sites More sharing options...
RXB Posted April 18, 2020 Share Posted April 18, 2020 4 hours ago, GDMike said: BTW..I saw a msg in my news feed earlier today saying Microsoft broke defender and Win 10 users need the new patch asap. https://www.techradar.com/amp/news/microsoft-has-just-broken-windows-10s-antivirus-protection-apply-this-fix-straight-away AVG is terrible as it slows a computer down by 30% sometimes. Also it makes problems with the firewall constantly. Stay away from Porn and never open anything with out being scanned using Defender works fine. Quote Link to comment Share on other sites More sharing options...
Tursi Posted April 18, 2020 Share Posted April 18, 2020 17 hours ago, RXB said: DSK1.BATCH is included in the RXB 2015 package. It is also in RXB 2000, 2001, 2011, and 2012 also. No not using disk images just FAID files and folders. I make a Text File in Windows Note Pad, use TIDIR to make it a DV80 file in a DSK 1 to 9 then use this XB program: 100 OPEN #1:"DSK8.USERDEMO",INPUT 110 OPEN #2:"DSK8.BATCH",OUTPUT 120 LINPUT #1:Z$ 130 IF LEN(Z$)=80 THEN X$=X$&Z$ :: GOTO 120 140 IF LEN(Z$)<80 THEN PRINT #2:X$&Z$&CHR$(13) 150 X$,Z$="" :: GOTO 120 When it beeps or crashes take your pick I type: CALL CLSALL From here you can type: CALL XB From Title screen push COMMA key on keyboard. Then push number 8 on keyboard as that is disk USERDEMO is on and BATCH is the end result file. Now you are running BATCH on RXB in 2001 to 2015 versions. I'll give it a try. Since you're using Classic99 and FIAD anyway, remember you can read the Windows text file directly, without converting it to DV80. Just make sure it has a .txt extension and open normally (OPEN #1:"DSK8.USERDEMO.TXT",INPUT). Quote Link to comment Share on other sites More sharing options...
Tursi Posted April 18, 2020 Share Posted April 18, 2020 Hah, I never saw that batch demo! That's pretty awesome, Rich I need to set it up to just keep running and see what happens. 1 Quote Link to comment Share on other sites More sharing options...
Tursi Posted April 18, 2020 Share Posted April 18, 2020 I ran CALL USER("DSK1.BATCH") for over 3 hours without issue here (using paste to queue up the needed keypresses to keep it running). Let's try this. Windows 10 has minidump capability built in. I need you to run THIS version of Classic99 - it's the only one I have a PDB for: classic99debug.zip When it hangs, ideally WHILE it is still hung, bring up task manager and right-click to create a dump file: The resulting file will be big - perhaps as much as 300MB. If you zip it, it should drop down to about 80MB. We'll need a way to get that file to me, then I should be able to examine the state of the emulator. I'm not sure what options we have for large file transfer - my email will reject a file that large. But let's get the file first - at worst I can set up a temporary FTP for you. 3 1 Quote Link to comment Share on other sites More sharing options...
+arcadeshopper Posted April 18, 2020 Share Posted April 18, 2020 I call user batched all day yesterday in between work. All goodSent from my LM-G820 using Tapatalk Quote Link to comment Share on other sites More sharing options...
RXB Posted April 18, 2020 Share Posted April 18, 2020 (edited) 9 hours ago, Tursi said: I'll give it a try. Since you're using Classic99 and FIAD anyway, remember you can read the Windows text file directly, without converting it to DV80. Just make sure it has a .txt extension and open normally (OPEN #1:"DSK8.USERDEMO.TXT",INPUT). Sorry each line read by USER subprogram has to end with a CR (Enter) or it just assumes you keep typing and you get the same thing when you overrun XB Edit Buffer on a line. My FIX XB program just loads the TEXT (DV80) file and looks for a end of line then tacks a CR at end of it. If I wrote the DV80 file in TI Writer it would be the same type of file, of course LF would be added too. Edited April 18, 2020 by RXB comment added Quote Link to comment Share on other sites More sharing options...
Airshack Posted June 23, 2020 Share Posted June 23, 2020 Hey Rich! ( @RXB ), I've just discovered the Rich Editor and Assembler V=2015. Cool. I'm using it on my latest project. Much preferred to the old standard E/A cartridge. Observations: 1. The directory menu option with the seemingly automatic load-and-run feature is great. 2. I like using the arrow keys to select my program to run after loading is complete. Very nice interface here. This interface is a nice improvement over the old TI EA cart. Is it any faster at loading? 1 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted June 24, 2020 Share Posted June 24, 2020 (edited) 2 hours ago, Airshack said: Hey Rich! ( @RXB ), I've just discovered the Rich Editor and Assembler V=2015. Cool. I'm using it on my latest project. Much preferred to the old standard E/A cartridge. Observations: 1. The directory menu option with the seemingly automatic load-and-run feature is great. 2. I like using the arrow keys to select my program to run after loading is complete. Very nice interface here. This interface is a nice improvement over the old TI EA cart. Is it any faster at loading? Thanks some people are not used to it. Like after you do set up you can just push A to Assemble a program or load Editor and that file. Faster then typing? (Yea) No it is not written in Assembly but GPL like RXB and EA carts. Now the EA Load and Run feature is even better then Boot or Menu for using keys to select start up routine. Edited June 24, 2020 by RXB 1 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted July 6, 2020 Share Posted July 6, 2020 I can't figure this out. I get this debug warning: Warning: PC >A072 reading VDP with LIMI 2 When this code runs: ****************************************************** * Warning: PC >A072 reading VDP with LIMI 2 ****************************************************** A070 A072 a *R2+,R1 * THIS IS A POINTER. but the code runs A072 0646 dect R6 * THIS IS CODE THAT RUNS A074 C584 mov R4,*R6 A076 02A4 stwp R4 A078 A118 a *R8,R4 A07A 045A b *R10 * branch to Forth interpreter * The Forth interpreter when the above is interpreted 838A C239 mov *R9+,R8 * POP Instruction pointer (A070) to R8 w/autoinc 838C C178 mov *R8+,R5 * move contents (A072) of R8 to R5, w/autoinc 838E 0455 b *R5 * branch to the code address (A072) in R5 Explanation Note: The code at >A072 is computing the address of a "workspace" variable. ie: a variable that is referenced with the WP register so that difference contexts can have the same variable name but with unique values. I got the same results when a simple variable ie: a routine that simply returned an address to R4, occupied this address space >A070. I have also now seen that this is occurring in all the Forth routines because they all use this indirect interpretation method. The difference is that the value >A072 is incrementing R2 so if put in a loop it will touch every address. There seems to be no side effects except the error message. I see no problems on real hardware but I don't have the tools to see the CPU in such detail on the TI-99. One Canadian penny for anyone's thoughts. Oops, we don't have pennies anymore. Ok 5 cents then. 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.