Skip to content

Commit

Permalink
v1.25 baseline
Browse files Browse the repository at this point in the history
  • Loading branch information
mark-usher committed May 15, 2023
1 parent 5c03492 commit 99f1093
Show file tree
Hide file tree
Showing 33 changed files with 225 additions and 44 deletions.
Binary file removed Level3/Binary Files/FS3-124
Binary file not shown.
1 change: 0 additions & 1 deletion Level3/Binary Files/FS3-124.inf

This file was deleted.

Binary file removed Level3/Binary Files/FS3-124d
Binary file not shown.
1 change: 0 additions & 1 deletion Level3/Binary Files/FS3-124d.INF

This file was deleted.

Binary file removed Level3/Binary Files/FS3-124dp
Binary file not shown.
1 change: 0 additions & 1 deletion Level3/Binary Files/FS3-124dp.inf

This file was deleted.

Binary file removed Level3/Binary Files/FS3-124p
Binary file not shown.
1 change: 0 additions & 1 deletion Level3/Binary Files/FS3-124p.inf

This file was deleted.

Binary file not shown.
1 change: 1 addition & 0 deletions Level3/Binary Files/FS3-125dy.INF
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
$.FS3-125dy 00000000 00000000 000084BE 33
1 change: 0 additions & 1 deletion Level3/Binary Files/Original binary/FS3-124.INF

This file was deleted.

Binary file not shown.
Binary file removed Level3/Binary Files/Original binary/patched/FS3-124p
Binary file not shown.
1 change: 0 additions & 1 deletion Level3/Binary Files/Original binary/patched/FS3-124p.INF

This file was deleted.

Binary file removed Level3/Binary Files/Original binary/patched/PATCHFS
Binary file not shown.
1 change: 0 additions & 1 deletion Level3/Binary Files/Original binary/patched/PATCHFS.INF

This file was deleted.

1 change: 1 addition & 0 deletions Level3/Binary Files/patch/Y2KFS3
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Y2K Fix for Acorn Level 3 Fileserver ==================================== Date: 28-Dec-1998 - Version 1.00 for v0.92 Date: 20-Jan-2018 - Version 1.00 for v1.25 J.G.Harston - jgh@mdfs.net 70 Camm Street, Walkley, Sheffield, S6 3TRThese patches alter the Acorn Level 3 fileserver code to allow the use ofdates after 1996. This also allows the use of dates after 1999. In keepingwith the 'Short Acorn Era', any two-digit year 00 to 80 is defined asbeing 2000 to 2080. Any two-digit year from 81 to 99 is defined as being1981 to 1999.The patches alter FS3 version 0.90 and FS3 version 1.24. Before running, acopy of the FS code must be made, called FS3v092 or FS3v125. This can bedone with *MOVE FS FS3v092 or *MOVE FS FS3v125 on the Master.On all systems, with the 6502CoPro switched on, the following will createa copy of FS: *GO F800 *LOAD FS *SAVE FS3v092 400+86CE or *SAVE FS3v125 400+84BEOnce a copy is made, you can run Y2KFS3v92 or Y2KFS3v125 to patch it. Youshould also change one line of WFSInit to allow creation of new fileserverdisks after 1996 as follows:Change: 3310 X%=EVALz$:UNTILX%>=85:=(((X%-81)*4096)+(Y%*256)+z%)AND&FFFF to: 3310 X%=1900+EVALz$:X%=X%-100*(X%<81):UNTILY%+z%:=(((X%-81)*4096)+ (Y%*256)+z%+((X%-81)AND&F0)*2)AND&FFFFThe 'Short Acorn Era' defines years as a 7-bit offset from 1981, giving afull range of 1981 to 2108. As on startup only a single century range canbe entered the effective range is 1981 to 2080.The only parts of the fileserver that deal with dates in strings areentering the date at startup, displaying the status line and displayingfile information with *INFO. In all other parts, the date is stored as abinary 7-bit offset from 1981.The full list of changes is as follows:* Version 0.90 is now version 0.92* Version 1.24 is now version 1.25* Version 0.92 allows startup entry of years from 1981 to 2080* Version 1.25 reads the startup date from the RTC with OSWORD 14* Status line date displays years after 1996 correctly* Years after 1996 in *INFO reports are displayed correctly* Dates are displayed as dd/mm/yy instead of dd:mm:yy.Also included is the program StartFS3. Running this with FSv092 will readthe date from any Real Time Clock present, and start up the fileserver andenter the date automatically, leaving the user to enter the number ofdrives and the number of stations.
Expand Down
1 change: 1 addition & 0 deletions Level3/Binary Files/patch/Y2KFS3.inf
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Y2KFS3 00000000 00000000 0000096D 19 CRC32=01E3B062
Binary file added Level3/Binary Files/patch/Y2KFS3v125
Binary file not shown.
1 change: 1 addition & 0 deletions Level3/Binary Files/patch/Y2KFS3v125.inf
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Y2KFS3v125 00000800 00008023 00000C32 19 CRC32=1AD37732
54 changes: 45 additions & 9 deletions Level3/Change Log.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,42 @@
Version 1.25
============

