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

More adjustments to >8MB POST situation.

Added a missing ALIGN before ts_ROM_dvectors.

Version 4.78. Tagged as 'Kernel-4_78'
parent a80f2602
......@@ -268,6 +268,7 @@ ts_himsg
= ("0" + (TS_CHANGES :MOD: 10))
= 0
ALIGN
;
; These vector tables permit access by the external (or downloaded) test
......
......@@ -53,6 +53,50 @@
;
MACRO
TestAdapterLocation $reg
;
; Load up the registers for the test interface communication.
; On exit: R0 = 0
; R1 corrupted
; $reg -> zero word in 8-16MB space we can read to communicate with
; test box
; If the ROM is >8M, we will use the fixed zero word in the ROM trailer.
; If not, we use the old scheme (in case someone is using an old ROM joiner
; that doesn't write the correct trailer.) Because the ROM is >8M, the
; trailer will be at an address with A23 set, as desired.
;
; KJB - note I haven't kept the purity of the minimal instruction set -
; I feel that it is unlikely that there ever will be a processor test,
; and if there is, then this won't be the only place where the purity
; has been broken...
ASSERT ts_Alias_bits = 8*1024*1024
MOV r0,#0
LDR r1,[r0, #ts_ROMSIZE] ; size of ROM in bank 0
CMP r1,#8*1024*1024
SUBHI $reg,r1,#20 ; zero word is at end-20
BHI %FT05
; Point r2 at a word which contains 0 in 0-8MB physical space.
; Note that this code doesn't cope with the case where it can't find a zero
; word anywhere in the whole ROM. I don't think that this is a problem.
MOV r0, #0 ; expected below
MOV $reg, #0 ; start of physical space
01
LDR r1, [$reg, #4]!
TEQ r1, r0 ; is it zero?
BNE %BT01
ADD $reg, $reg, #ts_Alias_bits ; point to zero word in ghost
05
MEND
;
; This section determines whether the test interface adapter exists, and
; what variety is fitted (dumb, display or external)
......@@ -84,42 +128,9 @@ ts_GetCommand ROUT
ROUT
;
; Load up the registers for the test interface communication.
;
; If the ROM is >8M, we will use the fixed zero word in the ROM trailer.
; If not, we use the old scheme (in case someone is using an old ROM joiner
; that doesn't write the correct trailer.) Because the ROM is >8M, the
; trailer will be at an address with A23 set, as desired.
;
; KJB - note I haven't kept the purity of the minimal instruction set -
; I feel that it is unlikely that there ever will be a processor test,
; and if there is, then this won't be the only place where the purity
; has been broken...
ASSERT ts_Alias_bits = 8*1024*1024
MOV r0,#0
LDR r1,[r0, #ts_ROMSIZE] ; size of ROM in bank 0
CMP r1,#8*1024*1024
SUBHI r2,r1,#20 ; zero word is at end-20
BHI %42
; Point r2 at a word which contains 0 in 0-8MB physical space.
; Note that this code doesn't cope with the case where it can't find a zero
; word anywhere in the whole ROM. I don't think that this is a problem.
MOV r0, #0 ; expected below
MOV r2, #0 ; start of physical space
01
LDR r1, [r2, #4]!
TEQ r1, r0 ; is it zero?
BNE %01
TestAdapterLocation r2 ; r0 = 0, r1 corrupted
ADD r2, r2, #ts_Alias_bits ; point to zero word in ghost
42
MOV r1, #-1 ; expected below
MOV r1, #-1 ; expected below
04
; do an RD operation (four strobes) to ensure interface cleared
......@@ -635,20 +646,7 @@ ts_PosText ROUT
;
ts_SendLCDCmd
; Point r2 at a word which contains 0 in 0-8MB physical space.
; If this word still reads as 0 when its ghost/alias is read from 8-16MB space
; (A23 set) then we don't have a test box, otherwise we do.
; Note that this code doesn't cope with the case where it can't find a zero
; word anywhere in the whole ROM. I don't think that this is a problem.
MOV r0, #0 ; ts_send_command_byte expects r0=0
MOV r2, #0 ; start of physical space
01
LDR r1, [r2, #4]!
TEQ r1, r0 ; is it zero?
BNE %01
ADD r2, r2, #ts_Alias_bits ; point to zero word in ghost
TestAdapterLocation r2 ; r0 = 0, r1 corrupted
04
; Wait - gap between successive WS attempts or successive bytes
......
......@@ -6,9 +6,9 @@
GBLS Module_MinorVersion
GBLS Module_Date
GBLS Module_FullVersion
Module_MajorVersion SETS "4.77"
Module_Version SETA 477
Module_MajorVersion SETS "4.78"
Module_Version SETA 478
Module_MinorVersion SETS ""
Module_Date SETS "04 May 1999"
Module_FullVersion SETS "4.77"
Module_Date SETS "06 May 1999"
Module_FullVersion SETS "4.78"
END
/* (4.77)
/* (4.78)
*
* This file is automatically maintained by srccommit, do not edit manually.
*
*/
#define Module_MajorVersion_CMHG 4.77
#define Module_MajorVersion_CMHG 4.78
#define Module_MinorVersion_CMHG
#define Module_Date_CMHG 04 May 1999
#define Module_Date_CMHG 06 May 1999
#define Module_MajorVersion "4.77"
#define Module_Version 477
#define Module_MajorVersion "4.78"
#define Module_Version 478
#define Module_MinorVersion ""
#define Module_Date "04 May 1999"
#define Module_Date "06 May 1999"
#define Module_FullVersion "4.77"
#define Module_FullVersion "4.78"
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