Jump to content
IGNORED

PCARD & Psys Questions


hloberg

Recommended Posts

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   

  • Like 1
Link to comment
Share on other sites

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

 

  • Thanks 1
Link to comment
Share on other sites

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}

Link to comment
Share on other sites

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. :) 

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

  • Like 3
Link to comment
Share on other sites

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

 

 

  • Like 1
Link to comment
Share on other sites

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}.

 

  • Like 1
Link to comment
Share on other sites

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

  • Like 2
Link to comment
Share on other sites

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.

 

  • Like 1
Link to comment
Share on other sites

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 by hloberg
  • Like 3
Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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 by hloberg
Link to comment
Share on other sites

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.

  • Like 3
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...