home *** CD-ROM | disk | FTP | other *** search
- ;; -*- package: NotInROM -*-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;; +Serial.Lisp
- ;;
- ;; Copyright ⌐ 1991 Northwestern University Institute for the Learning Sciences
- ;; All Rights Reserved
- ;;
- ;; author: Michael S. Engber
- ;;
- ;; Provides the High Level "Not in ROM" Serial Driver Routines
- ;; from IM II pp.250-253
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- (eval-when (:compile-toplevel :load-toplevel :execute)
- (require :NotInROM-u)
- (in-package :NotInROM))
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
- (deftrap-NotInROM _SerReset :OSErr ((refNum :signed-integer) (serConfig :signed-integer))
- (rlet ((pb :ParamBlockRec
- :ioVRefNum 0
- :ioRefNum refNum
- :csCode 8))
- (%put-word (pref pb :ParamBlockRec.csParam) serConfig)
- (#_PBControl pb)))
-
- (deftrap-NotInROM _SerSetBuf :OSErr ((refNum :signed-integer) (serBPtr :pointer) (serBLen :signed-integer))
- (rlet ((pb :ParamBlockRec
- :ioVRefNum 0
- :ioRefNum refNum
- :csCode 9))
- (%put-ptr (pref pb :ParamBlockRec.csParam) serBPtr)
- (%put-word (pref pb :ParamBlockRec.csParam) serBLen 4)
- (#_PBControl pb)))
-
- (deftrap-NotInROM _SerHShake :OSErr ((refNum :signed-integer) (flags :SerShk))
- (rlet ((pb :ParamBlockRec
- :ioVRefNum 0
- :ioRefNum refNum
- :csCode 10))
- (#_BlockMove flags (pref pb :ParamBlockRec.csParam) #.(ccl::record-field-length :SerShk))
- (#_PBControl pb)))
-
- (deftrap-NotInROM _SerSetBrk :OSErr ((refNum :signed-integer))
- (rlet ((pb :ParamBlockRec
- :ioVRefNum 0
- :ioRefNum refNum
- :csCode 12))
- (#_PBControl pb)))
-
- (deftrap-NotInROM _SerClrBrk :OSErr ((refNum :signed-integer))
- (rlet ((pb :ParamBlockRec
- :ioVRefNum 0
- :ioRefNum refNum
- :csCode 11))
- (#_PBControl pb)))
-
- (deftrap-NotInROM _SerGetBuf :OSErr ((refNum :signed-integer) (count (:pointer :signed-long)))
- (rlet ((pb :ParamBlockRec
- :ioVRefNum 0
- :ioRefNum refNum
- :csCode 2))
- (prog1
- (#_PBStatus pb)
- (%put-long count (%get-unsigned-long (pref pb :ParamBlockRec.csParam))))))
-
- (deftrap-NotInROM _SerStatus :OSErr ((refNum :signed-integer) (serSta (:pointer :SerStaRec)))
- (rlet ((pb :ParamBlockRec
- :ioVRefNum 0
- :ioRefNum refNum
- :csCode 8))
- (prog1
- (#_PBStatus pb)
- (#_BlockMove (pref pb :ParamBlockRec.csParam) serSta #.(ccl::record-field-length :SerStaRec)))))
-
-
- #|
-
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;;same defns in terms of the high level calls Control & Status
- ;;
-
- (deftrap-NotInROM _SerReset :OSErr ((refNum :signed-integer) (serConfig :signed-integer))
- (%stack-block ((csParamPtr 22))
- (%put-word csParamPtr serConfig)
- (#~Control refNum 8 csParamPtr)))
-
- (deftrap-NotInROM _SerSetBuf :OSErr ((refNum :signed-integer) (serBPtr :pointer) (serBLen :signed-integer))
- (%stack-block ((csParamPtr 22))
- (%put-ptr csParamPtr serBPtr)
- (%put-word csParamPtr serBLen 4)
- (#~Control refNum 9 csParamPtr)))
-
- (deftrap-NotInROM _SerHShake :OSErr ((refNum :signed-integer) (flags :SerShk))
- (%stack-block ((csParamPtr 22))
- (#_BlockMove flags csParamPtr #.(ccl::record-field-length :SerShk))
- (#~Control refNum 10 csParamPtr)))
-
- (deftrap-NotInROM _SerSetBrk :OSErr ((refNum :signed-integer))
- (%stack-block ((csParamPtr 22))
- (#~Control refNum 12 csParamPtr)))
-
- (deftrap-NotInROM _SerClrBrk :OSErr ((refNum :signed-integer))
- (%stack-block ((csParamPtr 22))
- (#~Control refNum 11 csParamPtr)))
-
- (deftrap-NotInROM _SerGetBuf :OSErr ((refNum :signed-integer) (count (:pointer :signed-long)))
- (%stack-block ((csParamPtr 22))
- (prog1
- (#~Status refNum 2 csParamPtr)
- (%put-long count (%get-unsigned-long csParamPtr)))))
-
- (deftrap-NotInROM _SerStatus :OSErr ((refNum :signed-integer) (serSta (:pointer :SerStaRec)))
- (%stack-block ((csParamPtr 22))
- (prog1
- (#~Status refNum 8 csParamPtr)
- (#_BlockMove csParamPtr serSta #.(ccl::record-field-length :SerStaRec)))))
-
- |#
-
-