Home » Archimedes archive » Acorn User » AU 1995-10.adf » !Direct » Director/!Director/Menus/System/CharsSub

Director/!Director/Menus/System/CharsSub

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 1995-10.adf » !Direct
Filename: Director/!Director/Menus/System/CharsSub
Read OK:
File size: 033B bytes
Load address: 0000
Exec address: 0000
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
    1REM >Director:Menus.System.CharsSub
    2
    3REM This makes a menu of all the characters
    4
    5ON ERROR: ON ERROR OFF: ERROR ERR,REPORT$+" at "+STR$ERL
    6DIM block% 256
    7
    8Menu=FNswi_number("Director_Menu")
    9EndMenu=FNswi_number("Director_EndMenu")
   10Option=FNswi_number("Director_Option")
   11Command=FNswi_number("Director_Command")
   12Dash=FNswi_number("Director_Dash")
   13
   14chars$=FNread_sysvar("MenuText")
   15
   16SYS Menu,""""" CharsSub -temp"
   17
   18IF chars$<>"" THEN
   19  FOR i%=1 TO LENchars$
   20    a$="""<"+STR$ASCMID$(chars$,i%,1)+">"""
   21    SYS Option,a$
   22    SYS Command,"ProcessKeys "+a$
   23  NEXT i%
   24ENDIF
   25
   26SYS EndMenu
   27
   28*Set Director$Menu CharsSub
   29
   30END
   31
   32DEF FNswi_number(name$)
   33  SYS "OS_SWINumberFromString",,name$ TO A%
   34=A%
   35
   36DEF FNread_sysvar(name$)
   37  SYS "OS_ReadVarVal",name$,block%,255,0,3 TO ,,A%
   38  block%?A%=13
   39=$block%
%� >Director:Menus.System.CharsSub

-� This makes a menu of all the characters

 � �: � � �: � �,�$+" at "+Þ
� block% 256

%Menu=�swi_number("Director_Menu")
	+EndMenu=�swi_number("Director_EndMenu")

)Option=�swi_number("Director_Option")
+Command=�swi_number("Director_Command")
%Dash=�swi_number("Director_Dash")


#chars$=�read_sysvar("MenuText")

!ș Menu,""""" CharsSub -temp"

� chars$<>"" �
  � i%=1 � �chars$
&    a$="""<"+�chars$,i%,1)+">"""
    ș Option,a$
$    ș Command,"ProcessKeys "+a$

  � i%
�

ș EndMenu

*Set Director$Menu CharsSub

�

 � �swi_number(name$)
