Mathy Posted February 24, 2012 Share Posted February 24, 2012 Hello guys MyDOS 4.50 seems to come in different flavors. They look the same, feel the same and even taste the same, but seem to be different. Worst is, looking for the culprit who did this is probably gonna be a long process that doesn't lead to anything but frustration. You better try 4.55 beta 4 which can be downloaded from my MyDOS page. Mathy Quote Link to comment Share on other sites More sharing options...
+bob1200xl Posted February 24, 2012 Author Share Posted February 24, 2012 If I were just trying to run MyDOS, I would choose 4.55/4, but I am trying to track down what looks like a hardware snafu. It looks like location $26 is corrupted somewhere along the way while the code for $6000 loads. All the code gets loaded (including $2E2,3) but MyDOS checks $26 to see if an INIT is 'allowed' and $26 says 'no'?? MyDOS just does an RTS back into DOS, who then loads DUP back into memory. Now, I am trying find out who steps on $26... Bob Quote Link to comment Share on other sites More sharing options...
Mathy Posted February 24, 2012 Share Posted February 24, 2012 Hello Bob Sorry, I keep forgetting. Maybe I read too much stuff in too many forums. Mathy Quote Link to comment Share on other sites More sharing options...
+JAC! Posted February 25, 2012 Share Posted February 25, 2012 >MyDOS checks $26 to see if an INIT is 'allowed' and $26 says 'no'?? Where in the source do you see that? Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted February 25, 2012 Share Posted February 25, 2012 (edited) >MyDOS checks $26 to see if an INIT is 'allowed' and $26 says 'no'?? Where in the source do you see that? 127B A526 7810 LDA ICPTLZ ;IF NO INITS, 127D 4A 7820 LSR A 127E B025 7830 BCS CCFILE ;SKIP TO NEXT PAGE 1280 8A 7840 TXA ;ELSE SAVE IOCB 1281 48 7850 PHA 1282 A0F4 7860 LDY #256-12 1284 B92CFF 7870 CPSICB LDA ICHIDZ-256+12,Y 1287 9D4003 7880 STA ICHID,X ;SAVE 12 BYTE IOCB ENTRY 128A E8 7890 INX 128B C8 7900 INY 128C D0F6 7910 BNE CPSICB 128E 68 7920 PLA 128F AA 7930 TAX 1290 48 7940 PHA 1291 200013 7950 JSR DOINIT ;AND CALL INIT FUNCTION 1294 68 7960 PLA 1295 AA 7970 TAX 1296 48 7980 PHA 1297 A0F4 7990 LDY #256-12 1299 BD4003 8000 CPRICB LDA ICHID,X ;THEN RESTORE THE 12 BYTE IOCB ICPTLZ ($26) gets the value in ICAX1Z at the top of the load routine. This should be $04, so after it's shifted right here, carry should always be clear. As far as I can see, the INIT routine should execute. Unless bit 0 of ICAX1Z is set for some reason??? Edited February 25, 2012 by flashjazzcat Quote Link to comment Share on other sites More sharing options...
+bob1200xl Posted February 25, 2012 Author Share Posted February 25, 2012 Yes, right there... $26 gets loaded with $6 at the very beginning of the file load. (directory OPEN?) But, regardless, it is something like $AE by the time it is tested at $127B, so we do not execute the INIT that is set up. Bob Quote Link to comment Share on other sites More sharing options...
+bob1200xl Posted February 25, 2012 Author Share Posted February 25, 2012 Ahhhhh.... that is a shift right. So $26 must be $A7 or some such. I'll go check it again. Bob Quote Link to comment Share on other sites More sharing options...
+JAC! Posted February 26, 2012 Share Posted February 26, 2012 (edited) I think found it, at least I found what sets bit 0 in $26. Fix will be provided soon. Edited February 26, 2012 by JAC! Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted February 26, 2012 Share Posted February 26, 2012 I think found it, at least I found what sets bit 0 in $26. Fix will be provided soon. Do tell! Quote Link to comment Share on other sites More sharing options...
+JAC! Posted February 26, 2012 Share Posted February 26, 2012 Here's a version which (hopefully) solves the problem. The first INIT block outputs the text via CIO #0 (E:) and changes $26 from $04 to $AF. This version restores the original value. It also contains PAL/NTSC detection and adapts the TIME.. functions automatically like in the "TURBO20" version. Load TURBO15F.COM. Press SHIFT during loading to see the fix version. Turbo.atr Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted February 26, 2012 Share Posted February 26, 2012 Surely ICAX1Z will routinely change if the INIT segments do any I/O - so perhaps that part of MyDOS is poorly designed. Quote Link to comment Share on other sites More sharing options...
+Larry Posted February 26, 2012 Share Posted February 26, 2012 Here are two load traces of TBXL as an AUTORUN.SYS file loaded from a 1050 drive. With MyDos 3.07 and the WIDE mode, the load is perfect and complete. (For me, with 3.07 or 3.08 in WIDE mode, TBXL loads perfectly 100% of the time.) With 4.50 it loads, but as Bob1200XL mentions, it always drops back to loading the DUP.SYS menu. Also included is the identical image of the 4.50/TBXL disk, but loaded as an APE image. -Larry Quote Link to comment Share on other sites More sharing options...
+Larry Posted February 26, 2012 Share Posted February 26, 2012 Rats, forgot the attachment... TBXL Load Traces with WIDE.zip Quote Link to comment Share on other sites More sharing options...
+bob1200xl Posted February 26, 2012 Author Share Posted February 26, 2012 TURBO15F with SHIFT key dumps me in a hang condition, much the same as the result when I run in 1200XL mode. If I hit RESET, I get a prompt and the LIST command shows two odd lines of code... What is different about TURBO15F? It seems to get farther in the load, but still isn't right. Bob Here's a version which (hopefully) solves the problem. The first INIT block outputs the text via CIO #0 (E:) and changes $26 from $04 to $AF. This version restores the original value. It also contains PAL/NTSC detection and adapts the TIME.. functions automatically like in the "TURBO20" version. Load TURBO15F.COM. Press SHIFT during loading to see the fix version. Quote Link to comment Share on other sites More sharing options...
+JAC! Posted February 26, 2012 Share Posted February 26, 2012 (edited) After Larry sent the screen shots and after reading a bit about what is different in the 1200 XL, I am fairly sure that all this has nothing to do with MyDOS. I could not find the source/dump of the 1200 XL OS, but I found that (in contrast to the 400/800/XL OS) then 1200 XL OS modifies PORTB bits directly to control two LEDs there. Also the screen shots Larry sent indicate a PORTB issue here, because it looks like a "missing ROM" creates these stray inverse arrows ($FF) to appear in the screen memory location. TBXL heavily relies on being the "owner" of PORTB. Here is a short test program "Turbo-Flicker.xex" to see if the screen garbage displayed on the 1200 XL is due to PORTB changes in it's OS. That would also explain why it does not happen with different OS'es. >TURBO15F with SHIFT key dumps me in a hang condition Pressing SHIFT only displays some more characters (my fix version string). If that makes the system hang, oh dear.. >What is different about TURBO15F? If preserves/restores $26 in the INIT block and adaptes to NTSC on NTSC machines. Turbo-Flicker.xex Edited February 26, 2012 by JAC! Quote Link to comment Share on other sites More sharing options...
+bob1200xl Posted February 26, 2012 Author Share Posted February 26, 2012 What is that screen shot with all the garbage on-screen? I never get anything like that... PORTB does not get changed other than by the OS - which is the normal 800XL OS, not the 1200XL OS. (unless I'm in 1200XL mode, which I am not) Bob After Larry sent the screen shots and after reading a bit about what is different in the 1200 XL, I am fairly sure that all this has nothing to do with MyDOS. I could not find the source/dump of the 1200 XL OS, but I found that (in contrast to the 400/800/XL OS) then 1200 XL OS modifies PORTB bits directly to control two LEDs there. Also the screen shots Larry sent indicate a PORTB issue here, because it looks like a "missing ROM" creates these stray inverse arrows ($FF) to appear in the screen memory location. TBXL heavily relies on being the "owner" of PORTB. Here is a short test program "Turbo-Flicker.xex" to see if the screen garbage displayed on the 1200 XL is due to PORTB changes in it's OS. That would also explain why it does not happen with different OS'es. >TURBO15F with SHIFT key dumps me in a hang condition Pressing SHIFT only displays some more characters (my fix version string). If that makes the system hang, oh dear.. >What is different about TURBO15F? If preserves/restores $26 in the INIT block and adaptes to NTSC on NTSC machines. Quote Link to comment Share on other sites More sharing options...
+Larry Posted February 26, 2012 Share Posted February 26, 2012 That is the garbage that I get on the 1200XL side with MyDos 3.07. But TBXL initializes and runs 100% of the time for me with MyDos 3.07 or 3.08. After all the garbage, it goes to the blue screen and "TURBO" prompt. I don't get the garbage on the WIDE side with either 3.07 or 4.50. I don't get the garbage on the 1200XL side with 4.50. -Larry What is that screen shot with all the garbage on-screen? I never get anything like that... PORTB does not get changed other than by the OS - which is the normal 800XL OS, not the 1200XL OS. (unless I'm in 1200XL mode, which I am not) Bob Quote Link to comment Share on other sites More sharing options...
+bob1200xl Posted February 26, 2012 Author Share Posted February 26, 2012 I ran the program - no extra characters. If Larry is getting that kind of screen, his ANTIC is bad/out-of-spec. It really has no bearing on the TBXL loading. When you use a very high-speed CPU/memory (even at 1.79MHZ), it drops off the bus or jumps on the bus before ANTIC is finished poking along. I'll see if I can fix Larry's machine and we can try TBXL again. Bob After Larry sent the screen shots and after reading a bit about what is different in the 1200 XL, I am fairly sure that all this has nothing to do with MyDOS. I could not find the source/dump of the 1200 XL OS, but I found that (in contrast to the 400/800/XL OS) then 1200 XL OS modifies PORTB bits directly to control two LEDs there. Also the screen shots Larry sent indicate a PORTB issue here, because it looks like a "missing ROM" creates these stray inverse arrows ($FF) to appear in the screen memory location. TBXL heavily relies on being the "owner" of PORTB. Here is a short test program "Turbo-Flicker.xex" to see if the screen garbage displayed on the 1200 XL is due to PORTB changes in it's OS. That would also explain why it does not happen with different OS'es. >TURBO15F with SHIFT key dumps me in a hang condition Pressing SHIFT only displays some more characters (my fix version string). If that makes the system hang, oh dear.. >What is different about TURBO15F? If preserves/restores $26 in the INIT block and adaptes to NTSC on NTSC machines. Quote Link to comment Share on other sites More sharing options...
+Larry Posted February 26, 2012 Share Posted February 26, 2012 If it is Antic, why would it only do it with 3.07/3.08 on the 1200XL side? -Larry Quote Link to comment Share on other sites More sharing options...
+bob1200xl Posted February 27, 2012 Author Share Posted February 27, 2012 ANTIC timings seem to depend on the previous/next cycle, for some reason. If an ANTIC cycle is preceeded immediately by a memory refresh, it throws ANTIC out of sync by something like 50ns. Part of ANTIC is running the 'screen display' code and part of it is running the 'refresh DRAM' code - and, they don't play well together. Some software seems to hold ANTIC off the bus too long and it has to 'force' cycles, either refresh or character data requests. These tend to be so far out of time that the data never gets from the character set into ANTIC. Doesn't seem to happen with RAM character sets, just ROM. Note that 1200XL mode runs only from the stock 1200XL ROM and WIDE modes run only from SRAM. If you look in the CPLD, you will see that access times for SRAM are skewed. May have to do that for the ROM... Bob Quote Link to comment Share on other sites More sharing options...
charliecron Posted February 27, 2012 Share Posted February 27, 2012 This reminds of a problem I had years ago with a 1200xl and Textpro.. I would get inverse charcters. http://newsgroups.derkeiler.com/Archive/Comp/comp.sys.atari.8bit/2006-04/msg00216.html I've just tried textpro and it works fine, but Im probably not using the same machine. Quote Link to comment Share on other sites More sharing options...
+bob1200xl Posted February 27, 2012 Author Share Posted February 27, 2012 Yes, 1200XLs do have a number of timing/noise problems. Makes you wonder what kind of engineers they had working for them? (to be fair, it could be really bad management...) I tried an ANTIC that is known to fail on a Sweet16 - works normally in all modes with all DOS versions. (3.07 and 3.08 work, 4.5 returns to DOS) No $FFs. Bob Quote Link to comment Share on other sites More sharing options...
+bob1200xl Posted February 27, 2012 Author Share Posted February 27, 2012 In 1200XL mode. 3.07 and 3.08 are actually loading data under the ROM once the TBXL screen loads. 4.50 is not (it should, but it is broken) In WIDE mode, there is no ROM, just RAM. Once we 'fix' the 4.50 problem, it will probably give you 3.07/3.08 displays, also. Bob If it is Antic, why would it only do it with 3.07/3.08 on the 1200XL side? -Larry Quote Link to comment Share on other sites More sharing options...
russg Posted February 27, 2012 Share Posted February 27, 2012 (edited) This is not a problem with a stock 1200XL, just a modified PBI hard drive 1200XL. Can you describe this 1200XL? Putting a PBI on it and running 800XL OS, which has PBI code in it. Have you tried, or might you like Tom Hunt's 'Fast BASIC'? It runs on MyDOS or SpartaDOS or probably other Sparta type DOSes. Are you running TBXL specific programs? Edited February 27, 2012 by russg Quote Link to comment Share on other sites More sharing options...
+JAC! Posted February 27, 2012 Share Posted February 27, 2012 Hehe, I feel this wil become the "everything you every wanted to know about 1200 XL but went wrong" thread . 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.