
 1000  *--------------------------------
 1010  * USE OF MACROS & NESTED MACROS
 1020  * BY ART SCHUMER - 3/25/82
 1030  *--------------------------------
 1040  VTAB   .EQ $FB5B
 1050  CLREOP .EQ $FC42
 1060  HOME   .EQ $FC58
 1070  RDKEY  .EQ $FD0C
 1080  COUT   .EQ $FDED
 1090  *--------------------------------
 1100  PTR    .EQ $6
 1110  CH     .EQ $24
 1120  CV     .EQ $25
 1130  *--------------------------------
 1140  *      MACRO DEFINITIONS
 1150  *
 1160  * CLR.PRNT.XY AND GOTO.PRNT.XY
 1170  * ARE EXAMPLES OF NESTED MACROS
 1180  *--------------------------------
 1190         .MA GOTO.XY
 1200         LDA #]1
 1210         STA CH
 1220         LDA #]2
 1230         JSR VTAB
 1240         .EM
 1250  *--------------------------------
 1260         .MA CLEAR.XY
 1270         >GOTO.XY ]1,]2
 1280         JSR CLREOP
 1290         .EM
 1300  *--------------------------------
 1310         .MA CLEAR.PRNT.XY
 1320         >CLEAR.XY ]1,]2
 1330         JSR PRNT
 1340         .EM
 1350  *--------------------------------
 1360         .MA GOTO.PRNT.XY
 1370         >GOTO.XY ]1,]2
 1380         JSR PRNT
 1390         .EM
 1400  *--------------------------------
 1410         .MA READ.XY
 1420         >GOTO.XY ]1,]2
 1430         JSR RDKEY
 1440         .EM
 1450  *--------------------------------
 1460  *      THE PROGRAM . . . .
 1470  *--------------------------------
 1480  START  JSR HOME
 1490         >GOTO.PRNT.XY 4,12
 1500         .AS -/THIS EXAMPLE USES NESTED MACROS/
 1510         .HS 00
 1520         >READ.XY 36,12
 1530         >CLEAR.PRNT.XY 4,12
 1540         .AS -/AND THIS ONE ALSO!/
 1550         .HS 00
 1560         >READ.XY 22,12
 1570         RTS
 1580  *--------------------------------
 1590  * ANDY HERTZFELD'S PRINT ROUTINE
 1600  *--------------------------------
 1610  PRNT   PLA
 1620         STA PTR
 1630         PLA 
 1640         STA PTR+1
 1650         LDY #0
 1660  .1     INC PTR
 1670         BNE .2
 1680         INC PTR+1
 1690  .2     LDA (PTR),Y
 1700         BEQ .3
 1710         JSR COUT
 1720         JMP .1
 1730  .3     LDA PTR+1
 1740         PHA 
 1750         LDA PTR         
 1760         PHA
 1770         RTS
 1780  *--------------------------------

