\ 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