; Barcode scanner interpretation, logochip logo. ; Ed Giardina ;;;;;;;;;;;;;;; ;; variables ; ;;;;;;;;;;;;;;; ;;; register mnemonics ;;; global[x scannervalue flag] constants[ [porta 5] [portb 6] [portc 7] [portb-ddr $86] [serialreadreg $1a] [serialwritereg $19] [serialindicator $0c] ] ;;;;;;;;;;;;;;;;;;;;;;;;;; ;; GUTS!!!!!! ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;send a beep to the scanner;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to scannerbeep waituntil [testbit 4 serialindicator] write serialwritereg $1b waituntil [testbit 4 serialindicator] write serialwritereg $54 waituntil [testbit 4 serialindicator] write serialwritereg $0d end ;;;;;;;;;;;;;;;;;;; ;intialize things ; ;;;;;;;;;;;;;;;;;;; to init ;;write portb-ddr 1 setflag 0 setscannervalue 0 end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Read a byte off the serial port, and store it; ;----------------------------------------------; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to readserial ;; wait until byte indicates data is ready ;; when data is ready, store data setscannervalue read serialreadreg waituntil [testbit 5 serialindicator] ;; throw away carriage returns that the scanner may send if not (read serialreadreg = 13) [setx read serialreadreg] setflag 1 clearbit 5 serialindicator ;; send beep to indicate read properly. repeat (scannervalue - 48) [scannerbeep wait 5] ;; end reading end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; wait for cricket to instruct us to send the interpreted value; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to sendvalue ;; wait until the cricket wants the data if brcv = $180 [bsend (scannervalue - 48) setflag 0] if brcv = $181 [bsend flag] if brcv = $182 [scannerbeep] ;; end sending end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Main function ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to main loop [ if testbit 5 serialindicator [readserial] if newbus? [sendvalue] ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;