Commits (4)
  • Jeffrey Lee's avatar
    Document the build options · c2f5455f
    Jeffrey Lee authored
    Detail:
      s/Taskman - Add comments for the different build switches, so it's more obvious what they do. Remove a couple of unreferenced switches.
    Admin:
      Resulting binary unchanged
    
    
    Version 0.80. Not tagged
    c2f5455f
  • ROOL's avatar
    Use OsByte header · 6e0410af
    ROOL authored
    Detail:
      11 local definitions of OsBytes replaced with those from the central headers.
    Admin:
      Built as binary identical.
    6e0410af
  • ROOL's avatar
    Build fix · e4e748ae
    ROOL authored
    Detail:
      ADR->ADRL for standalone builds, such as Disc or CTools environment.
    e4e748ae
  • Richard Coleman's avatar
    Fix for Escape return registers on OS_Byte 129 · 230e487b
    Richard Coleman authored
    Detail:
      Was checking EscPending (which had been set to 0 by RestoreEscape) rather than EscWasSet, and so the return results (R2=27 and C=1) of an Escape during OS_Byte 129 were lost, R2=0 and C=0 were instead returned.
    Admin:
      Fixes https://www.riscosopen.org/tracker/tickets/467
    
    Version 0.81. Tagged as 'TaskWindow-0_81'
    230e487b
