The GitLab server is undergoing maintenance from 1.30pm BST today and will be unavailable at times

Commit df05a7c7 authored by Kevin Bracey's avatar Kevin Bracey
Browse files

32-bit compatible.

Version 0.37. Tagged as 'Obey-0_37'
parent 9e72fbb5
;
; This file is automatically maintained by srccommit, do not edit manually.
;
GBLS Module_MajorVersion
GBLA Module_Version
GBLS Module_MinorVersion
GBLS Module_Date
GBLS Module_FullVersion
Module_MajorVersion SETS "0.36"
Module_Version SETA 36
Module_MinorVersion SETS ""
Module_Date SETS "05 Aug 1999"
Module_FullVersion SETS "0.36"
GBLS Module_MajorVersion
GBLA Module_Version
GBLS Module_MinorVersion
GBLS Module_Date
GBLS Module_FullVersion
Module_MajorVersion SETS "0.37"
Module_Version SETA 37
Module_MinorVersion SETS ""
Module_Date SETS "12 May 2000"
Module_FullVersion SETS "0.37"
END
/* (0.36)
/* (0.37)
*
* This file is automatically maintained by srccommit, do not edit manually.
*
*/
#define Module_MajorVersion_CMHG 0.36
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 05 Aug 1999
#define Module_MajorVersion_CMHG 0.37
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 12 May 2000
#define Module_MajorVersion "0.36"
#define Module_Version 36
#define Module_MinorVersion ""
#define Module_Date "05 Aug 1999"
#define Module_MajorVersion "0.37"
#define Module_Version 37
#define Module_MinorVersion ""
#define Module_Date "12 May 2000"
#define Module_FullVersion "0.36"
#define Module_FullVersion "0.37"
......@@ -59,6 +59,7 @@ Module_BaseAddr
GET hdr:ModHand
GET hdr:Services
GET hdr:UpCall
GET hdr:Proc
GET hdr:FSNumbers
GET hdr:HighFSI
......@@ -118,6 +119,9 @@ LongPNameSize * 512 ;long pathname length (for obey$dir)
|
DCD Messages_File- Module_BaseAddr
]
[ :LNOT: No32bitCode
DCD Module_Flags- Module_BaseAddr
]
Title DCB "Obey",0
Helpstr DCB "Obey",9,9,"$Module_MajorVersion ($Module_Date)"
......@@ -130,6 +134,11 @@ Helpstr DCB "Obey",9,9,"$Module_MajorVersion ($Module_Date)"
DCB 0
ALIGN
[ :LNOT: No32bitCode
Module_Flags
DCD ModuleFlag_32bit
]
Helptable
[ debug
Command Obey,255,0,0 ; *Obey cancels the current obey file
......@@ -220,7 +229,7 @@ svc_reset
BNE %BT01
MOV R14,#0
STR R14,[R12]
Pull "R0-R2,R11,PC",,^
Pull "R0-R2,R11,PC"
;.............................................................................
......@@ -237,7 +246,7 @@ Service
MOV R0,R0 ;magic instruction for Ursula format
TEQ R1,#Service_Reset
TEQNE R1,#Service_NewApplication
MOVNES PC,LR
MOVNE PC,LR
UrsulaService
TEQ R1,#Service_Reset
BEQ svc_reset
......@@ -327,15 +336,15 @@ UrsulaService
upcallhandler
TEQ r0, #UpCall_NewApplication
MOVNES pc, lr
MOVNE pc, lr
Push "r0-r3,r11,lr"
Debug xx,"UpCall_NewApplication"
BL FindExit ; assume we have error and exit handlers
TEQ r11, #0
Pull "r0-r3,r11,pc", EQ, ^
CMP r11, #0
Pull "r0-r3,r11,pc", EQ
Debug xx,"Removing handlers temporarily"
......@@ -353,7 +362,8 @@ upcallhandler
MOV r14, #-1 ; mark as temporarily removed
STR r14, [r11, #wk_oldquitR1]
Pull "r0-r3,r11,pc",,^
CLRV
Pull "r0-r3,r11,pc"
;.............................................................................
......@@ -448,7 +458,7 @@ errorhandler ROUT
Debug xx, "Error handler returning..."
Debug xx,"r10 out of error handler ",r10
Pull "r11,pc",,^ ; Finished
Pull "r11,pc" ; Finished
exithandler ROUT ; called when "*Obey" executed
Push "r11,lr"
......@@ -460,7 +470,8 @@ exithandler ROUT ; called when "*Obey" executed
BLNE exit ; Delete it if so
BNE %b10 ; Loop until no current block
Pull "r11,pc", , ^ ; Finished
CLRV
Pull "r11,pc" ; Finished
;-----------------------------------------------------------------------------
;
......@@ -480,9 +491,9 @@ exithandler ROUT ; called when "*Obey" executed
exit ROUT
Push "R0-R3,LR"
EntryS "R0-R3"
BL exitsub
Pull "R0-R3,PC",,^ ; ignore errors
EXITS ; ignore errors
; -------------------------------------------------------------------------------
;
......@@ -498,7 +509,7 @@ exit ROUT
exitsub ROUT
TEQ r11, #0
MOVEQS pc, lr
MOVEQ pc, lr
Push "lr"
;
Debug xx,"Killing Obey block:",R11
......@@ -1035,7 +1046,12 @@ Block_Overflow_Error
; Now check if I own the current quit handler
;
returntocaller
[ No32bitCode
Push "r0-r3,pc" ; preserve flags (V bit in particular)
|
mrs ,r14, CPSR
Push "r0-r3,r14"
]
MOV r0, #ExitHandler
MOV r1, #0 ; No change
MOV r2, #0
......@@ -1045,7 +1061,11 @@ returntocaller
TEQ r1, r11 ; See if it's mine
Pull "r0-r3,r7"
BLEQ exit ; close file etc. if so
[ No32bitCode
TEQP r7,#0 ; restore V bit
|
msr ,CPSR_f, r7
]
Pull "R7-R11,PC" ; return to caller (I hope!)
[ internat
......@@ -1298,8 +1318,8 @@ get_eof ROUT
MOVLO R2,#0 ; if not EOF, ie. PTR<>EXT then return R2=0
MOVHS R2, #-1 ; if EOF then return r2<>0. Note 0 size files!
;
Pull "LR"
BICS PC,LR,#V_bit ; ensure that V clear on return
CLRV ; ensure that V clear on return
Pull "PC"
;
[ internat
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment