CLRW LODADR(A5)
CLRW CURADR(A5)
INC A2 ; skip commas if any
BYP
LIN
BEQ 2$
GTOCT ; this will get a hex value
BMI 3$
MOVW D1,LODADR(A5) ; set load bias
MOVW D1,CURADR(A5)
BR 2$
3$: TYPECR <Load bias error.>
JMP DONE
2$:
;D1 = work reg, char reg
;A2 --> hex strbuf
;A5 --> work memory
LOOP: CTRLC DONE ; allow user to exit
TYPE <.> ; let him know we are alive
MOVB #':,D1 ; record mark frame 0
CALL PUTC
CLRW CHKSUM(A5) ; start with zero
CALL GETREC ; get a record
MOVW RECSIZ(A5),D1 ; get the record size
BEQ LSTREC
ADDW D1,CHKSUM(A5) ; and add to
CALL OCVT2
MOVW CURADR(A5),D1 ; load address fr 3-6
SWAB D1
ADDW D1,CHKSUM(A5)
SWAB D1
ADDW D1,CHKSUM(A5) ; place both bytes in checksum
CALL OCVT4
CLR D1 ; record type 0
TSTW RECSIZ(A5)
BNE 5$
MOV #1,D1
5$: ADDW D1,CHKSUM(A5)
CALL OCVT2
LEA A3,RECBUF(A5)
MOVW RECSIZ(A5),D0 ; loop counter
BEQ 20$
10$: MOVB (A3)+,D1
ADDW D1,CHKSUM(A5)
CALL OCVT2
SOB D0,10$
GETREC:
MOV #RECLNG,D0 ; standard record length
LEA A1,RECBUF(A5) ; point to rec buffer
CLRW RECSIZ(A5) ; start with zero
10$: GETCHR INPDDB(A5),(A1)+ ; get a chr into buffer
BEQ 20$ ; z flag is eof
INCW RECSIZ(A5) ; recsiz one more
SOB D0,10$ ; loop until done
20$: RTN
;flags for OCVT will be bit 3, with number in D1, A2->STRBUF
; OCVT 2,OT$MEM