; > Sources.Messages

; *********************************
; ***    C h a n g e   L i s t  ***
; *********************************

; Date       Description
; ----       -----------
; 06-Feb-91     0.01    File created.
;
; 09-Apr-91 0.02 OSmith Stopped it returning error in initialisation. Also
;                       changed to use Hdr:.
; 11-Apr-91 0.03 ECN    Added CLib messages
; 13-Apr-91 0.04 ECN    Added RISC_OSLib messages
; 15-May-91 0.05 ECN    Fixed spelling of RISC_OSLib,
;                       New CLib and RISC_OSLib message files
; 20-Jun-91 0.06 ECN    Added RamLoadC message to global messages file
;  9-Jul-91 0.09 PJC    Removed Obey/PDrivShare messages files
;                       Added PDriver/IIC/International messages files
; 16-Jul-91 0.10 PJC    Correct location of PDriver message file
; 27-Aug-91 0.13 ECN    Added UseDesk message to global messages
; 30-Aug-91 0.14 ECN    Added Palette and NetFiler messages and templates
; 10-Sep-91 0.15 ECN    Added WaveSynth messages
; 10-Sep-91 0.16 ECN    Added MsgTrans messages
; 14-Oct-91 0.17 JSR    Added ResFiler messages
; 04-Nov-91 0.18 ECN    Removed !Configure messages
; 04-Nov-91 0.18 ECN    Fixed !Edit messages so it uses ROM!Boot & ROM!Run
; 05-Nov-91 0.18 ECN    Added FilerAct messages
; 13-Nov-91 0.18 SAH    Added !Configure !Help file, but commented it out (like the other !Configure files)
; 14-Nov-91 0.26 SMC    Added Joystick messages
; 25-Nov-91 0.27 RM     Added Wimp messages
; 10-Dec-91 0.28 SAH    Reinstated !Configure messages
; 12-Dec-91 0.30 SMC    Added Free messages
; 21-Jan-92 0.33 DDV    Added Switcher messages
; 19-Feb-92 0.37 JSR    Added Desktop messages      
; 20-Feb-92 0.38 RM     Added Filer messages and templates
; 06-Mar-92 0.39 OSS    Added Percussion and StringLib messages
; 12-Mar-92 0.40 OSS    Moved !Edit and !Draw Messages and Templates into
;                       Resources:$.Resources.Edit.
; 13-Mar-92 0.41 OSS    Split !Configure in half as well, and added Wimp
;                       Templates file.
; 23-Mar-92 0.42 OSS    Split !Paint in half - RP-0716 now fixed.
; 23-Mar-92 0.43 ECN    Don't install configure messages if no !Configure

Module_BaseAddr

        GET     TerrHdr:ListOpts
        GET     TerrHdr:Macros
        GET     TerrHdr:System
        GET     TerrHdr:ModHand
        GET     TerrHdr:Services
        GET     TerrHdr:Proc
        GET     TerrHdr:ResourceFS
        GET     Version

        GET     TerrHdr:NDRDebug

        GBLL    debug
        GBLL    debugxx
        GBLL    hostvdu

debug   SETL    false
debugxx SETL    false
hostvdu SETL    true

        LEADR   Module_LoadAddr


; **************** Module code starts here **********************

        ASSERT  (.-Module_BaseAddr) = 0

        DCD     0 ; Messages_Start    - Module_BaseAddr
        DCD     Messages_Init     - Module_BaseAddr
        DCD     Messages_Die      - Module_BaseAddr
        DCD     Messages_Service  - Module_BaseAddr
        DCD     Messages_Title    - Module_BaseAddr
        DCD     Messages_HelpStr  - Module_BaseAddr
        DCD     0
        DCD     0
        DCD     0
        DCD     0
        DCD     0

Messages_Title     DCB     "Messages", 0
Messages_HelpStr   DCB     "UK Messages", 9, "$VString ($Date)", 0
Configure_Title    DCB     "!Configure", 0
                ALIGN

configure_test ENTRY
        MOV     r0, #161
        MOV     R1, #&12
        SWI     XOS_Byte
        MOVVS   r2, #0
        TST     r2, #2
        ADREQ   R0, Messages
        ADRNEL  R0, NoConfigureMessages
        STR     R0, [R12]
        EXITS

; *****************************************************************************
;
;       Messages_Init - Initialisation entry
;

Messages_Init ENTRY

        BL      configure_test
        SWI     XResourceFS_RegisterFiles

        ChkKernelVersion

        EXITS   ; OSS ignore errors (starts on Service_ResourceFSStarting)


; *****************************************************************************
;
;       Messages_Die - Die entry
;

Messages_Die ENTRY

        LDR     R0, [R12]
        SWI     XResourceFS_DeregisterFiles
        MOV     lr, #0
        STR     lr, [r12]

        EXIT

; *****************************************************************************
;
;       Messages_Service - Main entry point for services
;
; in:   R1 = service reason code
;       R2 = sub reason code
;       R3-R5 parameters
;
; out:  R1 = 0 if we claimed it
;       R2 preserved
;       R3-R5 = ???
;

Messages_Service ROUT

        Debug   xx,"Messages_Service:",R1

        TEQ     R1, #Service_ResourceFSStarting
        MOVNES  PC, LR

   ;;   LDR     R12, [R12]     ;; not actually required in this case

; In    R2 -> address inside ResourceFS module to call
;       R3 = workspace pointer for module
; Out   R2 called with R0 -> files, R3 -> workspace

