!pr0
Assembling in RAM from $400-$9AA6.............Robert F. O'Brien
                                                Dublin, Ireland

I liked the procedure for getting listings into a text file during assembly (AAL July '83).  However, it won't work if the file is too large and requires .IN directives.  I recently did a large assembly using the following source code:

!lm+10
0      .DU
1      .TF LISTING
2      .IN PART1
3      .IN PART2
4      .ED
!lm-10

What I expected to get was a 356-sector text file on disk, but all I got was a 2-sector file -- the code for PART1 and PART2 was not sent to the disk (they did list to the screen!)  I solved my particular problem by making more of RAM available for the assembly as follows:

!lm+9
!pp-4
a)  Issue MAXFILES 1
b)  LOAD/MERGE PART1 & PART2 source code in RAM and add .DU, .TF LISTING, and .ED lines
c)  $C083 C083 N EAF9:0 N D021:4_ N D003G
d)  ASM
!lm-9
!pp0

By letting the symbol table build from $400 up we make the space between $400-$9AA6 available for assembly use (using the RAM card version of the assembler).  I use the VIDEX version with a Peanut 80-column card and I find the screen gets messed up and a re-boot is necessary after assembly, but that's very little bother for the benefit received.  It would be better of course to be able to use .IN directives.

[  This is a neat trick, but boy, does it scare me!  Use this technique only with a backed-up disk and be very certain that the monitor isn't going to try to scroll the Apple's screen during assembly, because that will scramble the Symbol Table and leave you who-knows-where!  The 80-column card (and any other peripherals that aree on) gets scrambled because of the slot-reserved variables just off the edge of the screen memory.  Also note that you can't start all the way down at $400 if you are using macros with private labels, since that table grows downward from the base of the Symbol Table.  ....Bill  ]
