.TITLE LABTIC - ROUTINE TO LABEL TICS ALONG GRID .IDENT 'LABT00' .PSECT LABTIC ; KEN DEMERS ; UTRC ; JANUARY 1980 ; THIS IS THE LOW LEVEL ROUTINE TO LABEL ; TIC MARKS ONLY ALONG THE X AND Y GRID. ; ON ENTRY: ; R1 = # OF TICS TO LABEL ; R2 = SPACING BETWEEN TICS ; R3 = FLG = 0 = DO X GRID = 1 = DO Y GRID ; R4 = X COORDINATE ; R5 = Y COORDINATE ; INTERNAL GLOBALS .GLOBL L$ABTIC,T$ICVAL,T$ICBUM,M$AXALD ; EXTERNAL GLOBALS .GLOBL L$ABEL,S$AVARG,R$STARG,A$RG21,A$RG22 ;ASSIGNMENTS AC0 = %0 ;F.P. ACCUMULATOR 0 L$ABTIC: CALL S$AVARG ;SAVE REGS MOV R4,A$RG21 ;STORE X COORD MOV R5,A$RG22 ;STORE Y COORD IN ARG BLK MOV #ARGBLK,R5 ;R5= A(L$ABEL ARGBLK) LAB04: CLR -(SP) ;FLG=0= <= MAX # OF TIC LAELS ALLOWED CLR R4 ;R4=0= LABEL THE TIC CMP M$AXALD,R1 ;<= MAX # OF TIC LABELS ALLOWED? BGE LAB05 ;YES MOV #1,(SP) ;FLG=1= LABEL EVERY OTHER TIC LAB05: CALL L$ABEL ;LABEL THE TIC BCC LAB07 ;LABEL WAS DISPLAYED COM R4 ;MAKE SURE NEXT LABEL WILL BE DISPLAYED LAB07: TST R3 ;X OY Y GRID? BNE LAB10 ;Y ADD R2,A$RG21 ;BUMP X BR LAB20 LAB10: ADD R2,A$RG22 ;BUMP Y COORD LAB20: LDF T$ICVAL,AC0 ;GET CURRENT VALUE OF TIC ADDF T$ICBUM,AC0 ;BUMP THE VALUE BY DIST STF AC0,T$ICVAL ;STORE THE NEXT TIC VALUE TST (SP) ;LABEL ALL TICS? BEQ LAB30 ;YES COM R4 ;LABEL NEXT TIC? BEQ LAB30 ;YES SOB R1,LAB07 ;NO BR LAB40 LAB30: SOB R1,LAB05 ;LOOP UNTIL DONE LAB40: CALL R$STARG ;RESTORE REGS TST (SP)+ ;POP FLG OFF SP RETURN ARGBLK: .BYTE 1,0 ;# ARGS,NOT USED FNMPTR: .WORD T$ICVAL ;PTR TO TIC LABEL T$ICVAL: .BLKW 2 ;VALUE OF TIV LABEL T$ICBUM: .BLKW 2 ;VALUE OF DIST BETWEEN TICS(BUMP VALUE) M$AXALD: .WORD 0 ;MAX # OF TIC LABELS ALLOWED .END