c64-livecoding/wip-duuqnd/user-side-compiler/bytesquash.lisp

11 lines
405 B
Common Lisp

(in-package #:user-side-compiler)
(defgeneric bytesquash (object)
(:method ((object integer))
(typecase object
((unsigned-byte 8) (list object))
((unsigned-byte 16) (list (ldb (byte 8 0) object)
(ldb (byte 8 8) object)))
(t (error "Cannot bytesquash integers larger than 16-bit."))))
(:method ((object label))
(bytesquash (address object))))