.TITLE RAD50 .MCALL ..V2..,.REGDEF ..V2.. .REGDEF .GLOBL RAD50P,RAD50U .CSECT RAD50 .PAGE RAD50P: ;PACK A WORD WITH 3 ASCII CHR-ONLY #S AND LETTERS ;ASSUMED TO BE PRESENT MOV #3,R3 ;R0=ADD OF 1ST CHR OF 3 BYTES TO BE CONVERTED CLR (R1) ;R1=ADD OF WORD TO STORE COVERTED BYTES CVLB: MOVB (R0)+,R2 ;R2=BYTE BEING CONVETRED BIC #177600,R2 ;R3=CTR- 3 BYTES CMPB #40,R2;IS IT A BLANK---R4=TMP STORAGE BNE NMCK ;NO CHECK FOR NUMBER CLR R2 ;RAD 50 EQ IS 0 BR BYCV NMCK: CMPB #72,R2 ;IS IT A NUMBER BLT BYLT ;NO MUST BE A LETTER ADD #36-60,R2 BR BYCV BYLT: ADD #1-101,R2 BYCV: ASL (R1) ;MULT BY 50(8) ASL (R1) ASL (R1) MOV (R1),R4 ASL (R1) ASL (R1) ADD R4,(R1) ADD R2,(R1) ;ADD CURRENT RAD 50 CHR DEC R3 ;DEC CTR BGT CVLB ;LOOP BACK IF NOT DONE RTS PC .PAGE RAD50U: ;UNPACK WORD TO 3 ASCII BYTES MOV (R1),R2 ;GET RAD 50 WORD R0=ADD TO STORE 3 BYTES MOV #3100,R3;SET DIVISOR FOR HIGH ORDER BYTE JSR PC,CVT ;R1= ADD OF RAD 50 WORD MOV #50,R3 ;R2=BYTE BEING CONVERTED JSR PC,CVT ;R3=CTR MOV #1,R3 ;LAST DIVISION JSR PC,CVT RTS PC CVT: CLR R2 ;CLEEAR BYTE CVTLB: CMP R3,(R1) BHI DVDN SUB R3,(R1) INC R2 BR CVTLB DVDN: CMPB #0,R2 ;RAD 50 CHR IN R2 IS IT BLANK BNE LTCK ;IF NO CHECK IF LETTER MOV #40,R2 BR UPDN LTCK: CMPB #32,R2 ;IS IT A LETTER BLT CKNM ;NO ITS A NUMBER ADD #101-1,R2 BR UPDN CKNM: ADD #60-36,R2 UPDN: MOVB R2,(R0)+ RTS PC .END