+hloberg Posted December 28, 2021 Author Share Posted December 28, 2021 1 hour ago, dhe said: Is the psystem source code in github? it's on @9640News website which points to github here: https://github.com/BeeryMiller/PSYSTEM 1 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted December 28, 2021 Author Share Posted December 28, 2021 fyi: print works on what I tried on the geneve psystem. seems to default to the parallel port. and here is a copy of the setup. some I understand, some I don't have a clue. changing the arrow keys doesn't seem to have any effect or I just don't know what I'm doing. KEYBOARD FIELD NAME DEC VAL ASCII CNTRL COND/PREFIX ---------------------------------------------------------------------- HAS LOWER CASE TRUE LEAD IN PREFIX FROM KEYBOARD 17 DC1 ^Q KEYBOARD INPUT MASK (127..255) 255 KEY TO ALPHA LOCK 1 SOH ^A KEY TO END INPUT FILE (KEYBD) 3 ETX ^C KEY FOR FLUSH (NO OUTPUT) 15 SI ^O KEY FOR BREAK (ABORT) 2 STX ^B KEY FOR STOP (SUSPEND I/O) 19 DC3 ^S KEY TO BACKSPACE (DELETE CHAR) 131 FALSE KEY TO MOVE CURSOR LEFT 136 FALSE KEY TO MOVE CURSOR RIGHT 137 FALSE KEY TO MOVE CURSOR UP 139 FALSE KEY TO MOVE CURSOR DOWN 138 FALSE KEY TO DELETE ENTIRE LINE 11 VT ^K FALSE EDITOR ESCAPE KEY 27 ESC ^[ FALSE EDITOR ACCEPT KEY 26 SUB ^Z FALSE EDITOR EXCHANGE-DELETE KEY 3 ETX ^C FALSE EDITOR EXCHANGE-INSERT KEY 4 EOT ^D FALSE SCREEN CONTROL FIELD NAME DEC VAL ASCII CNTRL COND/PREFIX ---------------------------------------------------------------------- HAS RANDOM CURSOR ADDRESSING FALSE HAS SLOW TERMINAL <= 600 BAUD FALSE CURSOR VERTICAL MOVE DELAY 0 SUBSTITUTE FOR NON PRINT CHAR 63 ? FALSE LEAD IN PREFIX TO SCREEN 27 ESC ^[ SCREEN HEIGHT (LINES) 24 SCREEN WIDTH (COLUMNS) 80 PRINTABLE CHARACTERS(DEC VALS) 0..13,32..126,128..255 MOVE CURSOR LEFT 8 BS ^H FALSE MOVE CURSOR RIGHT 12 FF ^L FALSE MOVE CURSOR UP 11 VT ^K FALSE MOVE CURSOR HOME 1 SOH ^A FALSE ERASE ENTIRE LINE 30 RS ^^ FALSE ERASE TO END OF LINE 29 GS ^] FALSE ERASE ENTIRE SCREEN 26 SUB ^Z FALSE ERASE TO END OF SCREEN 28 FS ^\ FALSE SYSTEM CHARACTERISTICS FIELDS COND/OCTAL DEC VAL HEX VAL ---------------------------------------------------------------------- MOST SIGNIFICANT BYTE FIRST TRUE USES 16-BIT WORD ADDRESSES FALSE HAS EXTENDED MEMORY ( >64K ) TRUE HAS PRINTER SPOOLING FALSE HAS CLOCK (LINE FREQ) TRUE HAS EXTERNAL SOCKET POOL FALSE TIMER TICK EVENT ENABLED TRUE ASYNCH CHAR READY EVENT ENABLED TRUE CODE POOL SIZE (K-BYTES) 200 128 80 CODE POOL BASE (FIRST WORD) 0 0 0 CODE POOL BASE (SECOND WORD) 0 0 0 SEGMENT ALIGNMENT (RESOLUTION) 20 16 10 MAX NUMBER OF USER SERIAL VOLS 0 FIRST SUBSIDIARY VOL NUMBER 20 MAX NUMBER OF SUBSIDIARY VOLS 5 ALIAS POOL SIZE (BYTES) 454 300 12C MAXIMUM NUMBER OF ALIASES 12 10 A NUMBER OF I/O BUFFERS 3 3 3 FAULT HANDLER STACK SIZE 620 400 190 SIZE OF EXTERNAL SOCKET POOL 23777 10239 27FF SOCKET POOL BASE (FIRST WORD) 0 0 0 SOCKET POOL BASE (SECOND WORD) 0 0 0 1 Quote Link to comment Share on other sites More sharing options...
+9640News Posted December 28, 2021 Share Posted December 28, 2021 Yeah, I played with some of those settings without success. Been chasing down something I discovered in the newer MDOS code I am working on at the moment and will see if I can write a short program as described below later this evening. Need to doublecheck some things via a short MDOS assembly program that reports the bytes being reported from the various keys to the KSCAN call from the XOP with Pascal Mode #4 would confirm the "Key to move cursor left/right/up/home, etc" with PSYS ON would confirm the appropriate key handling is working as intended from MDOS. Beery 1 Quote Link to comment Share on other sites More sharing options...
+dhe Posted December 29, 2021 Share Posted December 29, 2021 Disclaimer: I make no pretense of understanding how any of the code works. The code does look to be well commented, the comments look like they might have come from Paul Charlton. Beery, did you build the psys that hloberg is using, or was it a binary, with hopefully the build-able source? {Curiosity at work here} Quote Link to comment Share on other sites More sharing options...
+hloberg Posted December 29, 2021 Author Share Posted December 29, 2021 9 minutes ago, dhe said: The code does look to be well commented, the comments look like they might have come from Paul Charlton. always love a well documented program. can't tell you how many times as a programmer I would inherit a buggy program with no docs, no comments and such wonderfully descriptive variable names like A1, A2, B5. and of course those where the programs that needed finished by yesterday. Quote Link to comment Share on other sites More sharing options...
+9640News Posted December 29, 2021 Share Posted December 29, 2021 45 minutes ago, dhe said: Disclaimer: I make no pretense of understanding how any of the code works. The code does look to be well commented, the comments look like they might have come from Paul Charlton. Beery, did you build the psys that hloberg is using, or was it a binary, with hopefully the build-able source? {Curiosity at work here} Source code is buildable as is. As to what hloberg was using, anyone's guess. Beery Quote Link to comment Share on other sites More sharing options...
+hloberg Posted December 29, 2021 Author Share Posted December 29, 2021 8 minutes ago, 9640News said: Source code is buildable as is. As to what hloberg was using, anyone's guess. Beery think a recompile is needed? Quote Link to comment Share on other sites More sharing options...
+9640News Posted December 29, 2021 Share Posted December 29, 2021 1 hour ago, hloberg said: think a recompile is needed? I don't think so although I do have concern in sector 35 of the PSYSTEM file regarding the byte before RS232/2 which is a length byte. The remote IN and Remote OUT are of different length bytes, though the source code for the string is identical. One is without a trailing period in the device name after the baud rate while the other has a trailing period. The source file which originates this is in BIOS2. I did include a fresh compile of PSYSTEM. I did write a KEYTEST program and included the source code in this file, along with a "fresh" compile of PSYSTEM which is the original source I have on hand. If someone updated the source code and did any updates after the MDOS buyout, I was never told of the updates and never saw the updates posted. The PSYSTEM BIOS 2 file uses PASCAL mode. Make sure PSYS ON is used. In my KEYTEST program, I do a clear screen with the byte >0C. If PSYS ON is active, the clear screen byte has an unusual behavior. I do have >88(136 dec) for left arrow, >89 (137 dec) for right arrow, >8B (139 dec) for Up Arrow, and >8A (138 dec) for down arrow. Not sure if that helps with the editing or not. Beery KEYTEST.zip 3 Quote Link to comment Share on other sites More sharing options...
+InsaneMultitasker Posted December 29, 2021 Share Posted December 29, 2021 1 hour ago, 9640News said: In my KEYTEST program, I do a clear screen with the byte >0C. If PSYS ON is active, the clear screen byte has an unusual behavior. Just noticed this thread. PSYS ON/OFF has only one purpose: to change the behavior of the TTYOUT XOP (>27) for control codes >0C and >19. If I recall correctly, the psystem display problem was reported by @dhe and was a result of a revision made by Clint Pulley 4 years prior. Perhaps there is a problem with my code or the revision of psystem that is available to us. (Edit: I wonder if we can update psystem to use >19 and >0c per standard XOP usage, and then remove the psys on/off command) I don't recall why Clint had to implement a "new form feed" to move the cursor right one position. Here are the relevant L6\ sections for reference: 92/09/16 - Revised WRITETTY by: Restoring >0C (Form Feed) to original function (clear screen and home cursor), equivalent to >1A (^Z). Adding X92719 to make character >19 (^Y) perform the "new Form Feed" function of moving the cursor one position right. ----- X92719 ABS @PSYS ** 5/7/96 TAT JEQ X927TT ** 0=NORMAL; 1=psystem, pass through B @X92700 ** X9270C ABS @PSYS ** 5/7/96 psystem? JEQ X9271A ** no, clear screen JMP X927TT ** YES, do >19 instead 1 Quote Link to comment Share on other sites More sharing options...
+dhe Posted December 29, 2021 Share Posted December 29, 2021 Looking through the code I found this: * 5/9/88.1 * MODIFY ROUTINES THAT USE OFST8K&BLK8K TO SWAP BLOCK AT * >4000 TO DEAL WITH MEMORY SWAP PROBLEM * MAY SET THIS BACK LATER (some routines hard-coded for >4000...-pc (argh!) To me confirms Paul's finger print. @hloberg did the psys make it to a state where it understands hard drives and paths - looking at the source I only see mention of dsk{1-8}. 1 Quote Link to comment Share on other sites More sharing options...
+9640News Posted December 29, 2021 Share Posted December 29, 2021 4 hours ago, dhe said: Looking through the code I found this: * 5/9/88.1 * MODIFY ROUTINES THAT USE OFST8K&BLK8K TO SWAP BLOCK AT * >4000 TO DEAL WITH MEMORY SWAP PROBLEM * MAY SET THIS BACK LATER (some routines hard-coded for >4000...-pc (argh!) To me confirms Paul's finger print. @hloberg did the psys make it to a state where it understands hard drives and paths - looking at the source I only see mention of dsk{1-8}. Dan, My filepaths to the volumes are all on either HDS1 or TIP1 paths with no issues. Outside of some old floppy disks I held onto over the years, everything I need/use is on hard drive and/or TIPI with one exception. That being, Myarc Extended Basic 2.1x is run from floppy as I have not been able to modify the eprom loader on the Myarc 512K card to load from TIPI yet. I don't think I have actually attempted DSK1 mapping on the TIPI yet. Beery 2 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted December 29, 2021 Author Share Posted December 29, 2021 4 hours ago, dhe said: Looking through the code I found this: * 5/9/88.1 * MODIFY ROUTINES THAT USE OFST8K&BLK8K TO SWAP BLOCK AT * >4000 TO DEAL WITH MEMORY SWAP PROBLEM * MAY SET THIS BACK LATER (some routines hard-coded for >4000...-pc (argh!) To me confirms Paul's finger print. @hloberg did the psys make it to a state where it understands hard drives and paths - looking at the source I only see mention of dsk{1-8}. file access doesn't seem to be a problem although, once and a while, FILER won't see a file. Krunch or bad-block cleanup usually corrects the issue though. but bad-blocks rarely occur. usually because I did something dumb like not exiting the program properly with HALT or somehow locking up the program. 1 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted December 29, 2021 Author Share Posted December 29, 2021 (edited) if anyone was wondering I tested MDOS 5 & 6 with PSYS and there was no difference in how the psystem acted. no cursor or arrow keys. also found an older upload of PSYS and tired that, no change. Edited December 29, 2021 by hloberg Quote Link to comment Share on other sites More sharing options...
+Ksarul Posted December 29, 2021 Share Posted December 29, 2021 Didn't Jerry Coffee also make some changes/corrections to the 9640 p-System? I seem to remember coming across something to that effect in the 1995/1996 time-frame. Quote Link to comment Share on other sites More sharing options...
+hloberg Posted December 30, 2021 Author Share Posted December 30, 2021 (edited) another FYI. there is a spreadsheet for the P-Card called FreeForm. Whenever I try to run it on the geneve psystem it blows up with memory or stack errors. but, the full source code is available in Pascal and assembler. so, maybe, one day it might be worthwhile to fix? I did notice it looks like it hard codes to 40 column, maybe that is the issue, which may not be an easy fix? one other program of interest is Pilot for the p-card. it blows up on psystem too same way. unfortunately don't see the source code but it will run on p-card. have also found on the various p-card disk some user created utilities, some work, some don't but most have source code. oh, and there is an adventure game called 'adventure 500'. it won't run on psystem, same issues, but has source code. attached is the files and lots more if you are interested. they all seem to work in p-card but may or may not work on psystem. in the .zip look at text supplied for what disk has what. Projects.zip Edited December 30, 2021 by hloberg 3 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted December 31, 2021 Author Share Posted December 31, 2021 NOTE: I updated with new information. 2 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted January 2, 2022 Author Share Posted January 2, 2022 you know, the only thing that really needs to be absolutely fixed on the geneve psystem is the lack of a cursor. the other issues can be worked around easily. I wonder how hard it be to just hard code a cursor? Quote Link to comment Share on other sites More sharing options...
+9640News Posted January 2, 2022 Share Posted January 2, 2022 30 minutes ago, hloberg said: you know, the only thing that really needs to be absolutely fixed on the geneve psystem is the lack of a cursor. the other issues can be worked around easily. I wonder how hard it be to just hard code a cursor? Well, the PSYSTEM itself in the keyscan routine already has a flashing cursor. Not sure what/how the editor or any other program is getting around the cursor routine as there are only a few spots, and just one for the keyscan, XOP call. It is probabably possible to convert the code over into 4A code with the SAMS. 1 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted January 3, 2022 Author Share Posted January 3, 2022 56 minutes ago, 9640News said: Well, the PSYSTEM itself in the keyscan routine already has a flashing cursor. Not sure what/how the editor or any other program is getting around the cursor routine as there are only a few spots, and just one for the keyscan, XOP call. It is probabably possible to convert the code over into 4A code with the SAMS. that would be interesting a ti99 version. 1 Quote Link to comment Share on other sites More sharing options...
apersson850 Posted January 3, 2022 Share Posted January 3, 2022 On 12/28/2021 at 12:52 AM, hloberg said: so does that mean that the SYSTEM files were probably just copied from the P-card to the psystem? isn't the char set different between the TI99 and the geneve? What version of the p-system does the Geneve run? The TI 99/4A uses verison IV.0, so if the Geneve uses IV.1 or higher, then they are definitely not the same. Normally, in the p-system, the character set should be defined by the file *SYSTEM.CHARAC. In the 99/4A, due to the existence of the p-code card, the original file is OS:SYSTEM.CHARAC, but if you modify it and then store it as *SYSTEM.CHARAC, then that file will be used instead. Provided the character definition file works, then it doesn't matter if the character set in the standard machines are different. It's not used anyway. Quote Link to comment Share on other sites More sharing options...
+hloberg Posted January 3, 2022 Author Share Posted January 3, 2022 (edited) 3 hours ago, apersson850 said: What version of the p-system does the Geneve run? The TI 99/4A uses verison IV.0, so if the Geneve uses IV.1 or higher, then they are definitely not the same. Normally, in the p-system, the character set should be defined by the file *SYSTEM.CHARAC. In the 99/4A, due to the existence of the p-code card, the original file is OS:SYSTEM.CHARAC, but if you modify it and then store it as *SYSTEM.CHARAC, then that file will be used instead. Provided the character definition file works, then it doesn't matter if the character set in the standard machines are different. It's not used anyway. I don't think the psystem uses the *system. charac at all. you can remove it and there is no effect on the character set. not sure if by design or a bug. Edited January 3, 2022 by hloberg Quote Link to comment Share on other sites More sharing options...
apersson850 Posted January 3, 2022 Share Posted January 3, 2022 On 12/28/2021 at 10:44 PM, hloberg said: KEYBOARD FIELD NAME DEC VAL ASCII CNTRL COND/PREFIX ---------------------------------------------------------------------- HAS LOWER CASE TRUE LEAD IN PREFIX FROM KEYBOARD 17 DC1 ^Q KEYBOARD INPUT MASK (127..255) 255 KEY TO ALPHA LOCK 1 SOH ^A KEY TO END INPUT FILE (KEYBD) 3 ETX ^C KEY FOR FLUSH (NO OUTPUT) 15 SI ^O KEY FOR BREAK (ABORT) 2 STX ^B KEY FOR STOP (SUSPEND I/O) 19 DC3 ^S KEY TO BACKSPACE (DELETE CHAR) 131 FALSE KEY TO MOVE CURSOR LEFT 136 FALSE KEY TO MOVE CURSOR RIGHT 137 FALSE KEY TO MOVE CURSOR UP 139 FALSE KEY TO MOVE CURSOR DOWN 138 FALSE KEY TO DELETE ENTIRE LINE 11 VT ^K FALSE EDITOR ESCAPE KEY 27 ESC ^[ FALSE EDITOR ACCEPT KEY 26 SUB ^Z FALSE EDITOR EXCHANGE-DELETE KEY 3 ETX ^C FALSE EDITOR EXCHANGE-INSERT KEY 4 EOT ^D FALSE SCREEN CONTROL FIELD NAME DEC VAL ASCII CNTRL COND/PREFIX ---------------------------------------------------------------------- HAS RANDOM CURSOR ADDRESSING FALSE HAS SLOW TERMINAL <= 600 BAUD FALSE CURSOR VERTICAL MOVE DELAY 0 SUBSTITUTE FOR NON PRINT CHAR 63 ? FALSE LEAD IN PREFIX TO SCREEN 27 ESC ^[ SCREEN HEIGHT (LINES) 24 SCREEN WIDTH (COLUMNS) 80 PRINTABLE CHARACTERS(DEC VALS) 0..13,32..126,128..255 MOVE CURSOR LEFT 8 BS ^H FALSE MOVE CURSOR RIGHT 12 FF ^L FALSE MOVE CURSOR UP 11 VT ^K FALSE MOVE CURSOR HOME 1 SOH ^A FALSE ERASE ENTIRE LINE 30 RS ^^ FALSE ERASE TO END OF LINE 29 GS ^] FALSE ERASE ENTIRE SCREEN 26 SUB ^Z FALSE ERASE TO END OF SCREEN 28 FS ^\ FALSE SYSTEM CHARACTERISTICS FIELDS COND/OCTAL DEC VAL HEX VAL ---------------------------------------------------------------------- MOST SIGNIFICANT BYTE FIRST TRUE USES 16-BIT WORD ADDRESSES FALSE HAS EXTENDED MEMORY ( >64K ) TRUE HAS PRINTER SPOOLING FALSE HAS CLOCK (LINE FREQ) TRUE HAS EXTERNAL SOCKET POOL FALSE TIMER TICK EVENT ENABLED TRUE ASYNCH CHAR READY EVENT ENABLED TRUE CODE POOL SIZE (K-BYTES) 200 128 80 CODE POOL BASE (FIRST WORD) 0 0 0 CODE POOL BASE (SECOND WORD) 0 0 0 SEGMENT ALIGNMENT (RESOLUTION) 20 16 10 MAX NUMBER OF USER SERIAL VOLS 0 FIRST SUBSIDIARY VOL NUMBER 20 MAX NUMBER OF SUBSIDIARY VOLS 5 ALIAS POOL SIZE (BYTES) 454 300 12C MAXIMUM NUMBER OF ALIASES 12 10 A NUMBER OF I/O BUFFERS 3 3 3 FAULT HANDLER STACK SIZE 620 400 190 SIZE OF EXTERNAL SOCKET POOL 23777 10239 27FF SOCKET POOL BASE (FIRST WORD) 0 0 0 SOCKET POOL BASE (SECOND WORD) 0 0 0 Those things I've highlighted above - have you tried setting any of them to true? Like telling it that it has random cursor addressing and then setting the arrow keys to TRUE? I've not done the setup on a system like this one, so I'm not sure if this will fix anything. It seems the Geneve uses a later p-system version than the 99/4A. In which case it may support three code combinations for things like arrow keys, and the FALSE value should perhaps only be used to indicate that. So, thinking a little further, start with just setting HAS RANDOM CURSOR ADDRESSING to TRUE. Systems running on hardware where the display control doesn't allow redefinition of the character set as easily as the 99/4A does don't have the SYSTEM.CHARAC file at all. Maybe the Geneve is designed the same, and the SYSTEM.CHARAC was added to the 99/4A to make use of it's flexible character set. 3 Quote Link to comment Share on other sites More sharing options...
+hloberg Posted January 3, 2022 Author Share Posted January 3, 2022 50 minutes ago, apersson850 said: Those things I've highlighted above - have you tried setting any of them to true? Like telling it that it has random cursor addressing and then setting the arrow keys to TRUE? Yup. tried them all & various others. Quote Link to comment Share on other sites More sharing options...
+dhe Posted January 4, 2022 Share Posted January 4, 2022 While scrounging for c99 information, I was pleasantly surprised that I found a couple of years worth of articles from Ron Williams of the Boston Computer Society (BCS) - on using the P-System. They are very well written articles. RoboFrog of the Chicago users group also did a number of very good articles for the Chicago newsletter called the p-system advantage. 1 Quote Link to comment Share on other sites More sharing options...
+9640News Posted January 4, 2022 Share Posted January 4, 2022 Was this for the Geneve, or for the TI-99/4A. 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.