.TITLE PRINTG - READ INTEGER .IDENT /790717/ ; PARMS ; 1. POINTER TO FILE BLOCK ; 2. POINTER TO INTEGER VARIABLE ; REGISTERS ; R1 -> FILE BLOCK ; R0,R2,R3 - SCRATCH ; CALLS: $$SPCE, $$SGN, $$IGET .GLOBL $$SPCE,$$SGN,$$IGET $$$030:: MOV 4(SP),R1 ; UNPACK PARMS--GET -> FILE BLOCK MOV (SP)+,2(SP) ; SAVE RETURN ADDR. MOV (SP)+,R0 ; POINTER TO RESULT MOV R2,-(SP) ;SAVE R2 MOV R3,-(SP) ;SAVE R3 MOV R0,R2 ;R2 -> RESULT JSR PC,$$SPCE ;CLEAN OUT LEADING WHITE SPACE JSR PC,$$SGN ;COMPUTE ACTUAL SIGN MOV R0,-(SP) ;SAVE SIGN CLR R3 ;R3 = VALUE JSR PC,$$IGET ;COMPUTE INT VALUE IN R3 TST (SP)+ ;CHECK SIGN BEQ 1$ NEG R3 ;IS < 0 1$: MOV R3,(R2) ;STORE RESULT MOV (SP)+,R3 ;RESTORE R3 MOV (SP)+,R2 ;RESTORE R2 RTS PC .END