Date - 20 Jan 2018

Patch for Acorn Level3 File Server to allow the use of dates after 1996. This
also allows the use of dates after 1999. In keeping with the 'Short Acorn Era',
any two-digit year 00 to 80 is defined as being 2000 to 2080. Any two-digit
year from 81 to 99 is defined as being 1981 to 1999.

Binary Files (* denotes the official ACORN released version)
============
FS3-125 - Assembler options: DONGLE=1 (absent)
FS3-125d - Assembler options: DONGLE=0 (present)


Comments
========
This is NOT the Acorn released v1.25. It is the Acorn released v1.24 with a
date fix patch applied.

This code has been created using the v1.24 source code and the BASIC patch
source code by J.G.Harston.

The code has been updated to include the fix as an assembly option in file
Uade01.
Y2KPAT * 0 ; no(=0) Apply the JGH Patch (=1)

Changes (from v1.24)
====================
Option for assembly with date fix (file Uade01)
The version number is now 1.25 (file Uade01)
Allows startup entry of years from 1981 to 2080 (file Uade04)
Status line date displays years after 1996 correctly (file Uade04)
Years after 1996 in *INFO reports are displayed correctly (file Uade0E)


-------------------------------------------------------------------------------

Version 1.24
============

Expand All @@ -11,20 +50,15 @@ include 1/2/12/15/26 June 1987, 1/9/24 July 1987, 8/18/24 Feb 1988 and

Binary Files (* denotes the official ACORN released version)
============
FS3-124 - Assembler options DONGLE absent, Pseudo directory symbols No
FS3-124d - Assembler options DONGLE present, Pseudo directory symbols No
FS3-124p - Assembler options DONGLE absent, Pseudo directory symbols Yes
* FS3-124dp - Assembler options DONGLE present, Pseudo directory symbols Yes
FS3-124 - Assembler options: DONGLE=1 (absent)
* FS3-124d - Assembler options: DONGLE=0 (present)


Comments
========
This code has been created using the v1.31 source code. Within that code there
are options for Lang English/Italian (added Feb 1987) and the Pseudo directory
symbols (%, &, @). Pseudo directory symbols were definately available in v1.24,
but as the comment for the switch option is dated 1988, it is possible that it
was hard coded and later modified to be an option at assembly time. The switch
has been left in.
symbols (%, &, @). Pseudo directory symbols were present in v1.24, but later a switch option was added and is not present in later versions.

Changes (from v1.06)
====================
Expand Down Expand Up @@ -333,6 +367,8 @@ Date - estimated. May-Oct 1985 (possibly 4 May from the pre-release version).
That would date the code to Oct 1985. There are changes labelled
15/12/85 that are not in this binary. The assembler directive file FSASM
has the comment updated by Glenn 8/5/85.
Level3 Fileserver was first included in the Technomatic advert in Acorn
User magazine issue of April 1985.

