diff --git a/TestSrc/Begin b/TestSrc/Begin index 7ea144cc6e0fed8f1a8fbee915fd55adb42adc52..bbc46c57084755cb35e50aaa301b15229af362a5 100644 --- a/TestSrc/Begin +++ b/TestSrc/Begin @@ -122,6 +122,9 @@ DontShowProgressColours SETL {TRUE} :LAND: STB ; Do not show the progress colou ; Progress Colours will always be shown when using POST Box. ; Set to true for NC - Fault Report ANC-00159. + GBLL DontDoCMOSTest +DontDoCMOSTest SETL {TRUE} :LAND: STB + ts_Rom_bits * 21 ; Widest ROM address @@ -1089,6 +1092,9 @@ ts_IOEBtest ts_CMOStest + [ DontDoCMOSTest + B ts_IOinit + | ADR r4,%FT1 BL ts_SendText @@ -1264,6 +1270,8 @@ ts_CMOStest 25 B ts_IOinit + ] ; DontDoCMOSTest + LTORG ROUT ; diff --git a/VersionASM b/VersionASM index 507e62f6019938f918a9da89139faafa1af837a7..680eb02a4128b1eab379461e5859320def18697b 100644 --- a/VersionASM +++ b/VersionASM @@ -6,9 +6,9 @@ GBLS Module_MinorVersion GBLS Module_Date GBLS Module_FullVersion -Module_MajorVersion SETS "4.89" -Module_Version SETA 489 +Module_MajorVersion SETS "4.90" +Module_Version SETA 490 Module_MinorVersion SETS "" -Module_Date SETS "23 Sep 1999" -Module_FullVersion SETS "4.89" +Module_Date SETS "29 Sep 1999" +Module_FullVersion SETS "4.90" END diff --git a/VersionNum b/VersionNum index 19b2aa7597f13934225c16d4dd9eba3b83d5ae65..1c5ff5d44bd0f9d33e0bda7f849b33557676174f 100644 --- a/VersionNum +++ b/VersionNum @@ -1,15 +1,15 @@ -/* (4.89) +/* (4.90) * * This file is automatically maintained by srccommit, do not edit manually. * */ -#define Module_MajorVersion_CMHG 4.89 +#define Module_MajorVersion_CMHG 4.90 #define Module_MinorVersion_CMHG -#define Module_Date_CMHG 23 Sep 1999 +#define Module_Date_CMHG 29 Sep 1999 -#define Module_MajorVersion "4.89" -#define Module_Version 489 +#define Module_MajorVersion "4.90" +#define Module_Version 490 #define Module_MinorVersion "" -#define Module_Date "23 Sep 1999" +#define Module_Date "29 Sep 1999" -#define Module_FullVersion "4.89" +#define Module_FullVersion "4.90" diff --git a/s/ARM600 b/s/ARM600 index aad1e5f41994cd713f15157d2f3de58de3dc2021..1d7069ed0ece6e291b265da09f6f27a9325e0b64 100644 --- a/s/ARM600 +++ b/s/ARM600 @@ -966,15 +966,15 @@ init7500FEcpu ; [ FECPUSpeedNormal [ FEIOSpeedHalf - MOV r0, #IOMD_CLKCTL_CpuclkNormal + IOMD_CLKCTL_MemclkNormal + IOMD_CLKCTL_IOclkNormal - | MOV r0, #IOMD_CLKCTL_CpuclkNormal + IOMD_CLKCTL_MemclkNormal + IOMD_CLKCTL_IOclkHalf + | + MOV r0, #IOMD_CLKCTL_CpuclkNormal + IOMD_CLKCTL_MemclkNormal + IOMD_CLKCTL_IOclkNormal ] | [ FEIOSpeedHalf - MOV r0, #IOMD_CLKCTL_CpuclkHalf + IOMD_CLKCTL_MemclkNormal + IOMD_CLKCTL_IOclkNormal - | MOV r0, #IOMD_CLKCTL_CpuclkHalf + IOMD_CLKCTL_MemclkNormal + IOMD_CLKCTL_IOclkHalf + | + MOV r0, #IOMD_CLKCTL_CpuclkHalf + IOMD_CLKCTL_MemclkNormal + IOMD_CLKCTL_IOclkNormal ] ] ] diff --git a/s/NewReset b/s/NewReset index 28470c018cd9fd2c72473d2372ebcbfe9bd3486d..d681a44d373af132b2544629c9501cc477b3c725 100644 --- a/s/NewReset +++ b/s/NewReset @@ -970,7 +970,7 @@ reset_loop ; Oh, just leave it be MOV R0, #VduCMOS BL Read - [ IOMD_C_MonitorType = 0 :LAND: MPEGPoduleNTSCNotPALMask = 0 :LAND: IOMD_C_PALNTSCType = 0 + [ IOMD_C_MonitorType = 0 :LAND: IOMD_C_PALNTSCType = 0 ; Force TV if we don't have a MonitorType auto-detect bit TEQ R0, #(Sync_Separate :OR: MonitorType0) | @@ -1237,7 +1237,7 @@ DefaultCMOSTable ; list of non-zero options wanted : = DBTBCMOS, (1:SHL:4) ; Boot = YearCMOS, 97 = YearCMOS+1, 19 - [ IOMD_C_MonitorType = 0 :LAND: MPEGPoduleNTSCNotPALMask = 0 :LAND: IOMD_C_PALNTSCType = 0 + [ IOMD_C_MonitorType = 0 :LAND: IOMD_C_PALNTSCType = 0 ; TV if we don't have a MonitorType auto-detect bit = VduCMOS, Sync_Separate :OR: MonitorType0 | diff --git a/s/PMF/i2cutils b/s/PMF/i2cutils index 2820f8a0d6f8c6386aecb8faa3aeebd47c2b5f25..721905b02c452be57b8c8355d6023468873e299e 100644 --- a/s/PMF/i2cutils +++ b/s/PMF/i2cutils @@ -463,7 +463,7 @@ Write MOV R14, #0 ; don't write to protected section LDRB R14, [R14, #NVRamWriteSize] - CMP R0, R14 ; (note assumption that NVRamWriteSize is + CMP R0, R14, LSL #8 ; (note assumption that NVRamWriteSize is Pull "R0-R4, PC", HS ; outside mangled region). MOV R2, R0 @@ -542,6 +542,7 @@ WriteBlock ROUT MOV R14, #0 LDRB R4, [R14, #NVRamWriteSize] LDRB R14, [R14, #NVRamSize] + MOV R4, R4, LSL #8 | LDRB R14, NVSize MOV R4, R14 @@ -1320,38 +1321,6 @@ MakeChecksum ROUT LTORG -; ***************************************************************************** -; -; OS_SetTime - Set the real-time clock -; -; in: R0 = pointer to 5 byte UTC time -; -; out: R0 preserved -; - -SetTimeSWI ROUT - Push "R0-R8" - SUB SP, SP, #36 - MOV R1, R0 - MOV R2, SP - SWI XTerritory_ConvertTimeToUTCOrdinals - ADDVS SP, SP, #36+4 - Pull "R1-R8", VS - ExitSWIHandler VS - LDR R8, [SP], #4 ; centiseconds - LDR R7, [SP], #4 ; seconds - LDR R1, [SP], #4 ; minutes - Pull "R0,R2,R3,R5" ; hours, day, month, year - ADD SP, SP, #8 ; junk day of week and year - MOV R4, #100 - DivRem R6, R5, R4, R14 ; R5 = year (lo), R6 = year (hi) - - BL SetTime - - STRVS R0,[SP] - Pull "R0-R8" - ExitSWIHandler - ; ***************************************************************************** ; ; SetTime - Write the CMOS clock time and update 5-byte RealTime diff --git a/s/PMF/osinit b/s/PMF/osinit index 6c3d50b13107fd72a74fb678b4c923b0567e0ec4..27748ca54035df252e6c66fabf5d892ea122b6d7 100644 --- a/s/PMF/osinit +++ b/s/PMF/osinit @@ -683,33 +683,23 @@ ReadMachineType ENTRY "r0-r12" MOVEQ r2, #&FF ; then return all ones for monitor lead type BEQ %FT90 + [ MPEGPoduleNTSCNotPALMask <> 0 + ! 1, "Sorry, I don't do MPEGPoduleNTSCNotPALMask any more" + ] + [ STB LDR r0, =VIDC ; on VIDC20 we invert HSYNC by writing to External Register [ MorrisSupport ; On Morris, monitor auto-detect has been moved to IOMD_CLINES - TST R11, #IOST_7500 - LDREQ r3, =IOMD_MonitorType ; Not Morris, address is in old place - [ IOMD_C_MonitorType = 0 ; Monitor auto-detect not supported: - [ MPEGPoduleNTSCNotPALMask <> 0 - BEQ %FT15 ; not an IOMD-style machine, so skip any STB stuff - LDR r3, =MPEGPoduleNTSCNotPALAddress ; point at podule status register - LDRB r2, [r3] - TST r2, #MPEGPoduleNTSCNotPALMask ; test PAL/NTSC bit - MOVEQ r2, #4_0331 ; if bit clear then PAL TV - MOVNE r2, #4_1331 ; if bit set then NTSC TV - B %FT90 -15 - | - MOVNE r2, #&FF ; then return all ones for monitor lead type - BNE %FT90 - ] - | + [ IOMD_C_MonitorType <> 0 ASSERT (IOMD_C_MonitorType = (1<<0)) ; this code only understands auto-detect in bit 0 - LDRNE r3, =(IOMD_Base + IOMD_CLINES) ] + TST R11, #IOST_7500 + LDREQ r3, =IOMD_MonitorType ; Not Morris, address is in old place + LDRNE r3, =(IOMD_Base + IOMD_CLINES) | LDR r3, =IOMD_MonitorType - ] + ] ; MorrisSupport LDR r1, =VIDCExternal+Ext_InvertCompVSYNC+Ext_DACsOn+Ext_ERegExt ; normal HSYNC value STR r1, [r0] @@ -769,7 +759,7 @@ ReadMachineType ENTRY "r0-r12" BL CheckBits ; call check routine with second value SUBS r12, r12, #1 BNE %BT20 - | + | ; STB [ VIDC_Type = "VIDC20" LDR r0, =VIDC ; on VIDC20 we invert HSYNC by writing to External Register @@ -853,7 +843,7 @@ ReadMachineType ENTRY "r0-r12" - ] + ] ; STB ; now process result @@ -980,17 +970,19 @@ TranslateMonitorLeadType ENTRY "r0-r2" MonitorLeadList [ STB [ IOMD_C_MonitorType = 0 ; no auto-detect bit - [ MPEGPoduleNTSCNotPALMask <> 0 - MonitorLeadItem 4_0331, 50, 0, 0 ; PAL TV interlaced overscanned - MonitorLeadItem 4_1331, 58, 8, 0 ; NTSC TV interlaced overscanned - ] + [ IOMD_C_PALNTSCType = 0 ; no PAL/NTSC bits: + MonitorLeadItem 4_3333, 12, 0, 1 ; PAL TV assumed + | ; IOMD_C_PALNTSCType = 0 + MonitorLeadItem 4_0333, 12, 0, 1 ; PAL TV + MonitorLeadItem 4_1333, 46, 8, 1 ; NTSC TV + ] ; IOMD_C_PALNTSCType = 0 | [ :LNOT: ChrontelSupport [ IOMD_C_PALNTSCType = 0 ; no PAL/NTSC bits: MonitorLeadItem 4_3331, 12, 0, 1 ; PAL TV assumed | ; IOMD_C_PALNTSCType = 0 ; wealth of bits: - MonitorLeadItem 4_0331, 50, 0, 0 ; PAL TV interlaced overscanned - MonitorLeadItem 4_1331, 58, 8, 0 ; NTSC TV interlaced overscanned + MonitorLeadItem 4_0331, 12, 0, 1 ; PAL TV + MonitorLeadItem 4_1331, 46, 8, 1 ; NTSC TV ] ; IOMD_C_PALNTSCType = 0 ] ; :LNOT: ChrontelSupport ] ; IOMD_C_MonitorType = 0 diff --git a/s/vdu/vdumodes b/s/vdu/vdumodes index f955e59f11b1e4484e94da7348c1dc46df6fb3c8..1460f2e069011e7cff6d14f9b48df5b4d81407cc 100644 --- a/s/vdu/vdumodes +++ b/s/vdu/vdumodes @@ -289,7 +289,7 @@ F_$label * framerate ; set up frame rate symbol ] MEND -NumMonitorTypes * 5 +NumMonitorTypes * 9 NumModes * 50 maxmode * NumModes-1 minmode * 0 @@ -593,6 +593,218 @@ BigVIDCTable ASSERT (.-BigVIDCTable)=((NumModes*5):SHL:2) + & -1 ; 0 + & -1 ; 1 + & -1 ; 2 + & -1 ; 3 + & -1 ; 4 + & -1 ; 5 + & -1 ; 6 + & -1 ; 7 + & -1 ; 8 + & -1 ; 9 + & -1 ; 10 + & -1 ; 11 + & -1 ; 12 + & -1 ; 13 + & -1 ; 14 + & -1 ; 15 + & -1 ; 16 + & -1 ; 17 + & -1 ; 18 + & -1 ; 19 + & -1 ; 20 + & -1 ; 21 + & -1 ; 22 + & -1 ; 23 + & -1 ; 24 + & -1 ; 25 + & -1 ; 26 + & -1 ; 27 + & -1 ; 28 + & -1 ; 29 + & -1 ; 30 + & -1 ; 31 + & -1 ; 32 + & -1 ; 33 + & -1 ; 34 + & -1 ; 35 + & -1 ; 36 + & -1 ; 37 + & -1 ; 38 + & -1 ; 39 + & -1 ; 40 + & -1 ; 41 + & -1 ; 42 + & -1 ; 43 + & -1 ; 44 + & -1 ; 45 + & -1 ; 46 + & -1 ; 47 + & -1 ; 48 + & -1 ; 49 + + ASSERT (.-BigVIDCTable)=((NumModes*6):SHL:2) + + & -1 ; 0 + & -1 ; 1 + & -1 ; 2 + & -1 ; 3 + & -1 ; 4 + & -1 ; 5 + & -1 ; 6 + & -1 ; 7 + & -1 ; 8 + & -1 ; 9 + & -1 ; 10 + & -1 ; 11 + & -1 ; 12 + & -1 ; 13 + & -1 ; 14 + & -1 ; 15 + & -1 ; 16 + & -1 ; 17 + & -1 ; 18 + & -1 ; 19 + & -1 ; 20 + & -1 ; 21 + & -1 ; 22 + & -1 ; 23 + & -1 ; 24 + & -1 ; 25 + & -1 ; 26 + & -1 ; 27 + & -1 ; 28 + & -1 ; 29 + & -1 ; 30 + & -1 ; 31 + & -1 ; 32 + & -1 ; 33 + & -1 ; 34 + & -1 ; 35 + & -1 ; 36 + & -1 ; 37 + & -1 ; 38 + & -1 ; 39 + & -1 ; 40 + & -1 ; 41 + & -1 ; 42 + & -1 ; 43 + & -1 ; 44 + & -1 ; 45 + & -1 ; 46 + & -1 ; 47 + & -1 ; 48 + & -1 ; 49 + + ASSERT (.-BigVIDCTable)=((NumModes*7):SHL:2) + + & -1 ; 0 + & -1 ; 1 + & -1 ; 2 + & -1 ; 3 + & -1 ; 4 + & -1 ; 5 + & -1 ; 6 + & -1 ; 7 + & -1 ; 8 + & -1 ; 9 + & -1 ; 10 + & -1 ; 11 + & -1 ; 12 + & -1 ; 13 + & -1 ; 14 + & -1 ; 15 + & -1 ; 16 + & -1 ; 17 + & -1 ; 18 + & -1 ; 19 + & -1 ; 20 + & -1 ; 21 + & -1 ; 22 + & -1 ; 23 + & -1 ; 24 + & -1 ; 25 + & -1 ; 26 + & -1 ; 27 + & -1 ; 28 + & -1 ; 29 + & -1 ; 30 + & -1 ; 31 + & -1 ; 32 + & -1 ; 33 + & -1 ; 34 + & -1 ; 35 + & -1 ; 36 + & -1 ; 37 + & -1 ; 38 + & -1 ; 39 + & -1 ; 40 + & -1 ; 41 + & -1 ; 42 + & -1 ; 43 + & -1 ; 44 + & -1 ; 45 + & -1 ; 46 + & -1 ; 47 + & -1 ; 48 + & -1 ; 49 + + ASSERT (.-BigVIDCTable)=((NumModes*8):SHL:2) + + & -1 ; 0 + & -1 ; 1 + & -1 ; 2 + & -1 ; 3 + & -1 ; 4 + & -1 ; 5 + & -1 ; 6 + & -1 ; 7 + & -1 ; 8 + & -1 ; 9 + & -1 ; 10 + & -1 ; 11 + & -1 ; 12 + & -1 ; 13 + & -1 ; 14 + & -1 ; 15 + & -1 ; 16 + & -1 ; 17 + & -1 ; 18 + & -1 ; 19 + & -1 ; 20 + & -1 ; 21 + & -1 ; 22 + & -1 ; 23 + & -1 ; 24 + & -1 ; 25 + & -1 ; 26 + & -1 ; 27 + & -1 ; 28 + & -1 ; 29 + & -1 ; 30 + & -1 ; 31 + & -1 ; 32 + & -1 ; 33 + & -1 ; 34 + & -1 ; 35 + & -1 ; 36 + & -1 ; 37 + & -1 ; 38 + & -1 ; 39 + & -1 ; 40 + & -1 ; 41 + & -1 ; 42 + & -1 ; 43 + & VLM_44 - BigVIDCTable ; 44 CGA + & VLM_45 - BigVIDCTable ; 45 + & VLM_46 - BigVIDCTable ; 46 + & -1 ; 47 + & -1 ; 48 + & -1 ; 49 + + ASSERT (.-BigVIDCTable)=((NumModes*NumMonitorTypes):SHL:2) + VLN_0 VIDC_List 0, 76, 88, 96, 640, 96, 28, 3,19,16,256,16, 2,16000,0 ; MODE 0 VLN_1 VIDC_List 1, 38, 44, 48, 320, 48, 14, 3,19,16,256,16, 2, 8000,0 ; MODE 1 VLN_2 VIDC_List 2, 38, 44, 48, 320, 48, 14, 3,19,16,256,16, 2, 8000,0 ; MODE 2 diff --git a/s/vdu/vduswis b/s/vdu/vduswis index 882be16f8b2318e22a8cf890655e0c0b2848dafe..12ec36544c8992b83ef2a71b1683023bcefae60c 100644 --- a/s/vdu/vduswis +++ b/s/vdu/vduswis @@ -879,6 +879,8 @@ FindOKMode ROUT ADR r14, SubstModeTable LDR r11, [r14, r3, LSL #2] + TEQ r11, #0 ; if r0=0, monitor type is actually unknown - issue service call + BEQ %FT10 ADD r1, r11, r14 05 BL FindSubstitute @@ -921,6 +923,10 @@ SubstModeTable & SubstType2-SubstModeTable & SubstType3-SubstModeTable & SubstType4-SubstModeTable + & 0 + & 0 + & 0 + & SubstType8-SubstModeTable SubstType01 = 0, 8, 12, 15 @@ -930,6 +936,8 @@ SubstType3 = 25, 26, 27, 28 SubstType4 = 29, 30, 31, 32 +SubstType8 + = 44, 45, 46, 46 ; ***************************************************************************** ;