senior_falcon Posted May 31, 2019 Author Share Posted May 31, 2019 Hi Wolfgang: The files that were changed were RUNTIME1, RUNTIME2, and RUNTIME7, so if you just copy those you should be OK. LOAD is only called that so that XB will automatically load it from DSK1. You could change the name to CMENU (for example) and put it on DSK3. Then you could modify CMENU so that a selection will load and run the program from DSK3. i.e. in CMENU change RUN "DSK1.COMPILER" to RUN "DSK3.COMPILER". Then in COMPILER you have to change RUN "DSK1.LOAD" to RUN "DSK3.CMENU" Of course it would not autoload as it does now, but you could write a LOAD program for DSK1 with one line: 10 RUN "DSK3.CMENU" These are good suggestions and I will take a look to see about changing the package to make this easier. Quote Link to comment Share on other sites More sharing options...
wolhess Posted May 31, 2019 Share Posted May 31, 2019 (edited) Hi, the described changes I made exactly as described and it works already almost perfect. Thanks a lot! Edited May 31, 2019 by wolhess Quote Link to comment Share on other sites More sharing options...
wolhess Posted June 1, 2019 Share Posted June 1, 2019 Hello senior_falcon, I am currently working on a program that can alert appointments from REMIND ME (by John A. Johnson).Here I use the calendar file of REMIND ME, but work with a temporary file, which I would like to delete after editing. This works in XB with: CLOSE # 1: DELETE However, in the compiled program version, the file persists (I use Isabella5). Is it possible to delete files in the compiler version? Excuse me if I make too much effort for you! wolfgang Quote Link to comment Share on other sites More sharing options...
wolhess Posted June 1, 2019 Share Posted June 1, 2019 Another question, is it possible to extend the compiler with a userruntime in order to use own assembler routines, which are integrated with LOAD in XB, also in the compiled version? As it works with the XB256 extensions! For example, I would like to use the 40 column mode of XXB or use my own routines to support large integer numbers or floating point calculations. Wolfgang Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted June 2, 2019 Author Share Posted June 2, 2019 (edited) CLOSE # 1: DELETE However, in the compiled program version, the file persists (I use Isabella5). Is it possible to delete files in the compiler version? DELETE is currently not supported by the compiler, in fact I never used it in XB. In my tests it just crashed when compiling. I will look into what is needed to add this. It may not be too difficult. is it possible to extend the compiler with a userruntime in order to use own assembler routines, which are integrated with LOAD in XB, also in the compiled version? As it works with the XB256 extensions! For example, I would like to use the 40 column mode of XXB or use my own routines to support large integer numbers or floating point calculations. It might be possible to use the 40 column mode of XXB, but it would be far from trivial. Likewise, I am not sure how floating point or large integers could interface with the compiled code. In fact, the need for STRREF, STRASG, NUMREG, and NUMASG, plus the question of where to put the code make it impractical for compiled code to run the same assembly subroutines that are used in XB However, it is possible to write your own extensions and add them to the runtime routines. There are subroutines that compiled code uses that are the equivalent of STRASG, STREF, NUMASG and NUMREF. Ideally you would have a CALL LINK("ALSUB",variable list) so you can do all the testing in XB, and adapt the code to be part of the runtime routines. If there is any interest in this I could probably add a short tutorial to the manual. Edited June 2, 2019 by senior_falcon 3 Quote Link to comment Share on other sites More sharing options...
wolhess Posted June 2, 2019 Share Posted June 2, 2019 That sounds very good! Yes, please a small tutorial would be very helpfull. Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted June 6, 2019 Author Share Posted June 6, 2019 (edited) I have unsuccessfully tried to get DELETE to work when compiled. But then it turns out that my test program doesn't even delete in XB. I get "I/O ERROR 73 IN 50". (Also I/O ERROR 73 when I try to delete from the command line.) Any ideas where I am going astray? (EDIT) It looks like this may be a problem with Classic99. I can delete files using Win994a as described in the manual. 10 OPEN #1:"DSK1.TEST.TXT" 20 FOR I=1 TO 10 :: LINPUT #1:A$ :: PRINT A$ :: NEXT I 40 CLOSE #1 50 DELETE "DSK1.TEST.TXT" Edited June 6, 2019 by senior_falcon 1 Quote Link to comment Share on other sites More sharing options...
+TheBF Posted June 6, 2019 Share Posted June 6, 2019 I believe I read in the manual that Classic99 does not Delete files. Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted June 6, 2019 Share Posted June 6, 2019 The Classic99 manual implies support for DELETE for FIAD files and explicitly states “All disk operations except 'format' are supported.” for DSK images. The CLIP device is the only one for which DELETE is explicitly unsupported. You might try using the TI DSR (can only be used with DSK images [DOAD]) to make sure your code is working properly for the TI disk controller. You will need to edit classic99.ini to use it, however. After first setting up Classic99 to use a DSK image for, say, DSK2, you will need to change the disk’s “Type” option: [Disk2] Type=3 ... ...lee Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted June 7, 2019 Author Share Posted June 7, 2019 (edited) "The Classic99 manual implies support for DELETE for FIAD files and explicitly states “All disk operations except 'format' are supported.” for DSK images. The CLIP device is the only one for which DELETE is explicitly unsupported." DELETE does not work for me. Try this: 10 REM TEST SAVE DSK1.TEST DELETE "DSK1.TEST" I get I/O ERROR 73 I cannot get disk images to work at all. Downloaded disk images cannot be seen by Classic99. I don't know where I am going astray. I will try to get this to work with Win994a, but my interest is waning. (EDIT) In Win994a, the compiled code seems to work properly for erasing files: I created this XB program 10 REM TESTZ SAVE DSK1.TESTZ And TESTZ appears when cataloging the disk. This XB prgram can be compiled: 10 DELETE "DSK1.TESTZ" When it is run, TESTZ is erased. Edited June 7, 2019 by senior_falcon Quote Link to comment Share on other sites More sharing options...
+FarmerPotato Posted June 7, 2019 Share Posted June 7, 2019 "The Classic99 manual implies support for DELETE for FIAD files and explicitly states “All disk operations except 'format' are supported.” for DSK images. The CLIP device is the only one for which DELETE is explicitly unsupported." DELETE does not work for me. Try this: 10 REM TEST SAVE DSK1.TEST DELETE "DSK1.TEST" I get I/O ERROR 73 I cannot get disk images to work at all. Downloaded disk images cannot be seen by Classic99. I don't know where I am going astray. I will try to get this to work with Win994a, but my interest is waning. Did you change the Image pulldown from FIAD to DSK before opening the file dialog? otherwise the dsk files won't appear. Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted June 7, 2019 Author Share Posted June 7, 2019 Did you change the Image pulldown from FIAD to DSK before opening the file dialog? otherwise the dsk files won't appear. Yes, and the path points to a disk image file that I downloaded from this site. Nothing shows up. When I try to catalog the disk I get this message: "A device attached to the system is not functioning" I am running Classic 99 with Windows XP running in Oracle Virtual Box which is on a Linux system. So there are a lot of layers where problems might develop. 1 Quote Link to comment Share on other sites More sharing options...
RXB Posted June 7, 2019 Share Posted June 7, 2019 Yes, and the path points to a disk image file that I downloaded from this site. Nothing shows up. When I try to catalog the disk I get this message: "A device attached to the system is not functioning" I am running Classic 99 with Windows XP running in Oracle Virtual Box which is on a Linux system. So there are a lot of layers where problems might develop. Yea this sounds like a problem I was having for a time. But that was a READ ONLY FILE ERROR created by Windows 10 and to get past it required me to change permissions on all files in Documents folder where Classic99 resides. Quote Link to comment Share on other sites More sharing options...
+arcadeshopper Posted June 7, 2019 Share Posted June 7, 2019 Yes, and the path points to a disk image file that I downloaded from this site. Nothing shows up. When I try to catalog the disk I get this message: "A device attached to the system is not functioning" I am running Classic 99 with Windows XP running in Oracle Virtual Box which is on a Linux system. So there are a lot of layers where problems might develop. Why run in a VM when wine works.. Sent from my LM-G820 using Tapatalk Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted June 8, 2019 Author Share Posted June 8, 2019 Why run in a VM when wine works.. The clipboard does not work, plus it seems a bit choppy when using the debugger. Quote Link to comment Share on other sites More sharing options...
+arcadeshopper Posted June 8, 2019 Share Posted June 8, 2019 The clipboard does not work, plus it seems a bit choppy when using the debugger.Ah k I thought possibly I fixed that in the past.. Will have to look Sent from my LM-G820 using Tapatalk Quote Link to comment Share on other sites More sharing options...
Tursi Posted June 14, 2019 Share Posted June 14, 2019 DELETE does not work for me. Try this: 10 REM TEST SAVE DSK1.TEST DELETE "DSK1.TEST" I get I/O ERROR 73 Any time you see strange behaviour with disk, don't guess. Go read the debug log. In this case, it says: Deleting DSK1.TEST on drive type FIAD Operation not supported on this disk type. Setting file error 3 on file buffer 133 My stance is that you should use Windows file manage to manage Windows files, the TI side is just capable of using the Windows file system. With filename remapping etc (particularly for V9T9 files), if you want to delete something I want to make sure it's the file you intended. So FIAD does not support delete. I cannot get disk images to work at all. Downloaded disk images cannot be seen by Classic99. I don't know where I am going astray. This one I WOULD be interested in understanding, as it should be fairly transparent. Classic99 can read/write both V9T9 and PC99 style disk images. It should simply be a matter of changing the type to "Image (DSK)" and browsing for the path in the Path dialog. Again, after a failed operation, open the debugger and read the debug log. Classic99 should tell you exactly why it returned an error code. 1 Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted June 15, 2019 Author Share Posted June 15, 2019 This one I WOULD be interested in understanding, as it should be fairly transparent. Classic99 can read/write both V9T9 and PC99 style disk images. It should simply be a matter of changing the type to "Image (DSK)" and browsing for the path in the Path dialog. Again, after a failed operation, open the debugger and read the debug log. Classic99 should tell you exactly why it returned an error code. This is a level 8 error. I had assumed that once you set up the disk image (in this case as DSK3) it would be possible to "Open DSK3" as usual when using FIAD. When I do that I get this message: "A device attached to the system is not functioning." So I just assumed that the disk couldn't be seen. Turns out it can be, but only by the TI and not by windows. Quote Link to comment Share on other sites More sharing options...
Tursi Posted June 15, 2019 Share Posted June 15, 2019 This is a level 8 error. I had assumed that once you set up the disk image (in this case as DSK3) it would be possible to "Open DSK3" as usual when using FIAD. When I do that I get this message: "A device attached to the system is not functioning." So I just assumed that the disk couldn't be seen. Turns out it can be, but only by the TI and not by windows. Ooooh... okay. This is actually nothing to do with emulation. "Open DSKx" in the menu does nothing but tell Windows to open the selected file. When it's a folder, Windows Explorer takes the request and opens the folder. If it's a disk, you need to have registered a program to handle the file extension (DSK, TIDISK, etc). I use ti99dir, but anything that can open a disk image on the command line will work - you just have to tell Windows to "always open this file type" with that program. The error message when nothing is registered is a weird one (unless there's something wrong with the registration)... but that's outside of my scope. Unless I actually want to parse the registry (I don't), there's no way for Classic99 to know. At any rate... if it works for you to double-click a DSK image in Windows explorer, then it should work from Classic99. Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted June 22, 2019 Author Share Posted June 22, 2019 As Wolfgang suggested, I have adjusted the programs in the XBGDP package so that it now can be used with any drive number from 1 to 9 . You do have to make an alteration to the LOAD program; a line must be changed to tell the package what disk number is being used. i.e. Line 99 D=3 if you want to use disk three instead of disk one. I will post this after some more testing, but first a question: Is there any way for a program to know from what disk it has been loaded? If so, then I can modify the program so that the user does not have to change anything. 1 Quote Link to comment Share on other sites More sharing options...
wolhess Posted June 22, 2019 Share Posted June 22, 2019 Hi Seniorfalcon, many Thanks for your effort. Regarding your question, there is probably a functionality called BOOT Tracking. This is an option in the Funnelweb configuration. And in "The Cyc: Micropendium", 1.7 The Art Of Assembly - Part 7, Page 56 is an article in assembler to identify the drive from which a program was loaded. regards Wolfgang Quote Link to comment Share on other sites More sharing options...
Asmusr Posted June 22, 2019 Share Posted June 22, 2019 I have used that boot tracking routine in a couple of games, but I changed "LDCR @ONES,0" to "SBO 0" because the former was causing problems with some DSRs. It depends on the contents of @ONES which I think is supposed to be >0101. Quote Link to comment Share on other sites More sharing options...
+Lee Stewart Posted June 22, 2019 Share Posted June 22, 2019 37 minutes ago, Asmusr said: I have used that boot tracking routine in a couple of games, but I changed "LDCR @ONES,0" to "SBO 0" because the former was causing problems with some DSRs. It depends on the contents of @ONES which I think is supposed to be >0101. Yeah—Bruce Harrison changed to “SBO 0” and “SBZ 0” in a later article in The Art of Assembly for the same reason. ...lee Quote Link to comment Share on other sites More sharing options...
senior_falcon Posted June 22, 2019 Author Share Posted June 22, 2019 Yep, I found that later article with the SBO and SBZ. It seems to work fine for retrieving the disk number MOV @>83D0,R12 GET THE CRU BASE IN R12 JEQ EXIT GET OUT IF 0 MOV @>83D2,R9 GET THE ROM ADDRESS FOR DEVICE JEQ EXIT GET OUT IF 0 SBO 0 ENABLE THE DEVICE ROM AI R9,8 Now R9 points to disk number (ascii) What circumstances would lead to >83D0 or >83D2 being equal to zero? Quote Link to comment Share on other sites More sharing options...
+jedimatt42 Posted June 23, 2019 Share Posted June 23, 2019 Why were they able to assume >83Dx still had relevant information at the time control is transferred to a program? Was this a side effect of the DSR, DSRLNK, or EA loaders? >83Dx is in the workspace usually used by the ISR, correct? -M@ 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.