Qsn........ (DSM Api's)
FDSMREADPT O E PRINTER
*
D Str S 4 0 inz(1)
**-- Global variables: -------------------------------------------------**
D InpBufHdl s 10i 0
D InpDtaPtr s *
**-- Parameters: -------------------------------------------------------**
D Parm Ds
D Row 10i 0
D Col 10i 0
D NbrBytRtn 10i 0
D Screen 3564a
**-- Prototype for DSM API's: ------------------------------------------**
D GetCsrAdr Pr 10i 0 ExtProc( 'QsnGetCsrAdr' )
D Row 10i 0
D Col 10i 0
D LlvEnvHdl 10i 0 Const Options( *Omit )
D ApiError 1024a Options( *Omit: *VarSize )
**
D CrtInpBuf Pr 10i 0 ExtProc( 'QsnCrtInpBuf' )
D InpBufSiz 10i 0 Const
D BufIncSiz 10i 0 Const Options( *Omit )
D BufMaxSiz 10i 0 Const Options( *Omit )
D InpBufHdl 10i 0 Options( *Omit )
D ApiError 1024a Options( *Omit: *VarSize )
**
D ReadScr Pr 10i 0 ExtProc( 'QsnReadScr' )
D NbrBytRead 10i 0 Options( *Omit )
D InpBufHdl 10i 0 Const Options( *Omit )
D CmdBufHdl 10i 0 Const Options( *Omit )
D LlvEnvHdl 10i 0 Options( *Omit )
D ApiError 1024a Options( *Omit: *VarSize )
**
D RtvDta Pr * ExtProc( 'QsnRtvDta' )
D InpBufHdl 10i 0 Const
D InpDtaPtr * Options( *Omit )
D ApiError 1024a Options( *Omit: *VarSize )
**
D*Beep Pr 10i 0 ExtProc( 'QsnBeep' )
D* CmdBufHdl 10i 0 Const Options( *Omit )
D* LlvEnvHdl 10i 0 Const Options( *Omit )
D* ApiError 1024a Options( *Omit: *VarSize )
**
D DltBuf Pr 10I 0 ExtProc( 'QsnDltBuf' )
D BufferHdl 10I 0 Const
D ApiError 1024a Options( *Omit: *VarSize )
**--
D MemCpy Pr * ExtProc( 'memcpy' )
D pOutMem * Value
D pInpMem * Value
D InpMemSiz 10u 0 Value
**************************************************************************
* $GetScrn
**************************************************************************
C $GetScrn BEGSR
C Eval InpBufHdl = CrtInpBuf( 27 * 132
C : *Omit
C : *Omit
C : *Omit
C : *Omit )
*
C CallP GetCsrAdr( Row
C : Col
C : *Omit
C : *Omit )
*
C Eval NbrBytRtn = ReadScr( *Omit
C : InpBufHdl
C : *Omit
C : *Omit
C : *Omit )
*
C Eval InpDtaPtr = RtvDta( InpBufHdl
C : *Omit
C : *Omit )
*
C CallP MemCpy( %Addr( Screen )
C : InpDtaPtr
C : NbrBytRtn )
*
C* CallP Beep( *Omit
C* : *Omit
C* : *Omit )
*
C CallP DltBuf( InpBufHdl: *Omit )
*
C ENDSR
**************************************************************************
* $PrtScrn
**************************************************************************
C $PrtScrn BEGSR
*
C dow Str < %len(%trim(Screen))
C eval PT80 = %subst(Screen:Str:80)
C write RDSMREAD
C eval Str = Str + 80
C enddo
*
C ENDSR
**************************************************************************
* *INZSR
**************************************************************************
C *INZSR BEGSR
*
C exsr $GetScrn
C exsr $PrtScrn
C eval *INLR = *ON
*
C ENDSR
阅读(735) | 评论(0) | 转发(0) |