call _ldhlind puts the value of hl in hl. since you are using a pointer table, every time you call _ldhlind it will jump to that pointer. since you have two pointers in the table with this example, you must do it twice: call _clrscrnfull call _homeup ld hl,text call _ldhlind call _ldhlind jp _puts text: .dw othertext othertext: .dw txt txt: .db "Hi!",0 -joel