Binary Files (* denotes the official ACORN released version)
============
Expand All @@ -341,7 +377,7 @@ Binary Files (* denotes the official ACORN released version)

Comments
========
There are two Trace debug pieces of code in the final binary although the
There are two trace debug pieces of code in the final binary although the
DEBUG directive is set to 0 (file Uade14) and the binary performs a simple RTS
when it is called.

Expand Down
11 changes: 9 additions & 2 deletions Level3/SRC/L3/Uade01
Original file line number Diff line number Diff line change
Expand Up @@ -57,16 +57,23 @@ Sys * &FF ;flags to indicate which type of FS
Ztime * &FF
FS * &FF
Dongle * 0 ;Real Time Clock present(=0) absent(=1)
Y2KPAT * 0 ; no(=0) Apply the JGH Patch (=1)

Debug * 0 ;Make this +ve for debug letters

Verla * "2" ;Version level .... two digits
Verlb * "4" ;Range 0-99
; Verlb * "4" ;Range 0-99

[ Y2KPAT =1
VERLB * "5" ; New version number
|
VERLB * "4"
]

Lang * English
Mask * &3F ;protection state (&3F for service system)
Yes * 0
No * &FFFF
Pseudods * Yes ; **18/2/88** Pseudo-directory (%, &, @) switch

;*** MODULE CODE NAMES ***

Expand Down
2 changes: 0 additions & 2 deletions Level3/SRC/L3/Uade02
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,7 @@ UTUSID # MAXUNM+1 ;START OF USERID
UTDISC # 2 ;CURRENTLY SELECTED DISC NUMBER
UTPRIV # 1 ;SYSTEM PRIVILEGE & INUSE FLAG
UTHSLD # 1 ;HANDLE FOR SELECTED DIR
[ Pseudods = Yes
UTHUFD # 1 ;**26/6/87** handle for logon directory
]
UTHNDB # 1 ;BYTE INDICATING HANDLES IN USE PER MC
UTFREE # UTFRLN ;User disc space allocation ** 2/10/84 **
UTENSZ * @ ;SIZE OF A USERTB ENTRY
Expand Down
159 changes: 154 additions & 5 deletions Level3/SRC/L3/Uade04
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,12 @@ PRNTDG ROUT
BEQ #20
15 JSR #40
JMP #30
20 LDAIM " "
20
[ Y2KPAT =1
LDAIM "0" ; Display leading zeros
|
LDAIM " "
]
JSR OSWRCH
30 PLA
40 CLC
Expand Down Expand Up @@ -685,11 +690,19 @@ DWIND ;set window for printing the date in
RTS

YR ROUT
[ Y2KPAT =1
JSR GetYear ; Display status line year correctly
NOP
NOP
NOP
NOP
|
LDA DATE+1
LSRA
LSRA
LSRA
LSRA
]
CLC
ADCIM BASEYR
PHA
Expand All @@ -701,8 +714,11 @@ YR ROUT
20
JSR PRNTDG
PLA
[ Y2KPAT =1
JMP OutYear ; Display status line year correctly
|
JMP PRNTDG

]

MONTH ROUT
LDA DATE+1
Expand Down Expand Up @@ -750,9 +766,16 @@ MTAB2


DATE1 ROUT
[ Y2KPAT =1
LDA DATE ; Displays status line date correctly
ANDIM 31
JSR xOutDate
NOP
|
LDA DATE
JSR PRNTDG
LDA DATE
]
CMPIM 10
BCC #20
SBCIM 10
Expand Down Expand Up @@ -822,6 +845,46 @@ SETYR ASLA


