;;; LDBHLP -*-LISP-*- ;;; ************************************************************** ;;; ***** MACLISP ******* BYTE-manipulation Helpers ************** ;;; ************************************************************** ;;; ** (C) COPYRIGHT 1980 MASSACHUSETTS INSTITUTE OF TECHNOLOGY ** ;;; ****** THIS IS A READ-ONLY FILE! (ALL WRITES RESERVED) ******* ;;; ************************************************************** (herald LDBHLP /1) (lap-a-list '((lap *LOAD-BYTE subr) (args *LOAD-BYTE (() . 3)) ;Args = (word position size) (push p (% 0 0 fix1)) (move d 0 c) (rot d -6) (hrr d 0 b) (rot d -6) (move tt 0 a) (jrst 0 LD) (entry *LDB subr) (args *LDB (() . 2)) ;Args = ( position_30.+size_24. word ) (push p (% 0 0 fix1)) (move d 0 a) (move tt 0 b) LD (hrri d tt) (ldb tt d) (popj p) (entry *DEPOSIT-BYTE subr) (args *DEPOSIT-BYTE (() . 4)) ;Args = (word position size byte) (push p (% 0 0 fix1)) (move r 0 4) (move d 0 c) (rot d -6) (hrr d 0 b) (rot d -6) (move tt 0 a) (jrst 0 DP) (entry *DPB subr) (args *DPB (() . 3)) ;Args = ( newbyte position_30.+size_24. word ) (push p (% 0 0 fix1)) (move r 0 a) (move d 0 b) (move tt 0 c) DP (hrri d tt) (dpb r d) ;puts result in TT (popj p) (entry ASH subr) (args ASH (() . 2)) (push p cfix1) (jsp t fxnv1) (jsp t fxnv2) (ash tt 0 d) (popj p) () )) (or (get 'ASH 'macro) ;foofoofoo! (macro ASH (x) `(LSH ,.(cdr x))))