home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / mac / developm / source / oodleutl.cpt / oodles-of-utils / NotInROM / +Serial.lisp < prev    next >
Encoding:
Text File  |  1992-02-07  |  4.1 KB  |  122 lines

  1. ;; -*- package: NotInROM -*-
  2. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  3. ;; +Serial.Lisp
  4. ;;
  5. ;; Copyright ⌐ 1991 Northwestern University Institute for the Learning Sciences
  6. ;; All Rights Reserved
  7. ;;
  8. ;; author: Michael S. Engber
  9. ;;
  10. ;; Provides the High Level "Not in ROM" Serial Driver Routines
  11. ;; from IM II pp.250-253
  12. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  13.  
  14. (eval-when (:compile-toplevel :load-toplevel :execute)
  15.   (require    :NotInROM-u)
  16.   (in-package :NotInROM))
  17.  
  18. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  19.  
  20. (deftrap-NotInROM _SerReset :OSErr ((refNum :signed-integer) (serConfig :signed-integer))
  21.   (rlet ((pb :ParamBlockRec
  22.              :ioVRefNum 0
  23.              :ioRefNum  refNum
  24.              :csCode    8))
  25.     (%put-word (pref pb :ParamBlockRec.csParam) serConfig)
  26.     (#_PBControl pb)))
  27.  
  28. (deftrap-NotInROM _SerSetBuf :OSErr ((refNum :signed-integer) (serBPtr :pointer) (serBLen :signed-integer))
  29.   (rlet ((pb :ParamBlockRec
  30.              :ioVRefNum 0
  31.              :ioRefNum  refNum
  32.              :csCode    9))
  33.     (%put-ptr (pref pb :ParamBlockRec.csParam) serBPtr)
  34.     (%put-word (pref pb :ParamBlockRec.csParam) serBLen 4)
  35.     (#_PBControl pb)))
  36.  
  37. (deftrap-NotInROM _SerHShake :OSErr ((refNum :signed-integer) (flags :SerShk))
  38.   (rlet ((pb :ParamBlockRec
  39.              :ioVRefNum 0
  40.              :ioRefNum  refNum
  41.              :csCode    10))
  42.     (#_BlockMove flags (pref pb :ParamBlockRec.csParam) #.(ccl::record-field-length :SerShk))
  43.     (#_PBControl pb)))
  44.  
  45. (deftrap-NotInROM _SerSetBrk :OSErr ((refNum :signed-integer))
  46.   (rlet ((pb :ParamBlockRec
  47.              :ioVRefNum 0
  48.              :ioRefNum  refNum
  49.              :csCode    12))
  50.     (#_PBControl pb)))
  51.  
  52. (deftrap-NotInROM _SerClrBrk :OSErr ((refNum :signed-integer))
  53.   (rlet ((pb :ParamBlockRec
  54.              :ioVRefNum 0
  55.              :ioRefNum  refNum
  56.              :csCode    11))
  57.     (#_PBControl pb)))
  58.  
  59. (deftrap-NotInROM _SerGetBuf :OSErr ((refNum :signed-integer) (count (:pointer :signed-long)))
  60.   (rlet ((pb :ParamBlockRec
  61.              :ioVRefNum 0
  62.              :ioRefNum  refNum
  63.              :csCode    2))
  64.     (prog1
  65.       (#_PBStatus pb)
  66.       (%put-long count (%get-unsigned-long (pref pb :ParamBlockRec.csParam))))))
  67.  
  68. (deftrap-NotInROM _SerStatus :OSErr ((refNum :signed-integer) (serSta (:pointer :SerStaRec)))
  69.   (rlet ((pb :ParamBlockRec
  70.              :ioVRefNum 0
  71.              :ioRefNum  refNum
  72.              :csCode    8))
  73.     (prog1
  74.       (#_PBStatus pb)
  75.       (#_BlockMove (pref pb :ParamBlockRec.csParam) serSta #.(ccl::record-field-length :SerStaRec)))))
  76.  
  77.  
  78. #|
  79.  
  80. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  81. ;;same defns in terms of the high level calls Control & Status
  82. ;;
  83.  
  84. (deftrap-NotInROM _SerReset :OSErr ((refNum :signed-integer) (serConfig :signed-integer))
  85.   (%stack-block ((csParamPtr 22))
  86.     (%put-word csParamPtr serConfig)
  87.     (#~Control refNum 8 csParamPtr)))
  88.  
  89. (deftrap-NotInROM _SerSetBuf :OSErr ((refNum :signed-integer) (serBPtr :pointer) (serBLen :signed-integer))
  90.   (%stack-block ((csParamPtr 22))
  91.     (%put-ptr csParamPtr serBPtr)
  92.     (%put-word csParamPtr serBLen 4)
  93.     (#~Control refNum 9 csParamPtr)))
  94.  
  95. (deftrap-NotInROM _SerHShake :OSErr ((refNum :signed-integer) (flags :SerShk))
  96.   (%stack-block ((csParamPtr 22))
  97.     (#_BlockMove flags csParamPtr #.(ccl::record-field-length :SerShk))
  98.     (#~Control refNum 10 csParamPtr)))
  99.  
  100. (deftrap-NotInROM _SerSetBrk :OSErr ((refNum :signed-integer))
  101.   (%stack-block ((csParamPtr 22))
  102.     (#~Control refNum 12 csParamPtr)))
  103.  
  104. (deftrap-NotInROM _SerClrBrk :OSErr ((refNum :signed-integer))
  105.   (%stack-block ((csParamPtr 22))
  106.     (#~Control refNum 11 csParamPtr)))
  107.  
  108. (deftrap-NotInROM _SerGetBuf :OSErr ((refNum :signed-integer) (count (:pointer :signed-long)))
  109.   (%stack-block ((csParamPtr 22))
  110.     (prog1
  111.       (#~Status refNum 2 csParamPtr)
  112.       (%put-long count (%get-unsigned-long csParamPtr)))))
  113.  
  114. (deftrap-NotInROM _SerStatus :OSErr ((refNum :signed-integer) (serSta (:pointer :SerStaRec)))
  115.   (%stack-block ((csParamPtr 22))
  116.     (prog1
  117.       (#~Status refNum 8 csParamPtr)
  118.       (#_BlockMove csParamPtr serSta #.(ccl::record-field-length :SerStaRec)))))
  119.  
  120. |#
  121.  
  122.