I've always wondered why GCE didn't go for the k-rAd vector letters like you see on the Atari vector coin-ops. And I've always thought there might be a reason. Maybe I've found it. The only way I can think of to keep the letters from wobbling like crazy is to draw each one individually, passing the initial X,Y coordinates to the Vector_Text routine. Even then, the right leg of the "A" comes up a bit short. INCLUDE VECTREX.INC LIST ON SETDP $D0 Carts start up with DP = $D0 FCC /g GCE 2001/ FCB $80 FDB $FF8F FCB -8,72 h,w FCB 32,-48 y,x FCC /ALPHA TEST/ FCB $80 FCB $00 INC Vec_0Ref_Enable This is kind of important Loop JSR DP_to_D0 Vector routines want DP = $D0 SETDP $D0 LDD #$00C0 Move to the origin to (-64,0) JSR Moveto_d_7F (This also turns off zero mode) LDB #20 Set the scale factor STB VIA_t1_cnt_lo LDU #Text JSR Vector_Text Draw the text * JSR DP_to_C8 Music routines want DP = $C8 * SETDP $C8 * LDU #music (if we had something to play) * JSR Init_Music_chk (if we had something to play) JSR Wait_Recal Wait for time to draw next frame SETDP $D0 Wait_Recal sets DP to $D0 * JSR Do_Sound (if we had something to play) BRA Loop Go back to draw next frame Text FCC /ABCDEFGH/ FCB $80 SETDP $D0 Vector_Text LDA Vec_0Ref_Enable Save the Check0Ref flag... PSHS A CLR Vec_0Ref_Enable and turn it off Vector_Text_a LDA ,U+ Get the next chracter BMI Vector_Text_b Exit if it's the terminator BSR Vector_Char Draw the character BRA Vector_Text_a Go back to draw the next character Vector_Text_b LEAU 1,U Point past the terminator PULS A STA Vec_0Ref_Enable Restore the Check0Ref flag JMP Check0Ref Reset the zero reference and return Vector_Char CMPA #Letter_Min Check to make sure it's in range BLO Get_Letter_a CMPA #Letter_Max BLS Get_Letter_b Get_Letter_a LDA #Letter_Min Load it with a blank if not Get_Letter_b SUBA #Letter_Min Index into the letter table LEAX