* TEXTS.ASM ; TEXT SUPPORT ROUTINES ; MAKE AND PRINT NEW ITEXT. RETURNS NEW ITEST STRUCTURE IN D0 PRINTNEWAT MACRO MOVE.L \1,A0 ;\1 <- WINDOW LEA \2,A1 ;\2 <- TEXT MOVE.W #\3,D0 ;\3 <- LEFT MOVE.W #\4,D1 ;\4 <- TOP BSR _PRINTTEXT ;\5 <- ERROR TST.L D0 BEQ \5 ENDM ; PRINT EXISTING INTUITEXT STRUCTURE PRINTOLDAT MACRO MOVE.L \1,A0 ;\1 <- WINDOW MOVE.L \2,A1 ;\2 <- ITEXT MOVE.W #\3,D0 ;\3 <- LEFT MOVE.W #\4,D1 ;\4 <- TOP BSR _PRINTTXT ENDM ; MAKE AN INTUITEXT, RETURN ADDRESS IN D0 MAKEITEX MACRO LEA \1,A0 ;\1 <- TEXT BSR MAKEATEXT ;\2 <- ERROR TST.L D0 ;\3 <- RESULTPTR BEQ \2 MOVE.L D0,\3 ENDM MAKEATEXT PUSHREG A0 ;A0 <- N.T. TEXT PTR REMEMBERPUBMEM REMEMBERKEY,#SIZE.IT,ERR_MITEXT MOVE.L D0,A0 PULLREG A1 PUSHREG A0 BSR CREATETEXT PULLREG D0 RTS ERR_MITEXT PULLREG A0 RTS CREATETEXT MOVE.B #1,IT.FRONTPEN(A0) ;A0 <- INTUITEXT SIZED MEM BLOCK MOVE.B #JAM1,IT.DRAWMODE(A0) ;A1 <- NULL TERMINATING TEXT MOVE.W #2,IT.LEFTEDGE(A0) MOVE.W #2,IT.TOPEDGE(A0) MOVE.L A1,IT.TEXT(A0) RTS _PRINTTEXT PUSHREG D0-D1/A0 ;A0 <- WINDOW PTR PUSHREG A1 ;A1 <- N.T. TEXT REMEMBERPUBMEM REMEMBERKEY,#SIZE.IT TST.L D0 ;D0 <- LEFTEDGE BEQ.S ERR_TEXT ;D1 <- TOPEDGE MOVE.L D0,A0 PULLREG A1 BSR CREATETEXT MOVE.L A0,A1 MOVE.L A1,_THISITEXT PULLREG D0-D1/A0 _PRINTTXT MOVE.L WW.RPORT(A0),A0 ;A0 <- WINDOW INTLIB PRINTITEXT ;A1 <- N.T. TEXT MOVE.L _THISITEXT,D0 RTS ERR_TEXT PULLREG A1 PULLREG D0-D1/A0 ZERO D0 RTS _THISITEXT DC.L 0