Re: Re: Where do I start?
Ron Hudson <[email protected]> Thu, 27 May 2010 16:07:00 -0700
| Newsgroups | gmane.comp.emulators.turnkey-mvs |
|---|---|
| Message-ID | <[email protected]> |
On Thu, May 27, 2010 at 3:42 PM, Gerhard Postpischil <[email protected]>wrote: > On 5/27/2010 4:56 PM, Ron Hudson wrote > > The 'move stuff' portion of the code fails - It does not seem to detect > > the end of the INBUF. I checked > > the example I have and the documentation I could find on TGET and it > > seems that TGET returns the > > byte count in R1? ? > > I just dragged myself upstairs and got the manual. Thank you. > TGET returns > the number of bytes moved to your buffer in R1. However, you > also need to check R15 to see whether the TGET was processed. If my INBUF is generous shouldn't I always have the full input from my screen? I suppose I need to watch for 20 though so I can gracefully shut down in case someone trips over the coax connecting the terminal to the controller. > A > value of 0 indicates good completion, one of 12 that the buffer > was too short (another TGET would retrieve more bytes, but > without the AID, etc.); the other values are ones you would not > normally see (4 - TGET with NOWAIT and no input available; 16 - > invalid parameters; 20 - terminal disconnected) > > > This is from one of those documentation programs and it talks about > > savign the length and using r1 to > > do it. > > > > TGET (2),(3),R READ FROM THE TERMINAL > > STH R1,0(R4) SAVE THE LENGTH FROM TGET > > SPACE 2 > > LR R1,R13 COPY MY SAVE AREA POINTER > > > > btw: What does the "SPACE" directive do above? > > SPACE 2 tells the assembler to leave two blank lines, for a > prettier listing. Also that TGET doesn't really save much; > shorter would be: > LA 1,INBUFF > LA 0,L'INBUFF > ICM 1,8,=x'81' TGET ASIS > TGET 1,0,R > > > I have a list of the machine instructions but no list yet of compiler > > directives or macros. > > The current assembler documentation is on the IBM web site, but > much of the HL stuff doesn't apply to XF. Macros are documented > in manuals specific to use (Using Data Sets; Assembler Services; > etc.). > > > DEBUG01 TPUT STREAM,STREAMLN,FULLSCR > 00490000 > > LA 5,1(,5) ADVANCE OUTPUT POINTER > 00500000 > > > > LA 6,1(,6) ADVANCE INPUT POINTER > 00510000 > > SH 1,=H'1' REDUCE BYTE COUNT > 00520000 > > The TPUT has just destroyed R1 (address of STREAM), so the loop > will never end. One way of handling is is to use, for instance: > TGET ... > LTR 4,1 check for input > BNP none nothing read > > and use register 4 instead of 1 in subsequent code. > > Gerhard Postpischil > Bradford, VT > > > ------------------------------------ > > Yahoo! Groups Links > > > >