.TITLE ICO ; JEFFREY KODOSKY ARL JUN76 ; ; UTILITY: INTEGER CONVERSION FOR OUTPUT ; ENTRY: 3 ARGS (SP) ;; ; EXIT: NO ARGS (ASCII REPRESENTATION OF I IS IN BUFFER) ; C BIT SET AND BUFFER *-FILLED IF ERROR OCCURED ; ERRORS: NONE ; CALLS: NONE ; R5 PRESERVED ;(THIS ROUTINE IS $ICO02 OF FPMP WITH LISP CALLING CONVENTION) .GLOBL ICO,OCO OCO: MOV #OCT$25-REL$25,R0 BR GO$25 ICO: MOV #DEC$25-REL$25,R0 GO$25: CLR -(SP) ;DUMMY SPACE IN LIEU OF RETURN PC MOV R4,-(SP) MOV 8.(SP),R3 MOV 6.(SP),R2 BGE LPS$25 CLR R2 CLR 6(SP) LPS$25: MOV 4.(SP),R4 MOV #' ,-(SP) CMP R0,#OCT$25-REL$25 BEQ POS$25 TST R4 BGE POS$25 NEG R4 MOV #'-,@SP POS$25: CLR -(SP) ADD PC,R0 REL$25: TST$25: TST @R0 BEQ MOV$25 CLR R1 SUB$25: SUB @R0,R4 BLO BAC$25 INC R1 BR SUB$25 BAC$25: ADD (R0)+,R4 TST R1 BNE NZE$25 TST @SP BEQ TST$25 NZE$25: ADD #60,R1 MOV R1,-(SP) BR TST$25 MOV$25: ADD R2,R3 ADD #60,R4 MOVB R4,-(R3) DCR$25: DEC R2 BLE FUL$25 MOVB (SP)+,-(R3) BNE DCR$25 MOVB (SP)+,@R3 FIL$25: DEC R2 BEQ DNE$25 MOVB #' ,-(R3) BR FIL$25 FUL$25: TST (SP)+ BNE ERR$25 CMP #' ,(SP)+ BNE STS$25-4. DNE$25: MOV (SP)+,R4 MOV (SP)+,4(SP) TST (SP)+ MOV (SP)+,@SP ;NO RETURN PC THERE ROL (SP)+ JMP @-(R4) ERR$25: TST (SP)+ BNE ERR$25 TST (SP)+ MOV 8.(SP),R3 STS$25: MOVB #'*,(R3)+ DEC 6(SP) BGT STS$25 COM 6(SP) BR DNE$25 DEC$25: .WORD 10000.,1000.,100.,10.,0 OCT$25: .WORD 100000,10000,1000,100,10,0 .END