\ 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