SETTME ROUT
[ Y2KPAT =1
RTS ; Never write to RTC
OutYear
CMPIM 100
BCC xOutDate
SBCIM 100
xOutDate
PHA
JSR PRNTDG
PLA
RTS
GetYear
LDA DATE
ANDIM &E0
LSRA
STA tmp
LDA DATE+1
LSRA
LSRA
LSRA
LSRA
ORA tmp
RTS
PutDate
ANDIM 31
BPL PutDec
PutYear
PHA
LDA TDATE
ANDIM &E0
LSRA
STA tmp
PLA
ADC tmp
CMPIM 100
BCC PutDec
SBCIM 100
PutDec
JMP OUTDEC
|
LDA MUNTHS
LSRA
LSRA
Expand Down Expand Up @@ -853,7 +916,8 @@ SETTM1 LDA MUNTHS
JSR #95

JMP SCDATE ; SHOW DATE ON SCREEN

]

SETMFX ; FIX MONTH AND FLAG ON SET TIME
PHA ; stack month and year
ANDIM &0F ; Mask MONTH
Expand Down Expand Up @@ -919,7 +983,90 @@ PRTIM2 JSR DWIND ;set up window
JMP MWIND ;reset window and return

RTC ;check that the read time clock is present
[ Y2KPAT =1
JMP RDDONG ; Jump straight to read RTC
ConvBCD
TXA
PHA
LDAAX blk
LDXIM &FF
SEC
SED
20
INX
SBCIM 1
BCS #20
CLD
TXA
STAAY STKPTR
PLA
TAX
LDAAY STKPTR
DEX
INY
RTS
NOP
RTCX
RTS

RDDONG ; Read RTC, use OSWORD 14
LDXIM 0
STX blk+2
STX blk+1
INX
STX blk+0
LDXIM :LSB:blk
LDYIM :MSB:blk
LDAIM 14
JSR OSWORD
LDA blk+1
ORA blk+2
BNE #30
LDAIM &FF
RTS ; &FF=NoClock
30
LDXIM 6
LDYIM &93 ; X=>OSWORD 14 block, Y=>FS date variables
JSR ConvBCD
JSR ConvBCD
JSR ConvBCD ; seconds, minutes, hours
DEX
JSR ConvBCD
STA DATE ; date
JSR ConvBCD
STA tmp
DEY ; month
JSR ConvBCD
SEC
SBCIM 81 ; year-1981
BCS #40
ADCIM 100 ; year>1999
40 PHA
ASLA
ASLA
ASLA
ASLA
ORA tmp
STA MUNTHS
STA DATE+1 ; yearLo+month
PLA
ASLA
ANDIM &E0
ORA DAYS
STA DAYS
STA DATE ; yearHi+date
LDAIM 0
RTS ; 00=OK
tmp
= 0
blk
= 0, 0, 0, 0, 0, 0, 0, 0, 0
= "ARESPA"
= "RESPARESPARESPAR"
= "ESPARESPARESPARE"
= "SPARESPARE"
FINISH ROUT
|
LDXIM 7
LDAIM &71
JSR #95 ;write the minutes alarm register
Expand All @@ -938,8 +1085,8 @@ RTC ;check that the read time clock is present
CMPIM 0
RTCX RTS ;returns EQ if dongle present


RDDONG

LDXIM 6 ;read minutes
JSR #00
JSR #70
Expand Down Expand Up @@ -1020,6 +1167,8 @@ LHFXNX
LDAIM 29 ; Must be 29th
BNE RFIXEX ; Re Write DONGLE (ALWAYS)



LHNFEB
LDXIM 4
LHCHKL CMPAX MW30D - 1
Expand All @@ -1036,7 +1185,7 @@ RFIXEX
RFIXX2
JSR CHKDTE
JMP SETTME

]

00 PHP ;same as POKE
TXA
Expand Down
2 changes: 0 additions & 2 deletions Level3/SRC/L3/Uade06
Original file line number Diff line number Diff line change
Expand Up @@ -913,10 +913,8 @@ MAKHDS ROUT
BNE #20

STA UMHUFD ;make this the handle for the UFD
[ Pseudods = Yes
LDYIM UTHUFD ;**26/6/87** and store in user table
STAIY USTPTR
]

JSR OPEN ;now get a handle for selected dir
BEQ #10
Expand Down
Loading

0 comments on commit 99f1093

Please sign in to comment.