🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.acorn.tech
Article #47

Some Questions... (Very Long)

#47
From: John Bokma
Date: Tue, 03 Nov 1992 10:51
271 lines
11098 bytes
Well, here are a few questions:
(Some of them are from a friend)


 1. I am writing an application that enables the user to create an index of 
    all his discs. I want to support all filing systems, ADFS, IDEFS, SCSI, 
    etc. How do I know which Filing systems are available? I know you should
    use OS_FSControl, 33. This returns the fs name, but this also returns 
    null:, printer:, etc. How do I filter out the not-relevant filing 
    systems ? I don't want to use dirty tricks like if there's 'FS' in the 
    name (Wouldn't work anyway, because deskfs: is also irrelevant). Has it 
    something to do with the existance of a swi <FSNAME>_Drives ?
    (BTW is there already a more up to date list of Filing Systems and there
     corresponding codes ?)

 2. When using Wimp_GetWindowInfo to read some information on a window you 
    also get 32 bytes for every icon in the window. How can you determine 
    the number of icons in a window 

 3. How do I get the input focus in a window like the main window of !Draw?
    Do I just use Wimp_SetCaretPosition with:

                 R0 = windowhandle
                 R1 = -1, i.e. there are no icons
                 
                 are R2..R5 don't cares, or do I have to use the following
                 values:

                 R2 = ?
                 R3 = ?
                 R4 and R5 both -1.

 4. When I write an application in BASIC, how can I reserve a certain amount
    for my BASIC program and the space left as additional workspace, i.e.
    additional to the space I will claim from the Free slot when I need
    It:

        _______________ ________________ ______________//_____
       |               |                |             //      |
       | BASIC program | not used (yet) |                     |
       |_______________|________________|_____________//______|
                                                     //
       |<-     from WIMPSLOT, i.e.    ->|<- To be claimed   ->|
              depends on page size                          

    How can I claim at run time the extra memory I'll need??
    Can I just use Wimp_SlotSize or END = &xxxx (what's the 
    difference, except that with SYS "XWimp_SlotSize" there is a 
    neater way to check for an error)

    How can I lower the TOP of the BASIC program, thus freeing
    memory which has been claimed by the WIMPSLOT command in !Run
    ("not used (yet)" in the diagram)

    So I want to do something like this:

    Initialise()
    Reclaim(SpaceClaimed - (Size of BASIC program in bytes + room for
	    BASIC workspace))  with SpaceClaimed a multiple of the
			       page size

    When I need more workspace (not BASIC workspace but for storage)     
    I want to do something like this:

    Claim(n bytes) 

    which "eats" first te extra space, and later claims extra room
    with Wimp_SetSlot.

 5. How do I write an International Keyboard Handler??
    BTW can somebody please explain wat OS_Byte &47 does?? (Yes
    it's in the I.K. Handler)

    03920034 : E3A00047 : MOV     R0,#&47  
    03920038 : E3A010FF : MOV     R1,#&FF
    0392003C : EF020006 : SWI     XOS_Byte        *FX 71,255 ????
    03920040 : 73811080 : ORRVC   R1,R1,#&80
    03920044 : EF020006 : SWIVC   XOS_Byte

 6. Does anybody already know how too use some of the following RISC-OS
    3.10 SWI's? 

     Font_ApplyFields               0x0400a7
     Font_LookupFont                0x0400a8

     Wimp_GetMenuState              0x0400f4
     Wimp_RegisterFilter            0x0400f5
     Wimp_AddMessages               0x0400f6
     Wimp_RemoveMessages            0x0400f7
     Wimp_SetColourMapping          0x0400f8

     ADFS_VetFormat                 0x040246
     ADFS_FlpProcessDCB             0x040247
     ADFS_ControllerType            0x040248
     ADFS_PowerControl              0x040249
     ADFS_SetIDEController          0x04024a
     ADFS_IDEUserOp                 0x04024b
     ADFS_MiscOp                    0x04024c
     ADFS_ECCSAndRetries            0x040250

     Podule_EnumerateChunksWithInfo 0x04028a
     Podule_HardwareAddresses       0x04028b
     Podule_ReturnNumber            0x04028c

     FileCore_DiscardReadSectorsCache 0x040546
     FileCore_DiscFormat            0x040547
     FileCore_LayoutStructure       0x040548
     FileCore_MiscOp                0x040549

     Hourglass_Colours              0x0406c6

     ColourTrans_SetCalibration     0x040751
     ColourTrans_ReadCalibration    0x040752
     ColourTrans_ConvertDeviceColour 0x040753
     ColourTrans_ConvertDevicePalette 0x040754
     ColourTrans_ConvertRGBToCIE    0x040755
     ColourTrans_ConvertCIEToRGB    0x040756
     ColourTrans_WriteCalibrationToFile 0x040757
     ColourTrans_ConvertRGBToHSV    0x040758
     ColourTrans_ConvertHSVToRGB    0x040759
     ColourTrans_ConvertRGBToCMYK   0x04075a
     ColourTrans_ConvertCMYKToRGB   0x04075b
     ColourTrans_ReadPalette        0x04075c
     ColourTrans_WritePalette       0x04075d
     ColourTrans_SetColour          0x04075e
     ColourTrans_MiscOp             0x04075f
     ColourTrans_WriteLoadingsToFile 0x040760
     ColourTrans_SetTextColour      0x040761
     ColourTrans_SetOppTextColour   0x040762
     ColourTrans_GenerateTable      0x040763

     Super_Sample90                 0x040d80
     Super_Sample45                 0x040d81

     FilerAction_SendSelectedDirectory 0x040f80
     FilerAction_SendSelectedFile   0x040f81
     FilerAction_SendStartOperation 0x040f82

     MessageTrans_FileInfo          0x041500
     MessageTrans_OpenFile          0x041501
     MessageTrans_Lookup            0x041502
     MessageTrans_MakeMenus         0x041503
     MessageTrans_CloseFile         0x041504
     MessageTrans_EnumerateTokens   0x041505
     MessageTrans_ErrorLookup       0x041506
     MessageTrans_GSLookup          0x041507
     MessageTrans_CopyError         0x041508

     PDumper_Info                   0x041b00
     PDumper_Claim                  0x041b01
     PDumper_Free                   0x041b02
     PDumper_Find                   0x041b03
     PDumper_StartJob               0x041b04
     PDumper_TidyJob                0x041b05
     PDumper_SetColour              0x041b06
     PDumper_PrepareStrip           0x041b07
     PDumper_LookupError            0x041b08
     PDumper_CopyFilename           0x041b09

     ResourceFS_RegisterFiles       0x041b40
     ResourceFS_DeregisterFiles     0x041b41

     DragASprite_Start              0x042400
     DragASprite_Stop               0x042401

     Filter_RegisterPreFilter       0x042640
     Filter_RegisterPostFilter      0x042641
     Filter_DeRegisterPreFilter     0x042642
     Filter_DeRegisterPostFilter    0x042643

     TaskManager_TaskNameFromHandle 0x042680
     TaskManager_EnumerateTasks     0x042681
     TaskManager_Shutdown           0x042682

     Squash_Compress                0x042700
     Squash_Decompress              0x042701

     DeviceFS_Register              0x042740
     DeviceFS_Deregister            0x042741
     DeviceFS_RegisterObjects       0x042742
     DeviceFS_DeregisterObjects     0x042743
     DeviceFS_CallDevice            0x042744
     DeviceFS_Threshold             0x042745
     DeviceFS_ReceivedCharacter     0x042746
     DeviceFS_TransmitCharacter     0x042747

     Buffer_Create                  0x042940
     Buffer_Remove                  0x042941
     Buffer_Register                0x042942
     Buffer_Deregister              0x042943
     Buffer_ModifyFlags             0x042944
     Buffer_LinkDevice              0x042945
     Buffer_UnlinkDevice            0x042946
     Buffer_GetInfo                 0x042947
     Buffer_Threshold               0x042948

     BASICTrans_HELP                0x042c80
     BASICTrans_Error               0x042c81
     BASICTrans_Message             0x042c82

     Parallel_HardwareAddress       0x042ec0
     Parallel_Op                    0x042ec1

     Territory_Number               0x043040
     Territory_Register             0x043041
     Territory_Deregister           0x043042
     Territory_NumberToName         0x043043
     Territory_Exists               0x043044
     Territory_AlphabetNumberToName 0x043045
     Territory_SelectAlphabet       0x043046
     Territory_SetTime              0x043047
     Territory_ReadCurrentTimeZone  0x043048
     Territory_ConvertTimeToUTCOrdinals 0x043049
     Territory_ReadTimeZones        0x04304a
     Territory_ConvertDateAndTime   0x04304b
     Territory_ConvertStandardDateAndTime 0x04304c
     Territory_ConvertStandardDate  0x04304d
     Territory_ConvertStandardTime  0x04304e
     Territory_ConvertTimeToOrdinals 0x04304f
     Territory_ConvertTimeStringToOrdinals 0x043050
     Territory_ConvertOrdinalsToTime 0x043051
     Territory_Alphabet             0x043052
     Territory_AlphabetIdentifier   0x043053
     Territory_SelectKeyboardHandler 0x043054
     Territory_WriteDirection       0x043055
     Territory_CharacterPropertyTable 0x043056
     Territory_LowerCaseTable       0x043057
     Territory_UpperCaseTable       0x043058
     Territory_ControlTable         0x043059
     Territory_PlainTable           0x04305a
     Territory_ValueTable           0x04305b
     Territory_RepresentationTable  0x04305c
     Territory_Collate              0x04305d
     Territory_ReadSymbols          0x04305e
     Territory_ReadCalendarInformation 0x04305f
     Territory_NameToNumber         0x043060
     Territory_TransformString      0x043061

     Territory_ConvertTextToString  0x043075

     ScreenBlanker_Control          0x043100

     TaskWindow_TaskInfo            0x043380

     Free_Register                  0x0444c0
     Free_DeRegister                0x0444c1

     DOSFS_DiscFormat               0x044b00
     DOSFS_LayoutStructure          0x044b01


Last but not least: What is the new layout of the CMOS RAM (i.e. which
		    locations corresponds with which *Configure)

Please Mail. Because its almost certain others are interested, please put
in your mail if you don't mind if I summarise your reply to the net.
                                                                     

Many Many Thanks In Advance!!!


John (and Simon)

Please mail: jjjbokma@cs.ruu.nl
=============================================================================    ___                 __
   /   )  _   )_   _    /_)  _   /_  ___   _
      /  (_) /  ) / ) _/__) (_) /\  / / ) (_|_
  (_ /

=============================================================================
Technical Details
Message-ID: <1992Nov3.105100.21476@cs.ruu.nl>
Path: arc1-ca.pugleaf.net!sparky!uunet!mcsun!sun4nl!ruuinf!jjjbokma

Show Full Headers
Complete Article Headers
Newsgroups: comp.sys.acorn.tech
Path: arc1-ca.pugleaf.net!sparky!uunet!mcsun!sun4nl!ruuinf!jjjbokma
From: jjjbokma@cs.ruu.nl (John Bokma)
Subject: Some Questions... (Very Long)
Message-ID: <1992Nov3.105100.21476@cs.ruu.nl>
Date: Tue, 3 Nov 1992 10:51:00 GMT
Organization: Utrecht University, Dept. of Computer Science
Lines: 271