From a1e56734de22c83b321f7ccd485f42a73cb85961 Mon Sep 17 00:00:00 2001 From: John Ballance <jballance@gitlab.riscosopen.org> Date: Fri, 4 Apr 2014 22:19:21 +0000 Subject: [PATCH] Correction to code to add GraphicsV_PixelFormats call to HAL graphics driver calls. Added further debug capability Detail: Added additional HAL call. minor code correction in hal graphicsv dispatcher Added DebugReg macro to aid debugging Admin: (highlight level of testing that has taken place) (bugfix number if appropriate) Version 5.35, 4.79.2.215. Tagged as 'Kernel-5_35-4_79_2_215' --- VersionASM | 10 ++--- VersionNum | 14 +++---- hdr/HALEntries | 1 + s/HAL | 102 ++++++++++++++++++++++++++++++----------------- s/Kernel | 15 ++++++- s/vdu/vdugrafhal | 13 +++++- 6 files changed, 104 insertions(+), 51 deletions(-) diff --git a/VersionASM b/VersionASM index 6352477..97cdf73 100644 --- a/VersionASM +++ b/VersionASM @@ -13,11 +13,11 @@ GBLS Module_ComponentPath Module_MajorVersion SETS "5.35" Module_Version SETA 535 -Module_MinorVersion SETS "4.79.2.214" -Module_Date SETS "29 Mar 2014" -Module_ApplicationDate SETS "29-Mar-14" +Module_MinorVersion SETS "4.79.2.215" +Module_Date SETS "04 Apr 2014" +Module_ApplicationDate SETS "04-Apr-14" Module_ComponentName SETS "Kernel" Module_ComponentPath SETS "castle/RiscOS/Sources/Kernel" -Module_FullVersion SETS "5.35 (4.79.2.214)" -Module_HelpVersion SETS "5.35 (29 Mar 2014) 4.79.2.214" +Module_FullVersion SETS "5.35 (4.79.2.215)" +Module_HelpVersion SETS "5.35 (04 Apr 2014) 4.79.2.215" END diff --git a/VersionNum b/VersionNum index ca5c8cd..dd29e27 100644 --- a/VersionNum +++ b/VersionNum @@ -5,19 +5,19 @@ * */ #define Module_MajorVersion_CMHG 5.35 -#define Module_MinorVersion_CMHG 4.79.2.214 -#define Module_Date_CMHG 29 Mar 2014 +#define Module_MinorVersion_CMHG 4.79.2.215 +#define Module_Date_CMHG 04 Apr 2014 #define Module_MajorVersion "5.35" #define Module_Version 535 -#define Module_MinorVersion "4.79.2.214" -#define Module_Date "29 Mar 2014" +#define Module_MinorVersion "4.79.2.215" +#define Module_Date "04 Apr 2014" -#define Module_ApplicationDate "29-Mar-14" +#define Module_ApplicationDate "04-Apr-14" #define Module_ComponentName "Kernel" #define Module_ComponentPath "castle/RiscOS/Sources/Kernel" -#define Module_FullVersion "5.35 (4.79.2.214)" -#define Module_HelpVersion "5.35 (29 Mar 2014) 4.79.2.214" +#define Module_FullVersion "5.35 (4.79.2.215)" +#define Module_HelpVersion "5.35 (04 Apr 2014) 4.79.2.215" #define Module_LibraryVersionInfo "5:35" diff --git a/hdr/HALEntries b/hdr/HALEntries index cc488b5..bec8de1 100644 --- a/hdr/HALEntries +++ b/hdr/HALEntries @@ -175,6 +175,7 @@ EntryNo_HAL_VideoFramestoreAddress # 1 ; 116 EntryNo_HAL_UARTDefault # 1 ; 117 EntryNo_HAL_VideoStartupMode # 1 ; 118 +EntryNo_HAL_VideoPixelFormatList # 1 ; 119 KnownHALEntries # 0 ; Used inside Kernel diff --git a/s/HAL b/s/HAL index 69224a5..fabdc85 100644 --- a/s/HAL +++ b/s/HAL @@ -2871,9 +2871,9 @@ DebugHALPrint CallHAL HAL_DebugTX B %BT10 20 MOV a1, #13 - CallHAL HAL_DebugTX +; CallHAL HAL_DebugTX MOV a1, #10 - CallHAL HAL_DebugTX +; CallHAL HAL_DebugTX ADD v1, v1, #3 BIC lr, v1, #3 Pull "a1-a4,v1,sb,ip" @@ -2882,45 +2882,73 @@ DebugHALPrint [ DebugHALTX -HALDebugHexTX - stmfd r13!, {r0-r3,sb,ip,lr} - AddressHAL - b jbdt1 -HALDebugHexTX2 - stmfd r13!, {r0-r3,sb,ip,lr} - AddressHAL - b jbdt2 -HALDebugHexTX4 - stmfd r13!, {r0-r3,sb,ip,lr} +DebugHALPrintReg ; Output number on top of stack to the serial port + Push "a1-a4,v1-v4,sb,ip,lr" ; this is 11 regs + LDR v2, [sp,#11*4] ; find TOS value on stack + ADR v3, hextab + MOV v4, #8 +05 AddressHAL - mov r0,r0,ror #24 ; hi byte - bl jbdtxh - mov r0,r0,ror #24 - bl jbdtxh -jbdt2 - mov r0,r0,ror #24 - bl jbdtxh - mov r0,r0,ror #24 -jbdt1 - bl jbdtxh - mov r0,#' ' +10 LDRB a1, [v3, v2, LSR #28] CallHAL HAL_DebugTX - ldmfd r13!, {r0-r3,sb,ip,pc} - -jbdtxh stmfd r13!,{a1,v1,lr} ; print byte as hex. corrupts a2-a4, ip, assumes sb already AddressHAL'd - and v1,a1,#&f ; get low nibble - and a1,a1,#&f0 ; get hi nibble - mov a1,a1,lsr #4 ; shift to low nibble - cmp a1,#&9 ; 9? - addle a1,a1,#&30 - addgt a1,a1,#&37 ; convert letter if needed + MOV v2, v2, LSL #4 + SUBS v4, v4, #1 + BNE %BT10 + MOV a1, #13 CallHAL HAL_DebugTX - cmp v1,#9 - addle a1,v1,#&30 - addgt a1,v1,#&37 + MOV a1, #10 CallHAL HAL_DebugTX - ldmfd r13!,{a1,v1,pc} - ] + Pull "a1-a4,v1-v4,sb,ip,lr" + ADD sp, sp, #4 + MOV pc, lr + +hextab DCB "0123456789abcdef" + + + ] +; +; +; [ DebugHALTX +;HALDebugHexTX +; stmfd r13!, {r0-r3,sb,ip,lr} +; AddressHAL +; b jbdt1 +;HALDebugHexTX2 +; stmfd r13!, {r0-r3,sb,ip,lr} +; AddressHAL +; b jbdt2 +;HALDebugHexTX4 +; stmfd r13!, {r0-r3,sb,ip,lr} +; AddressHAL +; mov r0,r0,ror #24 ; hi byte +; bl jbdtxh +; mov r0,r0,ror #24 +; bl jbdtxh +;jbdt2 +; mov r0,r0,ror #24 +; bl jbdtxh +; mov r0,r0,ror #24 +;jbdt1 +; bl jbdtxh +; mov r0,#' ' +; CallHAL HAL_DebugTX +; ldmfd r13!, {r0-r3,sb,ip,pc} +; +;jbdtxh stmfd r13!,{a1,v1,lr} ; print byte as hex. corrupts a2-a4, ip, assumes sb already AddressHAL'd +; and v1,a1,#&f ; get low nibble +; and a1,a1,#&f0 ; get hi nibble +; mov a1,a1,lsr #4 ; shift to low nibble +; cmp a1,#&9 ; 9? +; addle a1,a1,#&30 +; addgt a1,a1,#&37 ; convert letter if needed +; CallHAL HAL_DebugTX +; cmp v1,#9 +; addle a1,v1,#&30 +; addgt a1,v1,#&37 +; CallHAL HAL_DebugTX +; ldmfd r13!,{a1,v1,pc} +; ] +; END diff --git a/s/Kernel b/s/Kernel index 85b61e0..1f903e6 100644 --- a/s/Kernel +++ b/s/Kernel @@ -21,11 +21,24 @@ ; +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ MACRO - DebugTX $str + DebugReg $reg, $str [ DebugHALTX + Push "$reg" + [ "$str" <> "" BL DebugHALPrint = "$str", 0 ALIGN + ] + bl DebugHALPrintReg + ] + MEND + + MACRO + DebugTX $str + [ DebugHALTX + BL DebugHALPrint + = "$str", 13,10,00 + ALIGN ] MEND diff --git a/s/vdu/vdugrafhal b/s/vdu/vdugrafhal index dc9f6a3..75b1e6d 100644 --- a/s/vdu/vdugrafhal +++ b/s/vdu/vdugrafhal @@ -32,7 +32,7 @@ MOSGraphicsVHAL ROUT ; HAL driver assumed to be driver #0 CMP r4, #(MOSGraphicsVHAL_TableEnd - MOSGraphicsVHAL_Table) / 4 - ADDLS pc, pc, r4, LSL #2 + ADDLO pc, pc, r4, LSL #2 MOV pc, lr ; reason code not known, so pass it on MOSGraphicsVHAL_Table MOV pc, lr ; 0 @@ -52,6 +52,7 @@ MOSGraphicsVHAL_Table GVHEntry IICOp ; 14 MOV pc, lr ; 15 GVHEntry StartupMode ; 16 + GVHEntry PixelFormats ; 17 GVHAL_PixelFormats MOSGraphicsVHAL_TableEnd GVHAL_SetMode @@ -108,6 +109,16 @@ GVHAL_DisplayFeatures MOV r2, r0 Pull "r0,r1,r3, r9, pc" +GVHAL_PixelFormats + Push "r3, r9, lr" + AddressHAL WsPtr + MOV r0, #0 + MOV r1, #0 + CallHAL HAL_VideoPixelFormatList + ORRS r3, r2, r1 + MOVNE r4, #0 + Pull "r3, r9, pc" + GVHAL_FramestoreAddress Push "r3, r9, lr" AddressHAL WsPtr -- GitLab