Home » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_27.ADF » P/+27Kas1

P/+27Kas1

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_27.ADF
Filename: P/+27Kas1
Read OK:
File size: 0FED bytes
Load address: 50204556
Exec address: 37322B2E
File contents
�..>......*.......*.......*.......*.......*.......*.......*.......*.......*.<
                   6 Bollinbrook road, 
                    MACCLESFIELD,  
                     Cheshire.  
                      SK10 3DJ.  
  
27k assembler  
=============  
  
   Having kept promising this utility  to you for some time I have now had 
chance to finish and check it for  you.The results appear on this issue 
disk called 27KASM,along with 2 test  program TEST and TEST2. 

   Even on a casette machine in MODE  seven there are only 27k of free 
memory for programs,or 28k if you're  using a shadow MODE such as
available  on the Master 128. 

   When writing large assembler  programs you could quite easily fill 
this 27k with source code,which means  when it comes to assembly BASIC
gives  the insulting "No room" message as  there is no free space to keep
the  line references on the HEAP. 

   The normal way around this is to  assemble your program in parts but 
this has the disadvantage of your  loosing the variables between. 

   Another possible route is open to  those with sideways RAM.Using
BASIC2's  offset assembly and pointing the code  into &8000.This is
fine,except when  you come to saving as using *SAVE will  page in the
DFS.Also,it wont work on a  Master. 

   This is where my program comes into  its own.It will work on any
unexpanded  8 bit Acorn (but is NOT 2nd processor  compatible).ie.a
Master,Elk,BBC B  etc... as long as it has at least  BASIC version 2. 

   You can tell if you have BASIC2 by  turning on,typing *BASIC then 
REPORT.Dates of 1982 or greater are  fine. 

   There are some modifications you'll  need to make to you code,this is
best  illustrated by a frivilous example,  using the generic header I use
for all  my assembler listings: 
 
10REM Pointless program 
20REM (C)1996 Joe Bloggs 
30DIM code% 256 
40INPUT"Assemble at "loc$   
50loc%=EVAL(loc$)   
60REM Define os variables for later 
70oswc=&FFEE:oswd=&FFF1:osfd=&FFCE  
80osfd=&FFCE:ospb=&FFD4:osby=&FFF4  
90FORX=4 TO 7 STEP3  
100O%=code%:P%=loc%  
110[OPTX  
120NOP 
130RTS 
140] 
150NEXT 
160REM Save mcode to disk as usual 
170OSCLI"SAVE OUTPUT "+STR$~(asm%)+" 
"+STR$~(O%)+" "+STR$~(loc%)+" 
"+STR$~(loc%)  
  
   Requires modifying in the following 
ways: *RUN the redirector,27KASM 
      SET O%=&A00 
      DO VDU255 at top and bottom  
      inside the FOR...NEXT loop 
 
   Although not essential,you don't  need to DIM any memory for it now,and  
the *SAVE command at the end is not  needed anymore,which would make the 
above become: 
  
10REM Pointless program 
20REM (C)1996 Joe Bloggs 
30 
40INPUT"Assemble at "loc$   
50loc%=EVAL(loc$)   
60REM Define os variables for later 
70oswc=&FFEE:oswd=&FFF1:osfd=&FFCE  
80osfd=&FFCE:ospb=&FFD4:osby=&FFF4  
85*RUN 27KASM 
90FORX=4 TO 7 STEP3  
100O%=&A00:P%=loc% 
105VDU255 
110[OPTX  
120NOP 
130RTS 
140] 
145VDU255 
150NEXT 
160 
170 
  
   Also enclosed on this disk are 2  further test programs,which don't do 
anything special,but illustrate some  other features.As vectors are 
repointed the 27KASM program shouldn't  be *RUN twice without pressing
BREAK  in between.The program will work with  both the TAPE,DFS,and ADFS. 

   Note that it uses page &A00  (cassette and RS423 receive on the  BBC)