svc_desktopstarting ENTRY "R0-R5"

        BL      configure_test
        MOV     LR, PC                          ; get return address
        MOV     PC, R2                          ; R2 = address to call

        EXITS

; *****************************************************************************

        MACRO
$lab    MyDesk  $name, $mname
        [ "$mname" = ""
$lab    ResourceFile Messages.$name, Resources.$name
        |
$lab    ResourceFile Messages.$name, Resources.$mname
        ]
        MEND

        MACRO
$lab    MyApps  $name, $mname
        [ "$mname" = ""
$lab    ResourceFile Apps.$name, Apps.!$name
        |
$lab    ResourceFile Apps.$name, Apps.!$mname
        ]
        MEND

Messages
        MyDesk  Configure.Messages
        MyDesk  Configure.Templates
        MyApps  Configure.!Help
        MyApps  Configure.ROM!Boot, Configure.!Boot
        MyApps  Configure.ROM!Run, Configure.!Run
NoConfigureMessages
        MyDesk  ADFS.Messages
        MyDesk  ADFSFiler.Messages
        MyDesk  ADFSFiler.Templates
        MyApps  Alarm.!Boot
        MyApps  Alarm.!Help
        MyApps  Alarm.!Run
        MyDesk  Alarm.!RunLink
        MyDesk  Alarm.Messages
        MyDesk  Alarm.Templates
        MyDesk  ARM3.Messages
        MyDesk  Buffers.Messages
        MyApps  Calc.!Help
        MyApps  Calc.!Run
        MyDesk  Calc.!RunLink
        MyDesk  Calc.Messages
        MyDesk  Calc.Templates
        MyApps  Chars.!Help
        MyApps  Chars.!Run
        MyDesk  Chars.!RunLink
        MyDesk  Chars.Messages
        MyDesk  Chars.Templates
        MyDesk  Clib.Messages
        MyDesk  Colours.Messages
        MyDesk  Compress.Messages, Squash.Messages
        MyDesk  Debugger.Messages
        MyDesk  Desktop.Messages
        MyDesk  DeviceFS.Messages
        MyDesk  DOSFS.Messages
        MyApps  Draw.ROM!Boot, Draw.!Boot
        MyApps  Draw.!Help
        MyApps  Draw.ROM!Run, Draw.!Run
        MyDesk  AppDraw.Messages
        MyDesk  AppDraw.Templates
        MyDesk  Draw.Messages
        MyDesk  Econet.Messages
        MyApps  Edit.ROM!Boot, Edit.!Boot
        MyApps  Edit.!Help
        MyApps  Edit.ROM!Run, Edit.!Run
        MyDesk  Edit.Messages
        MyDesk  Edit.Templates
        MyDesk  FileCore.Messages
        MyDesk  FileSwitch.Messages
        MyDesk  Filer.Messages
        MyDesk  Filer.Templates
        MyDesk  FilerAct.Messages
        MyDesk  FilerAct.Templates
        MyDesk  Fonts.Messages
        MyDesk  FPEmulator.Messages
        MyDesk  Free.Messages
        MyDesk  Free.Templates
        MyDesk  Global.Messages
        MyApps  Help.!Help
        MyApps  Help.!Run
        MyDesk  Help.!RunLink
        MyDesk  Help.Messages
        MyDesk  Help.Templates
        MyDesk  IIC.Messages
        MyDesk  Inter.Messages, Internatio.Messages
        MyDesk  Joystick.Messages
        MyDesk  Kernel.Messages
        MyDesk  MsgTrans.Messages
        MyDesk  NetFiler.Messages
        MyDesk  NetFiler.Templates
        MyDesk  NetFS.Messages
        MyDesk  NetPrint.Messages
        MyApps  Paint.ROM!Boot, Paint.!Boot
        MyApps  Paint.!Help
        MyApps  Paint.ROM!Run, Paint.!Run
        MyDesk  Paint.Messages
        MyDesk  Paint.Templates
        MyDesk  Palette.Messages
        MyDesk  Palette.Templates
        MyDesk  Parallel.Messages
        MyDesk  PDrivers.Messages
        MyDesk  Percussion.Messages
        MyDesk  Pinboard.Messages
        MyDesk  Pinboard.Templates
        MyDesk  PipeFS.Messages
        MyDesk  Podule.Messages
        MyDesk  Portable.Messages
        MyDesk  Printers.!RunLink
        MyDesk  Printers.Messages
        MyDesk  Printers.Templates
        MyDesk  RAMFS.Messages
        MyDesk  RAMFSFiler.Messages
        MyDesk  ResFiler.Messages
        MyDesk  ResourceFS.Messages
        MyDesk  RISC_OSLib.Messages
        MyDesk  RTCAdjust.Messages 
        MyDesk  Serial.Messages
        MyDesk  ShellCLI.Messages
        MyDesk  StringLib.Messages
        MyDesk  Sound0.Messages, SoundDMA.Messages
        MyDesk  Sound1.Messages, SoundChann.Messages
        MyDesk  Sound2.Messages, SoundSched.Messages
        MyDesk  SprExtend.Messages
        MyDesk  SpriteUtil.Messages
        MyDesk  Switcher.Messages
        MyDesk  Switcher.Templates
        MyDesk  SystemDevs.Messages
        MyDesk  TaskWindow.Messages
        MyDesk  TerrMgr.Messages
        MyDesk  UK.Messages
        MyDesk  WaveSynth.Messages
        MyDesk  Wimp.Messages
        MyDesk  Wimp.Templates

        DCD     0

      [ debug
        InsertNDRDebugRoutines
      ]

        END
