Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Editor commands which use filenames<br />
can be used with or without the<br />
quotes eg. S "name" will be read the<br />
same as S name. However pseudoopcodes<br />
in the source file which use<br />
filenames must be given with the open<br />
quote, but you may skip the closing<br />
quote.<br />
More than one error may be found<br />
on a line, but may be related eg. BNE<br />
ALAB - will give "BRANCH TOO<br />
FAR" and also "LABEL UNDE-<br />
FINED" if ALAB is not present, as<br />
it is trying to branch to an unknown<br />
destination.<br />
Getting it all in<br />
Four Basic loaders are used to POKE<br />
in the main assembler code. These are<br />
named BLOCK I - BLOCK 4. RUN<br />
each of these programs in order, and<br />
when the message BLOCK 4 OK is<br />
displayed enter as direct commands:<br />
POKE 43,0: POKE 44,110: POKE<br />
45,0: POKE 46,160: SAVE "MACRO<br />
ASSEMBLER",8 (Cassette users read<br />
,8 as ,1).<br />
Now reset, and load the assembler<br />
PROGRAM:BLOCK1<br />
97 10 REM CBM64 MACRO AssEm8LER<br />
BASIC LOADER BY IAN GOFFE 1<br />
989 BLOCK 1 (28160-31359)<br />
92 20 PRINT"CCLR3":LI100:FORA-<br />
28160T031359STEP16<br />
D7 30 C-•0!F0REATOA+15:READL:1=-<br />
C<br />
80 40 4 NEXTE:PRINT"EMOME]"LI<br />
4F SO - READC1:IFCCITHENARINT"E<br />
RROR IN LINE:"LI:END<br />
04 6<br />
L<br />
0 L I L I<br />
AF -0-70<br />
: PRINT"BLOCK 1 OK .....:END<br />
10:NEXTA 6F 100 P DATA 3e,85,159,160,0,173<br />
O,<br />
1 1 7<br />
133,64,169,1889<br />
K,<br />
09 110 E1<br />
5 5DATA<br />
255,149,63,200,169,<br />
2<br />
E<br />
5 5<br />
.<br />
, ,173,68.131,2234<br />
,<br />
74 120<br />
1 3 3 ,<br />
1<br />
L<br />
4 5DATA<br />
133,64.160,0,169,26<br />
9 6 3 , 1<br />
.<br />
, 1 4 5<br />
,<br />
73,72,131,1936<br />
: 7 3 , 1<br />
66 130<br />
6<br />
P<br />
3 ,<br />
61<br />
8 DATA , 1 133.64,169.296.145,<br />
61 O<br />
7 3<br />
53 3 5 .<br />
,<br />
, 1 7 3<br />
.<br />
229,169,71,2255<br />
K<br />
BE 140 ,<br />
96 E67<br />
DATA , 160,111,32,52.131,1<br />
69,6,141,32,e08,141,33,208,7<br />
7<br />
1<br />
1<br />
S<br />
3<br />
,<br />
1<br />
1 3<br />
6,67,157,1724<br />
,<br />
1<br />
,<br />
, 1 3 3<br />
88 150<br />
1<br />
,<br />
3 6<br />
1<br />
6<br />
2<br />
3<br />
3 DATA<br />
3<br />
, 1 169,7,133.1,169,13.<br />
91<br />
4 1<br />
31,240,1848<br />
, ,<br />
6<br />
6 3<br />
.<br />
84 160 2 2046 8DATA<br />
3,32,41,147,32,171.<br />
145,32,27<br />
5 , ,<br />
204,296,1786<br />
,<br />
, 17L134 46 170<br />
7<br />
DATA 169,13,162,0,134.19<br />
8<br />
3 , ,<br />
,<br />
1 4 2<br />
, ,72.147,142,1949<br />
21 40 1<br />
32,231,25<br />
4 , 2<br />
,<br />
6,32,<br />
,<br />
32 42 9<br />
1<br />
, 2 9 , 1<br />
4<br />
67 2 , 8 1,<br />
1 7 Thirty Eight<br />
0<br />
, 7 , 3 1. 4 5<br />
, 119 4, 2<br />
C611 PROGRAMMING<br />
code back with LOAD "MACRO<br />
ASSEMBLER",8,I (cassette ,1,1).<br />
When READY, appears type<br />
NEW followed by SYS 28160 to<br />
initialise the assembler with a cold<br />
start.<br />
The configure program can be<br />
typed in and saved as usual with SAVE<br />
"CONFIG",8. This must have the<br />
main assembler code present before<br />
RUNning.<br />
A Simple Trace of the Link<br />
Directive<br />
Take file be:ow to be called "MAIN"<br />
10 ! MAIN TOP LEVEL SOURCE<br />
30 ! a few instructions<br />
50 Ida $(.1d0d<br />
60 and # Sfe<br />
70 sta SddOd<br />
80 !<br />
90 LINK "SOURCE2" ! link next file<br />
10 ! This is the file called "SOURCE2"<br />
20 NOP<br />
30 NOP ! do nothing really<br />
40 LDA BASICAD<br />
50 LINK "SOURCE3" ! link next file<br />
AF 180 DATA 19,131,142,255,148,<br />
157,151,155,232.e24,40,208,2<br />
48,162.0,32,2308<br />
54 190 DATA 1 6<br />
9 , 12140 0,<br />
3 2 , 2<br />
3 6 . , •146,197.191,2327<br />
1 1 0 ,<br />
16 200<br />
2 5 1<br />
DATA 159,201,13,240.15,2<br />
3 2<br />
, 145,169,62,1964<br />
52 210<br />
2 0 1<br />
7 6 DATA 32,182,146,96,162,0<br />
, ,109,252,112,240,5,209,151,1<br />
69,240,26,2199<br />
,<br />
2 0 .<br />
1<br />
2C 220 2 4 DATA 0 2<br />
9 6<br />
3 2 , 2, 706 9 , , 1 86 20<br />
,<br />
, 1 1, 110,2E4,0,1959<br />
50 1 , , 1 6 9 ,<br />
27 230 1 1<br />
3 12 1 DATA<br />
, , 3 2 240,192,202,32,182,<br />
,<br />
10 4, 5<br />
91 2 8 , 1 3 1 ,<br />
, ,189.34,113,2035<br />
1 6<br />
7E 240<br />
7P6 , 6 0 ,<br />
7 DATA 141,242,112,199,35,<br />
9 ,<br />
1 1 3 , 1 4 1<br />
6 1 , 3 1<br />
. 138,72,32,228,2260<br />
03 250<br />
4, 6 ,<br />
2 4 3 DATA , 1 1299,141,78,112,104, 2<br />
1 3 712 0<br />
,<br />
,169,2,141,1934<br />
,<br />
AC 260<br />
1 0 8 . 2 4 2<br />
1 736 3DATA<br />
8 130,165.32,29,128,1<br />
7, 1 1 2 ,<br />
, 3<br />
, 2 ,<br />
, 3,21,128,1649<br />
72<br />
4 .<br />
44 270 4<br />
8 4 2 DATA 1 3 3<br />
, 2 1,<br />
, , 3 3<br />
61<br />
1 2 7 , 0<br />
2 0 , 1,<br />
1 7 3 , 2 2 , 1<br />
88 280 , 9 6 ,<br />
2 6 , 2 21 91<br />
DATA 142,153,132.132,254<br />
1.<br />
3 2 ,<br />
41,32,1,141,2036<br />
,<br />
31<br />
1 4 8<br />
61 290 23 4<br />
4<br />
DATA 1 6<br />
,<br />
6 , 160 2 ,<br />
, 0<br />
9 7 . 2 0 1 ,<br />
2,240,3.1948<br />
1 2 3<br />
6 3 , , 3 1 , 9<br />
2,<br />
2 0 8 .<br />
90 300<br />
17,<br />
DATA 7<br />
6<br />
6 , 8 6.<br />
1<br />
6.<br />
10 6.<br />
1 1 0 ,<br />
,32.1130<br />
7 6 , 39<br />
5<br />
986<br />
4<br />
0,<br />
6 , 1 1 1<br />
, 64<br />
, , 1 6<br />
1,<br />
,<br />
1<br />
6 1,<br />
71<br />
1<br />
, 0 9 , 6<br />
5 53<br />
1<br />
, 7<br />
5 52<br />
41<br />
6<br />
,<br />
10! This is "SOURCE3"<br />
20 BASICAD=43 ! give the label for<br />
the above files<br />
30 R ELINK "MAIN"! loop back to<br />
the main file<br />
When linking from cassette, you<br />
will be told to insert a file and press<br />
a key, this is due to the need of<br />
rewinding etc. Linking from disk is<br />
automatic.<br />
As stated the TOP LEVEL<br />
SOURCE file is the only file in which<br />
a DINCLUDE directive can be used.<br />
Its function is best used to set up a<br />
type of batch file, a small file which<br />
'calls' the main bulk of the source, a<br />
typical batch file could be:<br />
10 ! TOP LEVEL SOURCE FILE<br />
20 OUT 3 ! sends output to screen<br />
30 SYM "KERNALSYM" ! reads<br />
symbols for the KERNAL routines<br />
40 LOPEN. MAC ! define a macro<br />
called "OPEINLMAC"<br />
50 DINCLUDE "MAIN I " ! includes<br />
the main code part 1<br />
60 DINCLUDE -<br />
MAIN2" the main code part 2<br />
!<br />
i n 6 c, 8l3 u, 6d3 ,1104<br />
e s,<br />
DC 310 DATA 77,65,67,82,79,32,6<br />
D1 320 6 8 , DATA 7 7 , 40,67,41,32,49,57.5<br />
6<br />
6 , 9 7<br />
6 ,909 , 7 6 , 6 9<br />
.<br />
SF 330<br />
, 8 2 , 3 2<br />
3 2 DATA 50,59,49,49,49,32.8<br />
3 , 7 9 , 8 6<br />
, ,1019<br />
.<br />
66 340<br />
7 3<br />
8 DATA 69,63,32.70,82,69,6<br />
9,46,13<br />
,<br />
2 ,1009 , 6 7 , 6 9<br />
. 4 6 . 7<br />
,<br />
39 390 01<br />
, 7DATA 9 97,54,53,48,50.32,7<br />
7 3 2 , 6 6 , 6<br />
, , 6 5<br />
, ,986<br />
. 9 , 8 4<br />
27<br />
0 , 7<br />
EC 360 6<br />
55,17,5<br />
0 7,<br />
6<br />
DATA<br />
9<br />
77,66,76,69,82,32,4<br />
6,32,86,49<br />
,989 .<br />
, 4,93,99<br />
6<br />
A3 370 46,92,32,4<br />
, 4 8DATA<br />
57,56,57,13,17,42,4<br />
2,32,80,65<br />
2 , 7 9<br />
9,47,49<br />
,782<br />
,<br />
,<br />
C3 380 3 2 DATA , 6 4 2<br />
63.83,32,4<br />
. ,<br />
5<br />
8<br />
9,32,42<br />
,<br />
0<br />
9<br />
,<br />
3<br />
6 5<br />
697<br />
0 , 1 ,<br />
3 , 1 7 , 4 2<br />
9A 390<br />
, 4 2 8 , 3<br />
DATA<br />
3 , 2 8<br />
6<br />
3 ,<br />
0<br />
, ,<br />
882 3<br />
9<br />
2 , 5 0 ,<br />
1 3 , 8<br />
3<br />
1<br />
2<br />
7<br />
,<br />
,<br />
4<br />
6<br />
2<br />
9<br />
.<br />
,<br />
20 400<br />
8 2 , 2 DATA 65,76,73,68,32,67,7<br />
4<br />
8<br />
2<br />
2<br />
,<br />
, 7 9<br />
9 , 7 7 , 7 7<br />
901 ,<br />
,<br />
09 410<br />
3<br />
6 5 , DATA 7 8 , 17,69,82,92,79,82,3<br />
6<br />
5 , 4 6 , 9 0<br />
8 , 4 6 , 1 7<br />
,<br />
,982 ,<br />
DB 420<br />
, 0 . 1 3 ,<br />
548 , DATA 3 2 , 67 7<br />
, 2<br />
922 8 9 . 7 9 , 3 2<br />
7 ,<br />
,<br />
27 430<br />
7 9 , 8 0<br />
9 , 6 6<br />
DATA 69,82,92,79,82,35,4<br />
8 4 , 6 9 , 3 2 ,<br />
8<br />
8 0 , 98<br />
,<br />
.1002 8<br />
.<br />
6<br />
,<br />
8<br />
1<br />
5<br />
3<br />
,<br />
8<br />
, , YOUR 5 COMMODORE<br />
6<br />
6<br />
3<br />
92