;
; This file is automatically maintained by srccommit, do not edit manually.
; Last processed by srccommit version: 1.1.
;
GBLS Module_MajorVersion
GBLA Module_Version
......@@ -10,14 +9,12 @@
GBLS Module_ApplicationDate
GBLS Module_HelpVersion
GBLS Module_ComponentName
GBLS Module_ComponentPath
Module_MajorVersion SETS "0.80"
Module_Version SETA 80
Module_MajorVersion SETS "0.81"
Module_Version SETA 81
Module_MinorVersion SETS ""
Module_Date SETS "02 Jun 2017"
Module_ApplicationDate SETS "02-Jun-17"
Module_Date SETS "08 Jun 2019"
Module_ApplicationDate SETS "08-Jun-19"
Module_ComponentName SETS "TaskWindow"
Module_ComponentPath SETS "castle/RiscOS/Sources/Desktop/TaskWindow"
Module_FullVersion SETS "0.80"
Module_HelpVersion SETS "0.80 (02 Jun 2017)"
Module_FullVersion SETS "0.81"
Module_HelpVersion SETS "0.81 (08 Jun 2019)"
END
/* (0.80)
/* (0.81)
*
* This file is automatically maintained by srccommit, do not edit manually.
* Last processed by srccommit version: 1.1.
*
*/
#define Module_MajorVersion_CMHG 0.80
#define Module_MajorVersion_CMHG 0.81
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 02 Jun 2017
#define Module_Date_CMHG 08 Jun 2019
#define Module_MajorVersion "0.80"
#define Module_Version 80
#define Module_MajorVersion "0.81"
#define Module_Version 81
#define Module_MinorVersion ""
#define Module_Date "02 Jun 2017"
#define Module_Date "08 Jun 2019"
#define Module_ApplicationDate "02-Jun-17"
#define Module_ApplicationDate "08-Jun-19"
#define Module_ComponentName "TaskWindow"
#define Module_ComponentPath "castle/RiscOS/Sources/Desktop/TaskWindow"
#define Module_FullVersion "0.80"
#define Module_HelpVersion "0.80 (02 Jun 2017)"
#define Module_LibraryVersionInfo "0:80"
#define Module_FullVersion "0.81"
#define Module_HelpVersion "0.81 (08 Jun 2019)"
#define Module_LibraryVersionInfo "0:81"
......@@ -33,6 +33,7 @@
GET Hdr:MsgTrans
GET Hdr:FPEmulator
GET Hdr:PublicWS
GET Hdr:OsBytes
GET Hdr:OSRSI6
GET Hdr:OSMisc
GET VersionASM
......@@ -118,71 +119,64 @@ SASTMhatbroken SETL {TRUE} :LAND: StrongARM
GBLL DebugStart
DebugStart SETL {FALSE}
GBLL FixDomain
GBLL FixDomain ; check DomainId (active Wimp task id) when deciding whether we should be active
FixDomain SETL {TRUE}
GBLL FixControl
FixControl SETL {TRUE}
GBLL FixControl ; true: -ctrl blocks VDU sequences
FixControl SETL {TRUE} ; false: -ctrl blocks on a per-character basis
GBLL FixReportName ; true if task name used for Wimp_ReportError
FixReportName SETL {TRUE} ; false if command string used
GBLL FixRedirection
GBLL FixRedirection ; true: save & restore OS_ChangeRedirection handles
FixRedirection SETL {TRUE} ; NB: SWI not known overwrites GetEnv buffer!
GBLL FixSpool
GBLL FixSpool ; true: save & restore *Spool handle
FixSpool SETL {TRUE}
GET Messages.s
GBLL TerminateAndStayResident
TerminateAndStayResident SETL {TRUE}
GBLL FixNDR
FixNDR SETL {TRUE}
GBLL checkingcallback
GBLL checkingcallback ; true: save pending OS_CallBack state
checkingcallback SETL {TRUE}
GBLL resetingcallback
GBLL resetingcallback ; true: delay death of task until it has no pending OS_CallBack's
resetingcallback SETL {TRUE}
GBLL chainingcallback
GBLL chainingcallback ; true: restore pending OS_CallBack state
chainingcallback SETL {TRUE}
GBLL Multiple
Multiple SETL {TRUE} ; TRUE allows multiple instantiation
; FALSE disallows multiple instantiation
GBLL RealEscape
RealEscape SETL {FALSE} ; TRUE allows escape to be enabled within task module
; FALSE simulates it
RealEscape SETL {FALSE} ; TRUE allows escape to be enabled within task module
; FALSE simulates it
GBLL EmulateEscapeChar
GBLL EmulateEscapeChar ; true: Emulate OS_Byte 229 (escape key enable/disable)
EmulateEscapeChar SETL {TRUE}
GBLL Preempt ; TRUE allows preemption, FALSE disables it
GBLL Preempt ; TRUE enables VSync event (iff UseTickerV is FALSE), FALSE doesn't (in the hope that that will prevent preemption)
Preempt SETL {TRUE}
GBLL FPErrorHandling
FPErrorHandling SETL {FALSE} ; FP error in Wimp Poll is fatal anyway
GBLL FPErrorHandling ; true: try and pass errors encountered during Wimp_Poll (presumed to be async FP errors) onto the task's error handler
FPErrorHandling SETL {FALSE} ; FP error in Wimp Poll is fatal anyway
GBLL UseFPPoll
GBLL UseFPPoll ; true: Preserve FPA registers when polling Wimp (via Wimp_Poll flag)
UseFPPoll SETL {TRUE}
GBLL DoingSwi
GBLL DoingSwi ; true: provide our own OS_GetEnv, OS_WriteEnv implementations. Also sit on WordV to work around FileSwitch being naughty and not using OS_WriteEnv.
DoingSwi SETL {TRUE}
GBLL UseInCallBack
GBLL UseInCallBack ; true: don't count time spent within our callback handler as contributing to the task's time slice
UseInCallBack SETL {FALSE}
GBLL UseGotCallBack
GBLL UseGotCallBack ; true: use GotCallBack to track whether we've saved the task's callback handler
UseGotCallBack SETL {FALSE}
GBLL PollIdleHandling
GBLL PollIdleHandling ; true: INKEY with timeout uses Wimp_PollIdle instead of Wimp_Poll
PollIdleHandling SETL {TRUE}
GBLL NiceNess
GBLL NiceNess ; true: -nice option available
NiceNess SETL {TRUE}
[ :LNOT: :DEF: standalone
......@@ -194,8 +188,8 @@ standalone SETL {FALSE} ; Build-in Messages file and i/f to Reso
international_help SETL {TRUE} ; Default to RISC OS 3.60+ internationalisation
]
GBLL UseTickerV
UseTickerV SETL {TRUE}
GBLL UseTickerV ; true: TickerV used for scheduling
UseTickerV SETL {TRUE} ; false: VSync event used for scheduling
GBLA WimpVersion
WimpVersion SETA 300
......@@ -243,20 +237,8 @@ CheckSum SETL {FALSE}
; **************************************************************************
;
; Byte numbers
;
EventDisable * 13
EventEnable * 14
Inkey * &81
EscapeSet * 125
EscapeClear * 124
EscapeAck * 126
ReadExec * &C6
ReadSpool * &C7
ReadFnKey * 221
EscapeChar * 229
EscapeSide * 230
EventCount * 10
;
; Characters
;
......@@ -265,7 +247,6 @@ CR * 13
LF * 10
HSP * 31 ; hard space
Esc * 27
EventCount * 10
; *********************** Module code starts here *****************************
......@@ -1763,8 +1744,8 @@ inittask ROUT
;
; Now we should start up the application proper
;
MOV r0, #EscapeChar ; Now enable Escape Key
MOV r1, #0
MOV r0, #OsByte_RW_EscapeKeyEffects
MOV r1, #0 ; Now enable Escape Key
STRB r1, EscapeDisable
[ RealEscape
MOV r2, #0 ; Overwrite on task allowed escape generation
......@@ -1779,7 +1760,7 @@ inittask ROUT
|
LDR r0, NextBlock
TEQ r0, #0
MOVEQ r0, #EventEnable
MOVEQ r0, #OsByte_EnableEvent
MOVEQ r1, #Event_VSync
SWIEQ OS_Byte ; Enable VSync event
]
......@@ -2309,7 +2290,7 @@ Code_NewCommand
ADR r4, ReadLineBuffer ; r4 -> command to execute
BCC Code_CommandLoop ; Try next star command if not escape
MOV r0, #EscapeAck ; Acknowledge escape
MOV r0, #OsByte_AcknowledgeEscape
SWI OS_Byte
SWI OS_NewLine
MOV r0, #0
......@@ -2344,8 +2325,8 @@ star_prompt
MOV r14, #"b"
STR r14, InPollWimpFn
]
MOV r0, #EscapeChar ; Now reset Escape enable
LDRB r1, TaskEscape
MOV r0, #OsByte_RW_EscapeKeyEffects
LDRB r1, TaskEscape ; Now reset Escape enable
MOV r2, #0
SWI OS_Byte
;
......@@ -2435,7 +2416,7 @@ star_prompt
BNE %f40
[ UseTickerV
|
MOV r0, #EventDisable
MOV r0, #OsByte_DisableEvent
MOV r1, #Event_VSync
SWI OS_Byte ; Stop VSync
]
......@@ -2455,7 +2436,7 @@ star_prompt
STRNE r0, GotUpCallV
LDRNE r2, GlobalWS
MOVNE r0, #UpCallV
ADRNE r1, MyUpCallV
ADRNEL r1, MyUpCallV
SWINE OS_Release
LDR r0, GotRdchV
......@@ -2875,7 +2856,7 @@ notcontrol
; also all registers must be on the SVC stack, to avoid reentrancy problems
;
[ FixSpool
MOV r0, #ReadSpool
MOV r0, #OsByte_RW_SpoolHandle
MOV r1, #0
MOV r2, #&FF ; just read handle without altering it
SWI OS_Byte
......@@ -2895,7 +2876,7 @@ notcontrol
Pull "r14, pc" ; claim - 32-bit mode
16
MOV r4, r0
MOV r0, #ReadSpool
MOV r0, #OsByte_RW_SpoolHandle
MOV r1, #0
MOV r2, #0
STRB r1, SpoolHandle
......@@ -3238,7 +3219,7 @@ MyRdchV ROUT
TEQ r0, #0
LDREQ r0, Moribund ; Or dying
TEQEQ r0, #0
MOVNE r0, #EscapeSet
MOVNE r0, #OsByte_SetEscape
STRNEB r0, EscPending ; If we're dying, return escape condition
CheckPointers
BNE %f30 ; Don't bother looking in buffer if so
......@@ -3314,11 +3295,11 @@ MyByteV ROUT
;
Push lr
SavePSR lr
TEQ r0, #Inkey
TEQ r0, #OsByte_INKEY
TSTEQ r2, #&80
TEQNE r0, #EscapeAck ; Is it escape acknowledge then?
TEQNE r0, #OsByte_AcknowledgeEscape
[ EmulateEscapeChar
TEQNE r0, #EscapeChar
TEQNE r0, #OsByte_RW_EscapeKeyEffects
]
BEQ %FT01
RestPSR lr,,f
......@@ -3336,10 +3317,10 @@ MyByteV ROUT
; stack now contains PSR, pass on LR, claim LR
CheckIn
TEQ r0, #EscapeAck
TEQ r0, #OsByte_AcknowledgeEscape
BEQ %f45 ; Handle escape acknowledge separately
[ EmulateEscapeChar
TEQ r0, #EscapeChar
TEQ r0, #OsByte_RW_EscapeKeyEffects
BEQ %f50 ; Handle escape allowed
]
Pull "r0,r14" ; Discard pass on LR
......@@ -3485,7 +3466,7 @@ MyByteV ROUT
CheckOut
LDRB r0, EscPending
LDRB r0, EscWasSet
TEQ r0, #0 ; See if we should return escape
ADR r0, VecSaveRegs
LDMIA r0, {r0-r13}
......@@ -3510,7 +3491,7 @@ MyByteV ROUT
BICEQ r14, r14, #C_bit ; clear C if needs be
ORRNE r14, r14, #C_bit ; set C if needs be
RestPSR r14
MOV r0, #Inkey
MOV r0, #OsByte_INKEY
Pull "pc" ; return to caller
42
......@@ -3520,7 +3501,7 @@ MyByteV ROUT
; .......................................................................
; EscapeAck - first see if escape exists
; AcknowledgeEscape - first see if escape exists
45
; stack now contains PSR, pass on LR, claim LR
......@@ -3532,7 +3513,7 @@ MyByteV ROUT
Pull "pc"
48
Push "lr"
MOV r0, #EscapeSide
MOV r0, #OsByte_RW_EscapeEffects
MOV r1, #0
MOV r2, #&ff
SWI OS_Byte ; See if side effects on at the moment
......@@ -4066,10 +4047,10 @@ SaveEscape ROUT
]
SWI OS_ReadEscapeState
MOVCC r0, #0 ; we don't have pending escape
MOVCS r0, #EscapeSet ; we do have
MOVCS r0, #OsByte_SetEscape ; we do have
STRB r0, EscPending
CheckPointers
MOVCS r0, #EscapeClear
MOVCS r0, #OsByte_ClearEscape
[ DebugExit
MOV r14, #"C"
STR r14, InPollWimpFn
......@@ -4078,8 +4059,8 @@ SaveEscape ROUT
]
SWICS OS_Byte ; clear condition if it exists
MOV r0, #EscapeChar ; now disable Escape Key
MOV r1, #1
MOV r0, #OsByte_RW_EscapeKeyEffects
MOV r1, #1 ; now disable Escape Key
MOV r2, #0
[ DebugExit
STRB r2, EscSem
......@@ -4106,7 +4087,7 @@ RestoreEscape ROUT
;
MOV r3, r14
SavePSR r4
MOV r0, #EscapeChar ; now disable/enable Escape Key
MOV r0, #OsByte_RW_EscapeKeyEffects
[ RealEscape
LDRB r1, EscapeDisable ; using the old value
|
......@@ -4115,7 +4096,7 @@ RestoreEscape ROUT
MOV r2, #0
SWI OS_Byte
LDRB r0, EscPending
CMP r0, #EscapeSet
CMP r0, #OsByte_SetEscape
STRB r0, EscWasSet
MOV r1, #0
STRB r1, EscPending
......@@ -4134,7 +4115,7 @@ ReadExecHandle
; Zero set <=> OS has exec file
;
Push "r2, lr"
MOV r0, #ReadExec
MOV r0, #OsByte_RW_ExecHandle
MOV r1, #0
MOV r2, #0
SWI OS_Byte ; Read and clear exec handle
......@@ -4167,7 +4148,7 @@ ReadSpoolHandle
; Zero set <=> OS has exec file
;
Push "r2, r14"
MOV r0, #ReadSpool
MOV r0, #OsByte_RW_SpoolHandle
MOV r1, #0
MOV r2, #0
SWI OS_Byte ; Read and clear spool handle
......@@ -4182,7 +4163,7 @@ WriteSpoolHandle
;
Push "r0-r3, lr"
SavePSR r3
MOV r0, #ReadSpool
MOV r0, #OsByte_RW_SpoolHandle
MOV r2, #0
SWI OS_Byte ; Write spool handle
RestPSR r3,,f
......@@ -4705,7 +4686,7 @@ Insert ROUT
TEQEQ r0, #Esc ; Is it Esc?
LDREQB r2, EscapeDisable ; Does appl want escape condition if so?
TEQEQ r2, #0
MOVEQ r2, #EscapeSet
MOVEQ r2, #OsByte_SetEscape
STREQB r2, EscPending ; Mark escape condition to be generated if so
CheckPointers
BEQ %f10
......@@ -4869,7 +4850,7 @@ GetKbInput0
AND r3, r4, #&70 ; Get section bits
EOR r3, r3, #&40 ; Get into right order
MOV r3, r3, LSR #4 ; And into bottom bits
ADD r0, r3, #ReadFnKey; The controlling OSByte
ADD r0, r3, #OsByte_RW_UseOfCode192To207 ; The controlling OSByte
MOV r1, #0
MOV r2, #&ff
SWI OS_Byte ; Read it
......@@ -5152,7 +5133,7 @@ ReadKeyStates ROUT
SavePSR r5
MOV r4, #7
10
ADD r0, r4, #ReadFnKey
ADD r0, r4, #OsByte_RW_UseOfCode192To207
MOV r1, #0
MOV r2, #&ff
SWI OS_Byte
......@@ -5178,7 +5159,7 @@ SetKeyStates ROUT
SavePSR r5
MOV r4, #7
10
ADD r0, r4, #ReadFnKey
ADD r0, r4, #OsByte_RW_UseOfCode192To207
LDRB r1, [r3, r4]
MOV r2, #0
SWI OS_Byte
......