Home » Archimedes archive » Acorn User » AU 1998-04 A.adf » PD » Atterer/!raFS/Docs/raFScalls

Atterer/!raFS/Docs/raFScalls

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 » Archimedes archive » Acorn User » AU 1998-04 A.adf » PD
Filename: Atterer/!raFS/Docs/raFScalls
Read OK:
File size: 022C bytes
Load address: 0000
Exec address: 0000
File contents
    1REM raFS
    2
    3REM Use PROCrafsrouts before the assembler loop to set up the variables
    4REM Macro is called with FNcall(raFS_Info) etc. AND R11 POINTING TO raFS'
    5REM   WORKSPACE!
    6
    7
    8DEF FNcall(rout%)
    9[optp:mov lr,pc:ldr pc,[r11,#rout%]:]=0
   10
   11
   12DEF PROCrafsrouts
   13LOCALa%,a$,routs%:RESTORE+0:READa$
   14REPEAT:a%=EVAL("FNrafsrouts2("+a$+")"):routs%+=1:READa$:UNTILa$="*"
   15ENDPROC
   16DEF FNrafsrouts2(RETURN a):a=routs%<<2:=0
   17DATA raFS_Info
   18DATA raFS_NrOfDiscs
   19DATA raFS_EnumerateDiscs
   20DATA raFS_FindDisc
   21DATA raFS_DiscInfo
   22DATA raFS_MemCopy
   23DATA raFS_ReadVar
   24DATA raFS_SetVar
   25DATA *

� raFS

I� Use PROCrafsrouts before the assembler loop to set up the variables
K� Macro is called with FNcall(raFS_Info) etc. AND R11 POINTING TO raFS'
�   WORKSPACE!


� �call(rout%)
	+[optp:mov lr,pc:ldr pc,[r11,#rout%]:]=0



� �rafsrouts

�a%,a$,routs%:�+0:�a$
8�:a%=�("FNrafsrouts2("+a$+")"):routs%+=1:�a$:�a$="*"
�
%� �rafsrouts2(� a):a=routs%<<2:=0
� raFS_Info
� raFS_NrOfDiscs
� raFS_EnumerateDiscs
� raFS_FindDisc
� raFS_DiscInfo
� raFS_MemCopy
� raFS_ReadVar
� raFS_SetVar
� *
�
00000000  0d 00 01 0a f4 20 72 61  46 53 0d 00 02 04 0d 00  |..... raFS......|
00000010  03 49 f4 20 55 73 65 20  50 52 4f 43 72 61 66 73  |.I. Use PROCrafs|
00000020  72 6f 75 74 73 20 62 65  66 6f 72 65 20 74 68 65  |routs before the|
00000030  20 61 73 73 65 6d 62 6c  65 72 20 6c 6f 6f 70 20  | assembler loop |
00000040  74 6f 20 73 65 74 20 75  70 20 74 68 65 20 76 61  |to set up the va|
00000050  72 69 61 62 6c 65 73 0d  00 04 4b f4 20 4d 61 63  |riables...K. Mac|
00000060  72 6f 20 69 73 20 63 61  6c 6c 65 64 20 77 69 74  |ro is called wit|
00000070  68 20 46 4e 63 61 6c 6c  28 72 61 46 53 5f 49 6e  |h FNcall(raFS_In|
00000080  66 6f 29 20 65 74 63 2e  20 41 4e 44 20 52 31 31  |fo) etc. AND R11|
00000090  20 50 4f 49 4e 54 49 4e  47 20 54 4f 20 72 61 46  | POINTING TO raF|
000000a0  53 27 0d 00 05 12 f4 20  20 20 57 4f 52 4b 53 50  |S'.....   WORKSP|
000000b0  41 43 45 21 0d 00 06 04  0d 00 07 04 0d 00 08 12  |ACE!............|
000000c0  dd 20 a4 63 61 6c 6c 28  72 6f 75 74 25 29 0d 00  |. .call(rout%)..|
000000d0  09 2b 5b 6f 70 74 70 3a  6d 6f 76 20 6c 72 2c 70  |.+[optp:mov lr,p|
000000e0  63 3a 6c 64 72 20 70 63  2c 5b 72 31 31 2c 23 72  |c:ldr pc,[r11,#r|
000000f0  6f 75 74 25 5d 3a 5d 3d  30 0d 00 0a 04 0d 00 0b  |out%]:]=0.......|
00000100  04 0d 00 0c 10 dd 20 f2  72 61 66 73 72 6f 75 74  |...... .rafsrout|
00000110  73 0d 00 0d 19 ea 61 25  2c 61 24 2c 72 6f 75 74  |s.....a%,a$,rout|
00000120  73 25 3a f7 2b 30 3a f3  61 24 0d 00 0e 38 f5 3a  |s%:.+0:.a$...8.:|
00000130  61 25 3d a0 28 22 46 4e  72 61 66 73 72 6f 75 74  |a%=.("FNrafsrout|
00000140  73 32 28 22 2b 61 24 2b  22 29 22 29 3a 72 6f 75  |s2("+a$+")"):rou|
00000150  74 73 25 2b 3d 31 3a f3  61 24 3a fd 61 24 3d 22  |ts%+=1:.a$:.a$="|
00000160  2a 22 0d 00 0f 05 e1 0d  00 10 25 dd 20 a4 72 61  |*"........%. .ra|
00000170  66 73 72 6f 75 74 73 32  28 f8 20 61 29 3a 61 3d  |fsrouts2(. a):a=|
00000180  72 6f 75 74 73 25 3c 3c  32 3a 3d 30 0d 00 11 0f  |routs%<<2:=0....|
00000190  dc 20 72 61 46 53 5f 49  6e 66 6f 0d 00 12 14 dc  |. raFS_Info.....|
000001a0  20 72 61 46 53 5f 4e 72  4f 66 44 69 73 63 73 0d  | raFS_NrOfDiscs.|
000001b0  00 13 19 dc 20 72 61 46  53 5f 45 6e 75 6d 65 72  |.... raFS_Enumer|
000001c0  61 74 65 44 69 73 63 73  0d 00 14 13 dc 20 72 61  |ateDiscs..... ra|
000001d0  46 53 5f 46 69 6e 64 44  69 73 63 0d 00 15 13 dc  |FS_FindDisc.....|
000001e0  20 72 61 46 53 5f 44 69  73 63 49 6e 66 6f 0d 00  | raFS_DiscInfo..|
000001f0  16 12 dc 20 72 61 46 53  5f 4d 65 6d 43 6f 70 79  |... raFS_MemCopy|
00000200  0d 00 17 12 dc 20 72 61  46 53 5f 52 65 61 64 56  |..... raFS_ReadV|
00000210  61 72 0d 00 18 11 dc 20  72 61 46 53 5f 53 65 74  |ar..... raFS_Set|
00000220  56 61 72 0d 00 19 07 dc  20 2a 0d ff              |Var..... *..|
0000022c