!-  ș "OS_SWINumberFromString",,name$ � A%
"=A%
#
$� �read_sysvar(name$)
%4  ș "OS_ReadVarVal",name$,block%,255,0,3 � ,,A%
&  block%?A%=13
'=$block%
�
00000000  0d 00 01 25 f4 20 3e 44  69 72 65 63 74 6f 72 3a  |...%. >Director:|
00000010  4d 65 6e 75 73 2e 53 79  73 74 65 6d 2e 43 68 61  |Menus.System.Cha|
00000020  72 73 53 75 62 0d 00 02  04 0d 00 03 2d f4 20 54  |rsSub.......-. T|
00000030  68 69 73 20 6d 61 6b 65  73 20 61 20 6d 65 6e 75  |his makes a menu|
00000040  20 6f 66 20 61 6c 6c 20  74 68 65 20 63 68 61 72  | of all the char|
00000050  61 63 74 65 72 73 0d 00  04 04 0d 00 05 20 ee 20  |acters....... . |
00000060  85 3a 20 ee 20 85 20 87  3a 20 85 20 9f 2c f6 24  |.: . . .: . .,.$|
00000070  2b 22 20 61 74 20 22 2b  c3 9e 0d 00 06 10 de 20  |+" at "+....... |
00000080  62 6c 6f 63 6b 25 20 32  35 36 0d 00 07 04 0d 00  |block% 256......|
00000090  08 25 4d 65 6e 75 3d a4  73 77 69 5f 6e 75 6d 62  |.%Menu=.swi_numb|
000000a0  65 72 28 22 44 69 72 65  63 74 6f 72 5f 4d 65 6e  |er("Director_Men|
000000b0  75 22 29 0d 00 09 2b 45  6e 64 4d 65 6e 75 3d a4  |u")...+EndMenu=.|
000000c0  73 77 69 5f 6e 75 6d 62  65 72 28 22 44 69 72 65  |swi_number("Dire|
000000d0  63 74 6f 72 5f 45 6e 64  4d 65 6e 75 22 29 0d 00  |ctor_EndMenu")..|
000000e0  0a 29 4f 70 74 69 6f 6e  3d a4 73 77 69 5f 6e 75  |.)Option=.swi_nu|
000000f0  6d 62 65 72 28 22 44 69  72 65 63 74 6f 72 5f 4f  |mber("Director_O|
00000100  70 74 69 6f 6e 22 29 0d  00 0b 2b 43 6f 6d 6d 61  |ption")...+Comma|
00000110  6e 64 3d a4 73 77 69 5f  6e 75 6d 62 65 72 28 22  |nd=.swi_number("|
00000120  44 69 72 65 63 74 6f 72  5f 43 6f 6d 6d 61 6e 64  |Director_Command|
00000130  22 29 0d 00 0c 25 44 61  73 68 3d a4 73 77 69 5f  |")...%Dash=.swi_|
00000140  6e 75 6d 62 65 72 28 22  44 69 72 65 63 74 6f 72  |number("Director|
00000150  5f 44 61 73 68 22 29 0d  00 0d 04 0d 00 0e 23 63  |_Dash").......#c|
00000160  68 61 72 73 24 3d a4 72  65 61 64 5f 73 79 73 76  |hars$=.read_sysv|
00000170  61 72 28 22 4d 65 6e 75  54 65 78 74 22 29 0d 00  |ar("MenuText")..|
00000180  0f 04 0d 00 10 21 c8 99  20 4d 65 6e 75 2c 22 22  |.....!.. Menu,""|
00000190  22 22 22 20 43 68 61 72  73 53 75 62 20 2d 74 65  |""" CharsSub -te|
000001a0  6d 70 22 0d 00 11 04 0d  00 12 12 e7 20 63 68 61  |mp"......... cha|
000001b0  72 73 24 3c 3e 22 22 20  8c 0d 00 13 16 20 20 e3  |rs$<>"" .....  .|
000001c0  20 69 25 3d 31 20 b8 20  a9 63 68 61 72 73 24 0d  | i%=1 . .chars$.|
000001d0  00 14 26 20 20 20 20 61  24 3d 22 22 22 3c 22 2b  |..&    a$="""<"+|
000001e0  c3 97 c1 63 68 61 72 73  24 2c 69 25 2c 31 29 2b  |...chars$,i%,1)+|
000001f0  22 3e 22 22 22 0d 00 15  14 20 20 20 20 c8 99 20  |">"""....    .. |
00000200  4f 70 74 69 6f 6e 2c 61  24 0d 00 16 24 20 20 20  |Option,a$...$   |
00000210  20 c8 99 20 43 6f 6d 6d  61 6e 64 2c 22 50 72 6f  | .. Command,"Pro|
00000220  63 65 73 73 4b 65 79 73  20 22 2b 61 24 0d 00 17  |cessKeys "+a$...|
00000230  0a 20 20 ed 20 69 25 0d  00 18 05 cd 0d 00 19 04  |.  . i%.........|
00000240  0d 00 1a 0e c8 99 20 45  6e 64 4d 65 6e 75 0d 00  |...... EndMenu..|
00000250  1b 04 0d 00 1c 1f 2a 53  65 74 20 44 69 72 65 63  |......*Set Direc|
00000260  74 6f 72 24 4d 65 6e 75  20 43 68 61 72 73 53 75  |tor$Menu CharsSu|
00000270  62 0d 00 1d 04 0d 00 1e  05 e0 0d 00 1f 04 0d 00  |b...............|
00000280  20 18 dd 20 a4 73 77 69  5f 6e 75 6d 62 65 72 28  | .. .swi_number(|
00000290  6e 61 6d 65 24 29 0d 00  21 2d 20 20 c8 99 20 22  |name$)..!-  .. "|
000002a0  4f 53 5f 53 57 49 4e 75  6d 62 65 72 46 72 6f 6d  |OS_SWINumberFrom|
000002b0  53 74 72 69 6e 67 22 2c  2c 6e 61 6d 65 24 20 b8  |String",,name$ .|
000002c0  20 41 25 0d 00 22 07 3d  41 25 0d 00 23 04 0d 00  | A%..".=A%..#...|
000002d0  24 19 dd 20 a4 72 65 61  64 5f 73 79 73 76 61 72  |$.. .read_sysvar|
000002e0  28 6e 61 6d 65 24 29 0d  00 25 34 20 20 c8 99 20  |(name$)..%4  .. |
000002f0  22 4f 53 5f 52 65 61 64  56 61 72 56 61 6c 22 2c  |"OS_ReadVarVal",|
00000300  6e 61 6d 65 24 2c 62 6c  6f 63 6b 25 2c 32 35 35  |name$,block%,255|
00000310  2c 30 2c 33 20 b8 20 2c  2c 41 25 0d 00 26 12 20  |,0,3 . ,,A%..&. |
00000320  20 62 6c 6f 63 6b 25 3f  41 25 3d 31 33 0d 00 27  | block%?A%=13..'|
00000330  0c 3d 24 62 6c 6f 63 6b  25 0d ff                 |.=$block%..|
0000033b