as a buffer for BASIC to assemble  to.The program itself occupies page 
&C00 (character redef buffer on BBC or  Econet workspace on the Master) so 
don't redefine any characters.If these  locations pose a problem to yuo
send  `2.50 with a note saying where your  preffered buffer/program areas
are and  I'll send you a customised version  back on disk. 

   This has been tested with BASIC2  and BASIC4.It wont work with BASIC1
as  this has no offset assembly option. 

   Let me know how you get on,and I'll  look forward to seeing your 27k 
assembler programs in future EUG's  (actually they wont be THAT long as 
I've found that roughly for every 7.25  bytes of BASIC source you write
only 1  byte of mcode is generated,so 3.75k of  mcode is more realistic!). 
                          R.P.Sprowson 
 
00000000  81 2e 2e 3e 2e 2e 2e 2e  2e 2e 2a 2e 2e 2e 2e 2e  |...>......*.....|
00000010  2e 2e 2a 2e 2e 2e 2e 2e  2e 2e 2a 2e 2e 2e 2e 2e  |..*.......*.....|
*
00000040  2e 2e 2a 2e 2e 2e 2e 2e  2e 2e 2a 2e 3c 0d 20 20  |..*.......*.<.  |
00000050  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000060  20 36 20 42 6f 6c 6c 69  6e 62 72 6f 6f 6b 20 72  | 6 Bollinbrook r|
00000070  6f 61 64 2c 20 0d 20 20  20 20 20 20 20 20 20 20  |oad, .          |
00000080  20 20 20 20 20 20 20 20  20 20 4d 41 43 43 4c 45  |          MACCLE|
00000090  53 46 49 45 4c 44 2c 20  20 0d 20 20 20 20 20 20  |SFIELD,  .      |
000000a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 43  |               C|
000000b0  68 65 73 68 69 72 65 2e  20 20 0d 20 20 20 20 20  |heshire.  .     |
000000c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000000d0  20 53 4b 31 30 20 33 44  4a 2e 20 20 0d 20 20 0d  | SK10 3DJ.  .  .|
000000e0  32 37 6b 20 61 73 73 65  6d 62 6c 65 72 20 20 0d  |27k assembler  .|
000000f0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 20 20 0d  |=============  .|
00000100  20 20 0d 20 20 20 48 61  76 69 6e 67 20 6b 65 70  |  .   Having kep|
00000110  74 20 70 72 6f 6d 69 73  69 6e 67 20 74 68 69 73  |t promising this|
00000120  20 75 74 69 6c 69 74 79  20 20 74 6f 20 79 6f 75  | utility  to you|
00000130  20 66 6f 72 20 73 6f 6d  65 20 74 69 6d 65 20 49  | for some time I|
00000140  20 68 61 76 65 20 6e 6f  77 20 68 61 64 20 0d 63  | have now had .c|
00000150  68 61 6e 63 65 20 74 6f  20 66 69 6e 69 73 68 20  |hance to finish |
00000160  61 6e 64 20 63 68 65 63  6b 20 69 74 20 66 6f 72  |and check it for|
00000170  20 20 79 6f 75 2e 54 68  65 20 72 65 73 75 6c 74  |  you.The result|
00000180  73 20 61 70 70 65 61 72  20 6f 6e 20 74 68 69 73  |s appear on this|
00000190  20 69 73 73 75 65 20 0d  64 69 73 6b 20 63 61 6c  | issue .disk cal|
000001a0  6c 65 64 20 32 37 4b 41  53 4d 2c 61 6c 6f 6e 67  |led 27KASM,along|
000001b0  20 77 69 74 68 20 32 20  74 65 73 74 20 20 70 72  | with 2 test  pr|
000001c0  6f 67 72 61 6d 20 54 45  53 54 20 61 6e 64 20 54  |ogram TEST and T|
000001d0  45 53 54 32 2e 20 0d 0d  20 20 20 45 76 65 6e 20  |EST2. ..   Even |
000001e0  6f 6e 20 61 20 63 61 73  65 74 74 65 20 6d 61 63  |on a casette mac|
000001f0  68 69 6e 65 20 69 6e 20  4d 4f 44 45 20 20 73 65  |hine in MODE  se|
00000200  76 65 6e 20 74 68 65 72  65 20 61 72 65 20 6f 6e  |ven there are on|
00000210  6c 79 20 32 37 6b 20 6f  66 20 66 72 65 65 20 0d  |ly 27k of free .|
00000220  6d 65 6d 6f 72 79 20 66  6f 72 20 70 72 6f 67 72  |memory for progr|
00000230  61 6d 73 2c 6f 72 20 32  38 6b 20 69 66 20 79 6f  |ams,or 28k if yo|
00000240  75 27 72 65 20 20 75 73  69 6e 67 20 61 20 73 68  |u're  using a sh|
00000250  61 64 6f 77 20 4d 4f 44  45 20 73 75 63 68 20 61  |adow MODE such a|
00000260  73 0d 61 76 61 69 6c 61  62 6c 65 20 20 6f 6e 20  |s.available  on |
00000270  74 68 65 20 4d 61 73 74  65 72 20 31 32 38 2e 20  |the Master 128. |
00000280  0d 0d 20 20 20 57 68 65  6e 20 77 72 69 74 69 6e  |..   When writin|
00000290  67 20 6c 61 72 67 65 20  61 73 73 65 6d 62 6c 65  |g large assemble|
000002a0  72 20 20 70 72 6f 67 72  61 6d 73 20 79 6f 75 20  |r  programs you |
000002b0  63 6f 75 6c 64 20 71 75  69 74 65 20 65 61 73 69  |could quite easi|
000002c0  6c 79 20 66 69 6c 6c 20  0d 74 68 69 73 20 32 37  |ly fill .this 27|
000002d0  6b 20 77 69 74 68 20 73  6f 75 72 63 65 20 63 6f  |k with source co|
000002e0  64 65 2c 77 68 69 63 68  20 6d 65 61 6e 73 20 20  |de,which means  |
000002f0  77 68 65 6e 20 69 74 20  63 6f 6d 65 73 20 74 6f  |when it comes to|
00000300  20 61 73 73 65 6d 62 6c  79 20 42 41 53 49 43 0d  | assembly BASIC.|
00000310  67 69 76 65 73 20 20 74  68 65 20 69 6e 73 75 6c  |gives  the insul|
00000320  74 69 6e 67 20 22 4e 6f  20 72 6f 6f 6d 22 20 6d  |ting "No room" m|
00000330  65 73 73 61 67 65 20 61  73 20 20 74 68 65 72 65  |essage as  there|
00000340  20 69 73 20 6e 6f 20 66  72 65 65 20 73 70 61 63  | is no free spac|
00000350  65 20 74 6f 20 6b 65 65  70 0d 74 68 65 20 20 6c  |e to keep.the  l|
00000360  69 6e 65 20 72 65 66 65  72 65 6e 63 65 73 20 6f  |ine references o|
00000370  6e 20 74 68 65 20 48 45  41 50 2e 20 0d 0d 20 20  |n the HEAP. ..  |
00000380  20 54 68 65 20 6e 6f 72  6d 61 6c 20 77 61 79 20  | The normal way |
00000390  61 72 6f 75 6e 64 20 74  68 69 73 20 69 73 20 74  |around this is t|
000003a0  6f 20 20 61 73 73 65 6d  62 6c 65 20 79 6f 75 72  |o  assemble your|
000003b0  20 70 72 6f 67 72 61 6d  20 69 6e 20 70 61 72 74  | program in part|
000003c0  73 20 62 75 74 20 0d 74  68 69 73 20 68 61 73 20  |s but .this has |
000003d0  74 68 65 20 64 69 73 61  64 76 61 6e 74 61 67 65  |the disadvantage|
000003e0  20 6f 66 20 79 6f 75 72  20 20 6c 6f 6f 73 69 6e  | of your  loosin|
000003f0  67 20 74 68 65 20 76 61  72 69 61 62 6c 65 73 20  |g the variables |
00000400  62 65 74 77 65 65 6e 2e  20 0d 0d 20 20 20 41 6e  |between. ..   An|
00000410  6f 74 68 65 72 20 70 6f  73 73 69 62 6c 65 20 72  |other possible r|
00000420  6f 75 74 65 20 69 73 20  6f 70 65 6e 20 74 6f 20  |oute is open to |
00000430  20 74 68 6f 73 65 20 77  69 74 68 20 73 69 64 65  | those with side|
00000440  77 61 79 73 20 52 41 4d  2e 55 73 69 6e 67 0d 42  |ways RAM.Using.B|
00000450  41 53 49 43 32 27 73 20  20 6f 66 66 73 65 74 20  |ASIC2's  offset |
00000460  61 73 73 65 6d 62 6c 79  20 61 6e 64 20 70 6f 69  |assembly and poi|
00000470  6e 74 69 6e 67 20 74 68  65 20 63 6f 64 65 20 20  |nting the code  |
00000480  69 6e 74 6f 20 26 38 30  30 30 2e 54 68 69 73 20  |into &8000.This |
00000490  69 73 0d 66 69 6e 65 2c  65 78 63 65 70 74 20 77  |is.fine,except w|
000004a0  68 65 6e 20 20 79 6f 75  20 63 6f 6d 65 20 74 6f  |hen  you come to|
000004b0  20 73 61 76 69 6e 67 20  61 73 20 75 73 69 6e 67  | saving as using|
000004c0  20 2a 53 41 56 45 20 77  69 6c 6c 20 20 70 61 67  | *SAVE will  pag|
000004d0  65 20 69 6e 20 74 68 65  0d 44 46 53 2e 41 6c 73  |e in the.DFS.Als|
000004e0  6f 2c 69 74 20 77 6f 6e  74 20 77 6f 72 6b 20 6f  |o,it wont work o|
000004f0  6e 20 61 20 20 4d 61 73  74 65 72 2e 20 0d 0d 20  |n a  Master. .. |
00000500  20 20 54 68 69 73 20 69  73 20 77 68 65 72 65 20  |  This is where |
00000510  6d 79 20 70 72 6f 67 72  61 6d 20 63 6f 6d 65 73  |my program comes|
00000520  20 69 6e 74 6f 20 20 69  74 73 20 6f 77 6e 2e 49  | into  its own.I|
00000530  74 20 77 69 6c 6c 20 77  6f 72 6b 20 6f 6e 20 61  |t will work on a|
00000540  6e 79 0d 75 6e 65 78 70  61 6e 64 65 64 20 20 38  |ny.unexpanded  8|
00000550  20 62 69 74 20 41 63 6f  72 6e 20 28 62 75 74 20  | bit Acorn (but |
00000560  69 73 20 4e 4f 54 20 32  6e 64 20 70 72 6f 63 65  |is NOT 2nd proce|
00000570  73 73 6f 72 20 20 63 6f  6d 70 61 74 69 62 6c 65  |ssor  compatible|
00000580  29 2e 69 65 2e 61 0d 4d  61 73 74 65 72 2c 45 6c  |).ie.a.Master,El|
00000590  6b 2c 42 42 43 20 42 20  20 65 74 63 2e 2e 2e 20  |k,BBC B  etc... |
000005a0  61 73 20 6c 6f 6e 67 20  61 73 20 69 74 20 68 61  |as long as it ha|
000005b0  73 20 61 74 20 6c 65 61  73 74 20 20 42 41 53 49  |s at least  BASI|
000005c0  43 20 76 65 72 73 69 6f  6e 20 32 2e 20 0d 0d 20  |C version 2. .. |
000005d0  20 20 59 6f 75 20 63 61  6e 20 74 65 6c 6c 20 69  |  You can tell i|
000005e0  66 20 79 6f 75 20 68 61  76 65 20 42 41 53 49 43  |f you have BASIC|
000005f0  32 20 62 79 20 20 74 75  72 6e 69 6e 67 20 6f 6e  |2 by  turning on|
00000600  2c 74 79 70 69 6e 67 20  2a 42 41 53 49 43 20 74  |,typing *BASIC t|
00000610  68 65 6e 20 0d 52 45 50  4f 52 54 2e 44 61 74 65  |hen .REPORT.Date|
00000620  73 20 6f 66 20 31 39 38  32 20 6f 72 20 67 72 65  |s of 1982 or gre|
00000630  61 74 65 72 20 61 72 65  20 20 66 69 6e 65 2e 20  |ater are  fine. |
00000640  0d 0d 20 20 20 54 68 65  72 65 20 61 72 65 20 73  |..   There are s|
00000650  6f 6d 65 20 6d 6f 64 69  66 69 63 61 74 69 6f 6e  |ome modification|
00000660  73 20 79 6f 75 27 6c 6c  20 20 6e 65 65 64 20 74  |s you'll  need t|
00000670  6f 20 6d 61 6b 65 20 74  6f 20 79 6f 75 20 63 6f  |o make to you co|
00000680  64 65 2c 74 68 69 73 20  69 73 0d 62 65 73 74 20  |de,this is.best |
00000690  20 69 6c 6c 75 73 74 72  61 74 65 64 20 62 79 20  | illustrated by |
000006a0  61 20 66 72 69 76 69 6c  6f 75 73 20 65 78 61 6d  |a frivilous exam|
000006b0  70 6c 65 2c 20 20 75 73  69 6e 67 20 74 68 65 20  |ple,  using the |
000006c0  67 65 6e 65 72 69 63 20  68 65 61 64 65 72 20 49  |generic header I|
000006d0  20 75 73 65 0d 66 6f 72  20 61 6c 6c 20 20 6d 79  | use.for all  my|
000006e0  20 61 73 73 65 6d 62 6c  65 72 20 6c 69 73 74 69  | assembler listi|
000006f0  6e 67 73 3a 20 0d 20 0d  31 30 52 45 4d 20 50 6f  |ngs: . .10REM Po|
00000700  69 6e 74 6c 65 73 73 20  70 72 6f 67 72 61 6d 20  |intless program |
00000710  0d 32 30 52 45 4d 20 28  43 29 31 39 39 36 20 4a  |.20REM (C)1996 J|
00000720  6f 65 20 42 6c 6f 67 67  73 20 0d 33 30 44 49 4d  |oe Bloggs .30DIM|
00000730  20 63 6f 64 65 25 20 32  35 36 20 0d 34 30 49 4e  | code% 256 .40IN|
00000740  50 55 54 22 41 73 73 65  6d 62 6c 65 20 61 74 20  |PUT"Assemble at |
00000750  22 6c 6f 63 24 20 20 20  0d 35 30 6c 6f 63 25 3d  |"loc$   .50loc%=|
00000760  45 56 41 4c 28 6c 6f 63  24 29 20 20 20 0d 36 30  |EVAL(loc$)   .60|
00000770  52 45 4d 20 44 65 66 69  6e 65 20 6f 73 20 76 61  |REM Define os va|
00000780  72 69 61 62 6c 65 73 20  66 6f 72 20 6c 61 74 65  |riables for late|
00000790  72 20 0d 37 30 6f 73 77  63 3d 26 46 46 45 45 3a  |r .70oswc=&FFEE:|
000007a0  6f 73 77 64 3d 26 46 46  46 31 3a 6f 73 66 64 3d  |oswd=&FFF1:osfd=|
000007b0  26 46 46 43 45 20 20 0d  38 30 6f 73 66 64 3d 26  |&FFCE  .80osfd=&|
000007c0  46 46 43 45 3a 6f 73 70  62 3d 26 46 46 44 34 3a  |FFCE:ospb=&FFD4:|
000007d0  6f 73 62 79 3d 26 46 46  46 34 20 20 0d 39 30 46  |osby=&FFF4  .90F|
000007e0  4f 52 58 3d 34 20 54 4f  20 37 20 53 54 45 50 33  |ORX=4 TO 7 STEP3|
000007f0  20 20 0d 31 30 30 4f 25  3d 63 6f 64 65 25 3a 50  |  .100O%=code%:P|
00000800  25 3d 6c 6f 63 25 20 20  0d 31 31 30 5b 4f 50 54  |%=loc%  .110[OPT|
00000810  58 20 20 0d 31 32 30 4e  4f 50 20 0d 31 33 30 52  |X  .120NOP .130R|
00000820  54 53 20 0d 31 34 30 5d  20 0d 31 35 30 4e 45 58  |TS .140] .150NEX|
00000830  54 20 0d 31 36 30 52 45  4d 20 53 61 76 65 20 6d  |T .160REM Save m|
00000840  63 6f 64 65 20 74 6f 20  64 69 73 6b 20 61 73 20  |code to disk as |
00000850  75 73 75 61 6c 20 0d 31  37 30 4f 53 43 4c 49 22  |usual .170OSCLI"|
00000860  53 41 56 45 20 4f 55 54  50 55 54 20 22 2b 53 54  |SAVE OUTPUT "+ST|
00000870  52 24 7e 28 61 73 6d 25  29 2b 22 20 0d 22 2b 53  |R$~(asm%)+" ."+S|
00000880  54 52 24 7e 28 4f 25 29  2b 22 20 22 2b 53 54 52  |TR$~(O%)+" "+STR|
00000890  24 7e 28 6c 6f 63 25 29  2b 22 20 0d 22 2b 53 54  |$~(loc%)+" ."+ST|
000008a0  52 24 7e 28 6c 6f 63 25  29 20 20 0d 20 20 0d 20  |R$~(loc%)  .  . |
000008b0  20 20 52 65 71 75 69 72  65 73 20 6d 6f 64 69 66  |  Requires modif|
000008c0  79 69 6e 67 20 69 6e 20  74 68 65 20 66 6f 6c 6c  |ying in the foll|
000008d0  6f 77 69 6e 67 20 0d 77  61 79 73 3a 20 2a 52 55  |owing .ways: *RU|
000008e0  4e 20 74 68 65 20 72 65  64 69 72 65 63 74 6f 72  |N the redirector|
000008f0  2c 32 37 4b 41 53 4d 20  0d 20 20 20 20 20 20 53  |,27KASM .      S|
00000900  45 54 20 4f 25 3d 26 41  30 30 20 0d 20 20 20 20  |ET O%=&A00 .    |
00000910  20 20 44 4f 20 56 44 55  32 35 35 20 61 74 20 74  |  DO VDU255 at t|
00000920  6f 70 20 61 6e 64 20 62  6f 74 74 6f 6d 20 20 0d  |op and bottom  .|
00000930  20 20 20 20 20 20 69 6e  73 69 64 65 20 74 68 65  |      inside the|
00000940  20 46 4f 52 2e 2e 2e 4e  45 58 54 20 6c 6f 6f 70  | FOR...NEXT loop|
00000950  20 0d 20 0d 20 20 20 41  6c 74 68 6f 75 67 68 20  | . .   Although |
00000960  6e 6f 74 20 65 73 73 65  6e 74 69 61 6c 2c 79 6f  |not essential,yo|
00000970  75 20 64 6f 6e 27 74 20  20 6e 65 65 64 20 74 6f  |u don't  need to|
00000980  20 44 49 4d 20 61 6e 79  20 6d 65 6d 6f 72 79 20  | DIM any memory |
00000990  66 6f 72 20 69 74 20 6e  6f 77 2c 61 6e 64 20 20  |for it now,and  |
000009a0  0d 74 68 65 20 2a 53 41  56 45 20 63 6f 6d 6d 61  |.the *SAVE comma|
000009b0  6e 64 20 61 74 20 74 68  65 20 65 6e 64 20 69 73  |nd at the end is|
000009c0  20 6e 6f 74 20 20 6e 65  65 64 65 64 20 61 6e 79  | not  needed any|
000009d0  6d 6f 72 65 2c 77 68 69  63 68 20 77 6f 75 6c 64  |more,which would|
000009e0  20 6d 61 6b 65 20 74 68  65 20 0d 61 62 6f 76 65  | make the .above|
000009f0  20 62 65 63 6f 6d 65 3a  20 0d 20 20 0d 31 30 52  | become: .  .10R|
00000a00  45 4d 20 50 6f 69 6e 74  6c 65 73 73 20 70 72 6f  |EM Pointless pro|
00000a10  67 72 61 6d 20 0d 32 30  52 45 4d 20 28 43 29 31  |gram .20REM (C)1|
00000a20  39 39 36 20 4a 6f 65 20  42 6c 6f 67 67 73 20 0d  |996 Joe Bloggs .|
00000a30  33 30 20 0d 34 30 49 4e  50 55 54 22 41 73 73 65  |30 .40INPUT"Asse|
00000a40  6d 62 6c 65 20 61 74 20  22 6c 6f 63 24 20 20 20  |mble at "loc$   |
00000a50  0d 35 30 6c 6f 63 25 3d  45 56 41 4c 28 6c 6f 63  |.50loc%=EVAL(loc|
00000a60  24 29 20 20 20 0d 36 30  52 45 4d 20 44 65 66 69  |$)   .60REM Defi|
00000a70  6e 65 20 6f 73 20 76 61  72 69 61 62 6c 65 73 20  |ne os variables |
00000a80  66 6f 72 20 6c 61 74 65  72 20 0d 37 30 6f 73 77  |for later .70osw|
00000a90  63 3d 26 46 46 45 45 3a  6f 73 77 64 3d 26 46 46  |c=&FFEE:oswd=&FF|
00000aa0  46 31 3a 6f 73 66 64 3d  26 46 46 43 45 20 20 0d  |F1:osfd=&FFCE  .|
00000ab0  38 30 6f 73 66 64 3d 26  46 46 43 45 3a 6f 73 70  |80osfd=&FFCE:osp|
00000ac0  62 3d 26 46 46 44 34 3a  6f 73 62 79 3d 26 46 46  |b=&FFD4:osby=&FF|
00000ad0  46 34 20 20 0d 38 35 2a  52 55 4e 20 32 37 4b 41  |F4  .85*RUN 27KA|
00000ae0  53 4d 20 0d 39 30 46 4f  52 58 3d 34 20 54 4f 20  |SM .90FORX=4 TO |
00000af0  37 20 53 54 45 50 33 20  20 0d 31 30 30 4f 25 3d  |7 STEP3  .100O%=|
00000b00  26 41 30 30 3a 50 25 3d  6c 6f 63 25 20 0d 31 30  |&A00:P%=loc% .10|
00000b10  35 56 44 55 32 35 35 20  0d 31 31 30 5b 4f 50 54  |5VDU255 .110[OPT|
00000b20  58 20 20 0d 31 32 30 4e  4f 50 20 0d 31 33 30 52  |X  .120NOP .130R|
00000b30  54 53 20 0d 31 34 30 5d  20 0d 31 34 35 56 44 55  |TS .140] .145VDU|
00000b40  32 35 35 20 0d 31 35 30  4e 45 58 54 20 0d 31 36  |255 .150NEXT .16|
00000b50  30 20 0d 31 37 30 20 0d  20 20 0d 20 20 20 41 6c  |0 .170 .  .   Al|
00000b60  73 6f 20 65 6e 63 6c 6f  73 65 64 20 6f 6e 20 74  |so enclosed on t|
00000b70  68 69 73 20 64 69 73 6b  20 61 72 65 20 32 20 20  |his disk are 2  |
00000b80  66 75 72 74 68 65 72 20  74 65 73 74 20 70 72 6f  |further test pro|
00000b90  67 72 61 6d 73 2c 77 68  69 63 68 20 64 6f 6e 27  |grams,which don'|
00000ba0  74 20 64 6f 20 0d 61 6e  79 74 68 69 6e 67 20 73  |t do .anything s|
00000bb0  70 65 63 69 61 6c 2c 62  75 74 20 69 6c 6c 75 73  |pecial,but illus|
00000bc0  74 72 61 74 65 20 73 6f  6d 65 20 20 6f 74 68 65  |trate some  othe|
00000bd0  72 20 66 65 61 74 75 72  65 73 2e 41 73 20 76 65  |r features.As ve|
00000be0  63 74 6f 72 73 20 61 72  65 20 0d 72 65 70 6f 69  |ctors are .repoi|
00000bf0  6e 74 65 64 20 74 68 65  20 32 37 4b 41 53 4d 20  |nted the 27KASM |
00000c00  70 72 6f 67 72 61 6d 20  73 68 6f 75 6c 64 6e 27  |program shouldn'|
00000c10  74 20 20 62 65 20 2a 52  55 4e 20 74 77 69 63 65  |t  be *RUN twice|
00000c20  20 77 69 74 68 6f 75 74  20 70 72 65 73 73 69 6e  | without pressin|
00000c30  67 0d 42 52 45 41 4b 20  20 69 6e 20 62 65 74 77  |g.BREAK  in betw|
00000c40  65 65 6e 2e 54 68 65 20  70 72 6f 67 72 61 6d 20  |een.The program |
00000c50  77 69 6c 6c 20 77 6f 72  6b 20 77 69 74 68 20 20  |will work with  |
00000c60  62 6f 74 68 20 74 68 65  20 54 41 50 45 2c 44 46  |both the TAPE,DF|
00000c70  53 2c 61 6e 64 20 41 44  46 53 2e 20 0d 0d 20 20  |S,and ADFS. ..  |
00000c80  20 4e 6f 74 65 20 74 68  61 74 20 69 74 20 75 73  | Note that it us|
00000c90  65 73 20 70 61 67 65 20  26 41 30 30 20 20 28 63  |es page &A00  (c|
00000ca0  61 73 73 65 74 74 65 20  61 6e 64 20 52 53 34 32  |assette and RS42|
00000cb0  33 20 72 65 63 65 69 76  65 20 6f 6e 20 74 68 65  |3 receive on the|
00000cc0  20 20 42 42 43 29 0d 61  73 20 61 20 62 75 66 66  |  BBC).as a buff|
00000cd0  65 72 20 66 6f 72 20 42  41 53 49 43 20 74 6f 20  |er for BASIC to |
00000ce0  61 73 73 65 6d 62 6c 65  20 20 74 6f 2e 54 68 65  |assemble  to.The|
00000cf0  20 70 72 6f 67 72 61 6d  20 69 74 73 65 6c 66 20  | program itself |
00000d00  6f 63 63 75 70 69 65 73  20 70 61 67 65 20 0d 26  |occupies page .&|
00000d10  43 30 30 20 28 63 68 61  72 61 63 74 65 72 20 72  |C00 (character r|
00000d20  65 64 65 66 20 62 75 66  66 65 72 20 6f 6e 20 42  |edef buffer on B|
00000d30  42 43 20 6f 72 20 20 45  63 6f 6e 65 74 20 77 6f  |BC or  Econet wo|
00000d40  72 6b 73 70 61 63 65 20  6f 6e 20 74 68 65 20 4d  |rkspace on the M|
00000d50  61 73 74 65 72 29 20 73  6f 20 0d 64 6f 6e 27 74  |aster) so .don't|
00000d60  20 72 65 64 65 66 69 6e  65 20 61 6e 79 20 63 68  | redefine any ch|
00000d70  61 72 61 63 74 65 72 73  2e 49 66 20 74 68 65 73  |aracters.If thes|
00000d80  65 20 20 6c 6f 63 61 74  69 6f 6e 73 20 70 6f 73  |e  locations pos|
00000d90  65 20 61 20 70 72 6f 62  6c 65 6d 20 74 6f 20 79  |e a problem to y|
00000da0  75 6f 0d 73 65 6e 64 20  20 60 32 2e 35 30 20 77  |uo.send  `2.50 w|
00000db0  69 74 68 20 61 20 6e 6f  74 65 20 73 61 79 69 6e  |ith a note sayin|
00000dc0  67 20 77 68 65 72 65 20  79 6f 75 72 20 20 70 72  |g where your  pr|
00000dd0  65 66 66 65 72 65 64 20  62 75 66 66 65 72 2f 70  |effered buffer/p|
00000de0  72 6f 67 72 61 6d 20 61  72 65 61 73 0d 61 72 65  |rogram areas.are|
00000df0  20 61 6e 64 20 20 49 27  6c 6c 20 73 65 6e 64 20  | and  I'll send |
00000e00  79 6f 75 20 61 20 63 75  73 74 6f 6d 69 73 65 64  |you a customised|
00000e10  20 76 65 72 73 69 6f 6e  20 20 62 61 63 6b 20 6f  | version  back o|
00000e20  6e 20 64 69 73 6b 2e 20  0d 0d 20 20 20 54 68 69  |n disk. ..   Thi|
00000e30  73 20 68 61 73 20 62 65  65 6e 20 74 65 73 74 65  |s has been teste|
00000e40  64 20 77 69 74 68 20 42  41 53 49 43 32 20 20 61  |d with BASIC2  a|
00000e50  6e 64 20 42 41 53 49 43  34 2e 49 74 20 77 6f 6e  |nd BASIC4.It won|
00000e60  74 20 77 6f 72 6b 20 77  69 74 68 20 42 41 53 49  |t work with BASI|
00000e70  43 31 0d 61 73 20 20 74  68 69 73 20 68 61 73 20  |C1.as  this has |
00000e80  6e 6f 20 6f 66 66 73 65  74 20 61 73 73 65 6d 62  |no offset assemb|
00000e90  6c 79 20 6f 70 74 69 6f  6e 2e 20 0d 0d 20 20 20  |ly option. ..   |
00000ea0  4c 65 74 20 6d 65 20 6b  6e 6f 77 20 68 6f 77 20  |Let me know how |
00000eb0  79 6f 75 20 67 65 74 20  6f 6e 2c 61 6e 64 20 49  |you get on,and I|
00000ec0  27 6c 6c 20 20 6c 6f 6f  6b 20 66 6f 72 77 61 72  |'ll  look forwar|
00000ed0  64 20 74 6f 20 73 65 65  69 6e 67 20 79 6f 75 72  |d to seeing your|
00000ee0  20 32 37 6b 20 0d 61 73  73 65 6d 62 6c 65 72 20  | 27k .assembler |
00000ef0  70 72 6f 67 72 61 6d 73  20 69 6e 20 66 75 74 75  |programs in futu|
00000f00  72 65 20 45 55 47 27 73  20 20 28 61 63 74 75 61  |re EUG's  (actua|
00000f10  6c 6c 79 20 74 68 65 79  20 77 6f 6e 74 20 62 65  |lly they wont be|
00000f20  20 54 48 41 54 20 6c 6f  6e 67 20 61 73 20 0d 49  | THAT long as .I|
00000f30  27 76 65 20 66 6f 75 6e  64 20 74 68 61 74 20 72  |'ve found that r|
00000f40  6f 75 67 68 6c 79 20 66  6f 72 20 65 76 65 72 79  |oughly for every|
00000f50  20 37 2e 32 35 20 20 62  79 74 65 73 20 6f 66 20  | 7.25  bytes of |
00000f60  42 41 53 49 43 20 73 6f  75 72 63 65 20 79 6f 75  |BASIC source you|
00000f70  20 77 72 69 74 65 0d 6f  6e 6c 79 20 31 20 20 62  | write.only 1  b|
00000f80  79 74 65 20 6f 66 20 6d  63 6f 64 65 20 69 73 20  |yte of mcode is |
00000f90  67 65 6e 65 72 61 74 65  64 2c 73 6f 20 33 2e 37  |generated,so 3.7|
00000fa0  35 6b 20 6f 66 20 20 6d  63 6f 64 65 20 69 73 20  |5k of  mcode is |
00000fb0  6d 6f 72 65 20 72 65 61  6c 69 73 74 69 63 21 29  |more realistic!)|
00000fc0  2e 20 0d 20 20 20 20 20  20 20 20 20 20 20 20 20  |. .             |
00000fd0  20 20 20 20 20 20 20 20  20 20 20 20 20 52 2e 50  |             R.P|
00000fe0  2e 53 70 72 6f 77 73 6f  6e 20 0d 20 0d           |.Sprowson . .|
00000fed
P/+27Kas1.m0
P/+27Kas1.m1
P/+27Kas1.m2
P/+27Kas1.m4
P/+27Kas1.m5