GRIEB@LOCKE.HS.WASHINGTON.EDU (CINDY GRIEB) (02/12/89)
I am trying to find a way to get the CONSOLE status to determine whether it is ready to receive a character -- from within an assembly language routine. It appears that the BIOS function BIOS_CONFUNC with AH=CHR_STATUS should give me what I need, but I can't find anything which tells me what value I should be placing into SI as the CID (internal control table). Has anybody out there worked with BIOS routines before? Can you tell me what the CID should be or where I can find that information? Cindy Grieb GRIEB@locke.hs.washington.edu GRIEB@uwalocke.bitnet
ahd@OMNIGATE.CLARKSON.EDU (Drew Derbyshire) (02/12/89)
Cindy, You really need a copy of the Programmer's Utility Pack. It rescues *ME* about once a day when I do Z-100 specific stuff, and I use it as my general MS-DOS reference as well. As for your question... I have never had the console refuse output... I can dig through PUP some more if you want to me too (and no one can answer off the top of their head). Did you ever get the S-100 modem to work? Drew
GRIEB@LOCKE.HS.WASHINGTON.EDU (CINDY GRIEB) (02/14/89)
Drew, Yes, I know I need a copy of the Programmer's Utility Pack, but at present I don't have the extra $225 to get it. (In fact, it is not even listed in the latest Heath catalog, so I may have trouble getting it at all.) I have the S-100 modem working. In fact that is why I requested some help on BIOS calls. The modem program loses characters after CLEAR-SCREEN and INS/DEL-line terminal functions. Since the board does not support hardware interrupts I may just be stuck with it until I can determine why my speed upgrade isn't working yet. Cindy Grieb GRIEB@locke.hs.washington.edu
ahd@OMNIGATE.CLARKSON.EDU (Drew Derbyshire) (02/14/89)
Cindy, I suspect the characters are being lost in the AUX input queue, not on the terminal output. (The time it takes for terminal output could cause the input overruns, but I do not think the output screen routines are what is dropping the characters.) Similar problems exist in Kermit 2.31 for the Z-100, when I get it fixed I will ship it to you as an example. What program are you using, or did you roll your own? $225? EEEKKKK! Drew Derbyshire
GRIEB@LOCKE.HS.WASHINGTON.EDU (CINDY GRIEB) (02/15/89)
Drew, I am not using AUX. I am using the USR internal (S100) modem board. It exists as a port address on the bus and as far as I can tell is not capable of producing INTerrupts when a character is ready -- which means I am stuck polling the board's status to see if a character is ready and may miss some if MSDOS takes too long in its CONSOLE output routine. Cindy Grieb
ahd@OMNIGATE.CLARKSON.EDU (Drew Derbyshire) (02/15/89)
Cindy, You got problems. :-) I would suggest writing a device driver that polls every (how often?) and queues it internally. Then you can write to the stuff to the screen at a lower priority than the queueing. Another question is, are you using the BIOS or direct MTR-100 calls for output? You may be able to speed the screen output up that way. Also, how do you poll for keyboard input? There is an interrupt you can call to report if you had keyboard or aux input since that last interupt, this may be lower overhead than the noraml BIOS call to poll. The interrupt is 58H, it returns flags for devices that had interrupts in AX. Kermit handles up to (but not including) 9600 baud that way, using the BIOS for I/O to the AUX port and direct monitor calls for output. If you can do a device driver, or find an existing one, interfacing to existing programs might be alot easier and thus faster in the long run.