srm.txt


\ srm ST 2001-07-31

needs core-ext
needs struct
needs toolkit

struct
  4 field serDevCreator
  4 field serDevFtrInfo
  4 field serDevMaxBaudRate
  4 field serDevHandshakeBaud
  4 field serDevPortInfoStr
  8 field reserved
end-struct DeviceInfoType:

0 enum SrmCtlEnum
  SrmCtlEnum srmCtlFirstReserved
  SrmCtlEnum srmCtlSetBaudRate
  SrmCtlEnum srmCtlGetBaudRate
  SrmCtlEnum srmCtlSetFlags
  SrmCtlEnum srmCtlGetFlags
  SrmCtlEnum srmCtlSetCtsTimeout
  SrmCtlEnum srmCtlGetCtsTimeout
  SrmCtlEnum srmCtlStartBreak
  SrmCtlEnum srmCtlStopBreak
  SrmCtlEnum srmCtlStartLocalLoopback
  SrmCtlEnum srmCtlStopLocalLoopback
  SrmCtlEnum srmCtlIrDAEnable
  SrmCtlEnum srmCtlIrDADisable
  SrmCtlEnum srmCtlRxEnable
  SrmCtlEnum srmCtlRxDisable
  SrmCtlEnum srmCtlEmuSetBlockingHook
  SrmCtlEnum srmCtlUserDef
  SrmCtlEnum srmCtlGetOptimalTransmitSize
  SrmCtlEnum srmCtlLAST

1  constant serDevCradlePort
2  constant serDevRS232Serial
4  constant serDevIRDACapable
8  constant serDevModemPort
16 constant serDevCncMgrVisible

(hex) 001 constant srmSettingsFlagStopBitsM
(hex) 000 constant srmSettingsFlagStopBits1
(hex) 001 constant srmSettingsFlagStopBits2
(hex) 002 constant srmSettingsFlagParityOnM
(hex) 004 constant srmSettingsFlagParityEvenM
(hex) 008 constant srmSettingsFlagXonXoffM
(hex) 010 constant srmSettingsFlagRTSAutoM
(hex) 020 constant srmSettingsFlagCTSAutoM
(hex) 0C0 constant srmSettingsFlagBitsPerChar
(hex) 000 constant srmSettingsFlagBitsPerChar5
(hex) 040 constant srmSettingsFlagBitsPerChar6
(hex) 080 constant srmSettingsFlagBitsPerChar7
(hex) 0C0 constant srmSettingsFlagBitsPerChar8
(hex) 100 constant srmSettingsFlagFlowControl

1 constant srmStatusCtsOn
2 constant srmStatusRtsOn
4 constant srmStatusDsrOn
8 constant srmStatusBreakSignOn

: srmSysTrap ( # -- )
  (hex) A367 systrap ;

: d0s ( -- d0 )
  d0 drop ;

: odd? ( n -- b )
  1 and ;

: mkndrop ( n -- )
  dup 2 / 0 ?do postpone 2drop loop
  odd? if postpone drop then
; immediate

: srmTrap ( n # -- )
  2>r : 2r> (hex) 7400 + cs,
  postpone srmSysTrap
  postpone mkndrop ;

: mkd0s ( -- )
  postpone d0s postpone ;
;

: mkd0 ( -- )
  postpone d0 postpone ;
;

: srmSysCall: ( n # "name" -- )
  srmTrap mkd0s ;

:  srmSysCall2: ( n # "name" -- )
  srmTrap mkd0 ;

1 9 srmSysCall: srmClearErr
1 3 srmSysCall: srmClose
6 10 srmSysCall: srmControl
2 6 srmSysCall: srmGetDeviceCount
4 7 srmSysCall: srmGetDeviceInfo
5 8 srmSysCall: srmGetStatus
6 1 srmSysCall: srmOpen
6 2 srmSysCall: srmOpenBackground
9 15 srmSysCall2: srmReceive
3 17 srmSysCall: srmReceiveCheck
3 18 srmSysCall: srmReceiveFlush
5 16 srmSysCall: srmReceiveWait
3 21 srmSysCall: srmReceiveWindowClose
5 20 srmSysCall: srmReceiveWindowOpen
7 11 srmSysCall2: srmSend
3 13 srmSysCall: srmSendCheck
1 14 srmSysCall: srmSendFlush
1 12 srmSysCall: srmSendWait
4 19 srmSysCall: srmSetReceiveBuffer
4 22 srmSysCall: srmSetWakeupHandler
4 23 srmSysCall: srmPrimeWakeupHandler


  HTMLized by Forth2HTML