git-svn-id: https://spexeah.com:8443/svn/Asuro@670 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c
This commit is contained in:
parent
956588c920
commit
1615e6781a
BIN
bin/kernel.bin
BIN
bin/kernel.bin
Binary file not shown.
Binary file not shown.
BIN
lib/EHCI.ppu
Normal file
BIN
lib/EHCI.ppu
Normal file
Binary file not shown.
BIN
lib/OHCI.ppu
Normal file
BIN
lib/OHCI.ppu
Normal file
Binary file not shown.
BIN
lib/UHCI.ppu
Normal file
BIN
lib/UHCI.ppu
Normal file
Binary file not shown.
BIN
lib/USB.ppu
BIN
lib/USB.ppu
Binary file not shown.
BIN
lib/asuro.ppu
BIN
lib/asuro.ppu
Binary file not shown.
BIN
lib/kernel.ppu
BIN
lib/kernel.ppu
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
lib/libpsystem.a
BIN
lib/libpsystem.a
Binary file not shown.
BIN
lib/shell.ppu
BIN
lib/shell.ppu
Binary file not shown.
BIN
lib/terminal.ppu
BIN
lib/terminal.ppu
Binary file not shown.
BIN
lib/themer.ppu
Normal file
BIN
lib/themer.ppu
Normal file
Binary file not shown.
45
src/driver/bus/EHCI.pas
Normal file
45
src/driver/bus/EHCI.pas
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
unit EHCI;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
tracer,
|
||||||
|
Console,
|
||||||
|
PCI,
|
||||||
|
drivertypes,
|
||||||
|
pmemorymanager,
|
||||||
|
vmemorymanager,
|
||||||
|
util,
|
||||||
|
drivermanagement;
|
||||||
|
|
||||||
|
function load : boolean;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
function load : boolean;
|
||||||
|
var
|
||||||
|
devices : TDeviceArray;
|
||||||
|
count : uint32;
|
||||||
|
i : uint32;
|
||||||
|
|
||||||
|
begin
|
||||||
|
devices:= PCI.getDeviceInfo($0C, $03, $20, count);
|
||||||
|
console.output('USB-EHCI Driver', 'Found ');
|
||||||
|
console.writeint(count);
|
||||||
|
console.writestringln(' USB Controller(s).');
|
||||||
|
if count > 0 then begin
|
||||||
|
for i:=0 to count-1 do begin
|
||||||
|
console.output('USB-OHCI Driver', 'Controller[');
|
||||||
|
console.writeint(i);
|
||||||
|
console.writestring(']: ');
|
||||||
|
console.writehex(devices[i].device_id);
|
||||||
|
console.writestring(' ');
|
||||||
|
console.writehex(devices[i].vendor_id);
|
||||||
|
console.writestring(' ');
|
||||||
|
console.writehexln(devices[i].prog_if);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
load:= true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
76
src/driver/bus/OHCI.pas
Normal file
76
src/driver/bus/OHCI.pas
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
unit OHCI;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
tracer,
|
||||||
|
Console,
|
||||||
|
PCI,
|
||||||
|
drivertypes,
|
||||||
|
pmemorymanager,
|
||||||
|
vmemorymanager,
|
||||||
|
util,
|
||||||
|
drivermanagement;
|
||||||
|
|
||||||
|
type
|
||||||
|
POHCI_MMR = ^TOHCI_MMR;
|
||||||
|
TOHCI_MMR = packed record
|
||||||
|
HcRevision : uint32;
|
||||||
|
HcControl : uint32;
|
||||||
|
HcCommandStatus : uint32;
|
||||||
|
HcIntStatus : uint32;
|
||||||
|
HcIntEnable : uint32;
|
||||||
|
HcIntDisable : uint32;
|
||||||
|
HcHCCA : uint32;
|
||||||
|
HcPeriodCurrentED : uint32;
|
||||||
|
HcControlHeadED : uint32;
|
||||||
|
HcControlCurrentED : uint32;
|
||||||
|
HcBulkHeadED : uint32;
|
||||||
|
HcBulkCurrentED : uint32;
|
||||||
|
HcDoneHead : uint32;
|
||||||
|
HcFmRemaining : uint32;
|
||||||
|
HcFmNumber : uint32;
|
||||||
|
HcPeriodicStart : uint32;
|
||||||
|
HcLSThreshold : uint32;
|
||||||
|
HcRhDescriptorA : uint32;
|
||||||
|
HcRhDescriptorB : uint32;
|
||||||
|
HcRhStatus : uint32;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function load : boolean;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
function load : boolean;
|
||||||
|
var
|
||||||
|
devices : TDeviceArray;
|
||||||
|
count : uint32;
|
||||||
|
i : uint32;
|
||||||
|
block : uint32;
|
||||||
|
MMR : POHCI_MMR;
|
||||||
|
|
||||||
|
begin
|
||||||
|
devices:= PCI.getDeviceInfo($0C, $03, $10, count);
|
||||||
|
console.output('USB-OHCI Driver', 'Found ');
|
||||||
|
console.writeint(count);
|
||||||
|
console.writestringln(' USB Controller(s).');
|
||||||
|
if count > 0 then begin
|
||||||
|
for i:=0 to count-1 do begin
|
||||||
|
console.output('USB-OHCI Driver', 'Controller[');
|
||||||
|
console.writeint(i);
|
||||||
|
console.writestring(']: ');
|
||||||
|
console.writehex(devices[i].device_id);
|
||||||
|
console.writestring(' ');
|
||||||
|
console.writehex(devices[i].vendor_id);
|
||||||
|
console.writestring(' ');
|
||||||
|
console.writehexln(devices[i].prog_if);
|
||||||
|
block:= devices[i].address0 SHR 22;
|
||||||
|
force_alloc_block(block, 0);
|
||||||
|
map_page(block, block);
|
||||||
|
MMR:= POHCI_MMR(devices[i].address0);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
load:= true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
45
src/driver/bus/UHCI.pas
Normal file
45
src/driver/bus/UHCI.pas
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
unit UHCI;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
tracer,
|
||||||
|
Console,
|
||||||
|
PCI,
|
||||||
|
drivertypes,
|
||||||
|
pmemorymanager,
|
||||||
|
vmemorymanager,
|
||||||
|
util,
|
||||||
|
drivermanagement;
|
||||||
|
|
||||||
|
function load : boolean;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
function load : boolean;
|
||||||
|
var
|
||||||
|
devices : TDeviceArray;
|
||||||
|
count : uint32;
|
||||||
|
i : uint32;
|
||||||
|
|
||||||
|
begin
|
||||||
|
devices:= PCI.getDeviceInfo($0C, $03, $00, count);
|
||||||
|
console.output('USB-UHCI Driver','Found ');
|
||||||
|
console.writeint(count);
|
||||||
|
console.writestringln(' USB Controller(s).');
|
||||||
|
if count > 0 then begin
|
||||||
|
for i:=0 to count-1 do begin
|
||||||
|
console.output('USB-UHCI Driver','Controller[');
|
||||||
|
console.writeint(i);
|
||||||
|
console.writestring(']: ');
|
||||||
|
console.writehex(devices[i].device_id);
|
||||||
|
console.writestring(' ');
|
||||||
|
console.writehex(devices[i].vendor_id);
|
||||||
|
console.writestring(' ');
|
||||||
|
console.writehexln(devices[i].prog_if);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
load:= true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
@ -10,102 +10,34 @@ uses
|
|||||||
pmemorymanager,
|
pmemorymanager,
|
||||||
vmemorymanager,
|
vmemorymanager,
|
||||||
util,
|
util,
|
||||||
drivermanagement;
|
drivermanagement,
|
||||||
|
OHCI, UHCI, EHCI;
|
||||||
type
|
|
||||||
POHCI_MMR = ^TOHCI_MMR;
|
|
||||||
TOHCI_MMR = packed record
|
|
||||||
HcRevision : uint32;
|
|
||||||
HcControl : uint32;
|
|
||||||
HcCommandStatus : uint32;
|
|
||||||
HcIntStatus : uint32;
|
|
||||||
HcIntEnable : uint32;
|
|
||||||
HcIntDisable : uint32;
|
|
||||||
HcHCCA : uint32;
|
|
||||||
HcPeriodCurrentED : uint32;
|
|
||||||
HcControlHeadED : uint32;
|
|
||||||
HcControlCurrentED : uint32;
|
|
||||||
HcBulkHeadED : uint32;
|
|
||||||
HcBulkCurrentED : uint32;
|
|
||||||
HcDoneHead : uint32;
|
|
||||||
HcFmRemaining : uint32;
|
|
||||||
HcFmNumber : uint32;
|
|
||||||
HcPeriodicStart : uint32;
|
|
||||||
HcLSThreshold : uint32;
|
|
||||||
HcRhDescriptorA : uint32;
|
|
||||||
HcRhDescriptorB : uint32;
|
|
||||||
HcRhStatus : uint32;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure init;
|
procedure init;
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
function loadOHCI(ptr : void) : boolean;
|
function loadEHCI(ptr : void) : boolean;
|
||||||
var
|
begin
|
||||||
devices : TDeviceArray;
|
push_trace('USB.loadEHCI');
|
||||||
count : uint32;
|
loadEHCI:= EHCI.load;
|
||||||
i : uint32;
|
end;
|
||||||
block : uint32;
|
|
||||||
MMR : POHCI_MMR;
|
|
||||||
|
|
||||||
|
function loadOHCI(ptr : void) : boolean;
|
||||||
begin
|
begin
|
||||||
push_trace('USB.loadOHCI');
|
push_trace('USB.loadOHCI');
|
||||||
devices:= PCI.getDeviceInfo($0C, $03, $10, count);
|
loadOHCI:= OHCI.load;
|
||||||
console.output('USB-OHCI Driver', 'Found ');
|
|
||||||
console.writeint(count);
|
|
||||||
console.writestringln(' USB Controller(s).');
|
|
||||||
if count > 0 then begin
|
|
||||||
for i:=0 to count-1 do begin
|
|
||||||
console.output('USB-OHCI Driver', 'Controller[');
|
|
||||||
console.writeint(i);
|
|
||||||
console.writestring(']: ');
|
|
||||||
console.writehex(devices[i].device_id);
|
|
||||||
console.writestring(' ');
|
|
||||||
console.writehex(devices[i].vendor_id);
|
|
||||||
console.writestring(' ');
|
|
||||||
console.writehexln(devices[i].prog_if);
|
|
||||||
block:= devices[i].address0 SHR 22;
|
|
||||||
force_alloc_block(block, 0);
|
|
||||||
map_page(block, block);
|
|
||||||
MMR:= POHCI_MMR(devices[i].address0);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
loadOHCI:= true;
|
|
||||||
pop_trace;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function loadUHCI(ptr : void) : boolean;
|
function loadUHCI(ptr : void) : boolean;
|
||||||
var
|
|
||||||
devices : TDeviceArray;
|
|
||||||
count : uint32;
|
|
||||||
i : uint32;
|
|
||||||
|
|
||||||
begin
|
begin
|
||||||
push_trace('USB.loadUHCI');
|
push_trace('USB.loadUHCI');
|
||||||
devices:= PCI.getDeviceInfo($0C, $03, $00, count);
|
loadUHCI:= UHCI.load;
|
||||||
console.output('USB-UHCI Driver','Found ');
|
|
||||||
console.writeint(count);
|
|
||||||
console.writestringln(' USB Controller(s).');
|
|
||||||
if count > 0 then begin
|
|
||||||
for i:=0 to count-1 do begin
|
|
||||||
console.output('USB-UHCI Driver','Controller[');
|
|
||||||
console.writeint(i);
|
|
||||||
console.writestring(']: ');
|
|
||||||
console.writehex(devices[i].device_id);
|
|
||||||
console.writestring(' ');
|
|
||||||
console.writehex(devices[i].vendor_id);
|
|
||||||
console.writestring(' ');
|
|
||||||
console.writehexln(devices[i].prog_if);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
loadUHCI:= true;
|
|
||||||
pop_trace;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure init;
|
procedure init;
|
||||||
var
|
var
|
||||||
UHCI_ID, OHCI_ID : TDeviceIdentifier;
|
UHCI_ID, OHCI_ID, EHCI_ID: TDeviceIdentifier;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
push_trace('USB.init');
|
push_trace('USB.init');
|
||||||
@ -127,8 +59,17 @@ begin
|
|||||||
OHCI_ID.id4:= $FFFFFFFF;
|
OHCI_ID.id4:= $FFFFFFFF;
|
||||||
OHCI_ID.ex:= nil;
|
OHCI_ID.ex:= nil;
|
||||||
|
|
||||||
|
EHCI_ID.Bus:= biPCI;
|
||||||
|
EHCI_ID.id0:= idANY;
|
||||||
|
EHCI_ID.id1:= $0000000C;
|
||||||
|
EHCI_ID.id2:= $00000003;
|
||||||
|
EHCI_ID.id3:= $00000020;
|
||||||
|
EHCI_ID.id4:= $FFFFFFFF;
|
||||||
|
EHCI_ID.ex:= nil;
|
||||||
|
|
||||||
drivermanagement.register_driver('USB-UHCI Driver', @UHCI_ID, @loadUHCI);
|
drivermanagement.register_driver('USB-UHCI Driver', @UHCI_ID, @loadUHCI);
|
||||||
drivermanagement.register_driver('USB-OHCI Driver', @OHCI_ID, @loadOHCI);
|
drivermanagement.register_driver('USB-OHCI Driver', @OHCI_ID, @loadOHCI);
|
||||||
|
drivermanagement.register_driver('USB-EHCI Driver', @EHCI_ID, @loadEHCI);
|
||||||
|
|
||||||
console.outputln('USB Driver', 'INIT END.');
|
console.outputln('USB Driver', 'INIT END.');
|
||||||
pop_trace;
|
pop_trace;
|
||||||
|
@ -3,20 +3,20 @@ unit asuro;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
const
|
const
|
||||||
VERSION = '1.0.1-664ia';
|
VERSION = '1.0.1-668ia';
|
||||||
VERSION_MAJOR = '1';
|
VERSION_MAJOR = '1';
|
||||||
VERSION_MINOR = '0';
|
VERSION_MINOR = '0';
|
||||||
VERSION_SUB = '1';
|
VERSION_SUB = '1';
|
||||||
REVISION = '664';
|
REVISION = '668';
|
||||||
RELEASE = 'ia';
|
RELEASE = 'ia';
|
||||||
LINE_COUNT = 27361;
|
LINE_COUNT = 27480;
|
||||||
FILE_COUNT = 84;
|
FILE_COUNT = 87;
|
||||||
DRIVER_COUNT = 28;
|
DRIVER_COUNT = 31;
|
||||||
FPC_VERSION = '2.6.4';
|
FPC_VERSION = '2.6.4';
|
||||||
NASM_VERSION = '2.10.09';
|
NASM_VERSION = '2.10.09';
|
||||||
MAKE_VERSION = '3.81';
|
MAKE_VERSION = '3.81';
|
||||||
COMPILE_DATE = '06/05/18';
|
COMPILE_DATE = '07/05/18';
|
||||||
COMPILE_TIME = '06:55:52';
|
COMPILE_TIME = '22:47:28';
|
||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
|
199
src/prog/themer.pas
Normal file
199
src/prog/themer.pas
Normal file
@ -0,0 +1,199 @@
|
|||||||
|
unit themer;
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
console, terminal, keyboard, shell, strings, tracer;
|
||||||
|
|
||||||
|
procedure init();
|
||||||
|
|
||||||
|
implementation
|
||||||
|
|
||||||
|
type
|
||||||
|
TThemeThing = record
|
||||||
|
ThemeName : PChar;
|
||||||
|
Colors : PRGB565Pair;
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
Handle : HWND = 0;
|
||||||
|
Colors : uint32;
|
||||||
|
Themes : Array[0..3] of TThemeThing;
|
||||||
|
Selected : uint32;
|
||||||
|
ForeBack : uint32;
|
||||||
|
Changing : Boolean = false;
|
||||||
|
|
||||||
|
procedure OnClose();
|
||||||
|
begin
|
||||||
|
Handle:= 0;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure Draw();
|
||||||
|
var
|
||||||
|
i, j : uint32;
|
||||||
|
longest, len : uint32;
|
||||||
|
|
||||||
|
begin
|
||||||
|
tracer.push_trace('themer.draw');
|
||||||
|
if Handle <> 0 then begin
|
||||||
|
clearWNDEx(Handle, Colors);
|
||||||
|
writestringlnexWND(' ', Colors, Handle);
|
||||||
|
writestringlnexWND(' ', Colors, Handle);
|
||||||
|
writestringlnexWND(' ', Colors, Handle);
|
||||||
|
writestringlnexWND(' ', Colors, Handle);
|
||||||
|
longest:= 0;
|
||||||
|
for i:=0 to 3 do begin
|
||||||
|
if stringSize(Themes[i].ThemeName) > longest then longest:= stringSize(Themes[i].ThemeName);
|
||||||
|
end;
|
||||||
|
for j:=0 to longest do begin
|
||||||
|
writeStringexWND(' ', Colors, Handle);
|
||||||
|
end;
|
||||||
|
writestringexWND(' Foreground ', Colors, Handle);
|
||||||
|
writestringexWND(#6, Colors, Handle);
|
||||||
|
writestringlnexWND(' Background', Colors, Handle);
|
||||||
|
for i:=0 to 3 do begin
|
||||||
|
len:= longest - StringSize(Themes[i].ThemeName);
|
||||||
|
for j:=0 to len do begin
|
||||||
|
writeStringexWND(' ', Colors, Handle);
|
||||||
|
end;
|
||||||
|
writestringexWND(' ', Colors, Handle);
|
||||||
|
writeStringexWND(Themes[i].ThemeName, Colors, Handle);
|
||||||
|
writeStringexWND(':', Colors, Handle);
|
||||||
|
if (ForeBack = 0) and (Selected = i) and (Changing) then writeStringexWND(' *R:', Colors, Handle) else if (ForeBack = 0) and (Selected = i) then writeStringexWND(' >R:', Colors, Handle) else writeStringexWND(' R:', Colors, Handle);
|
||||||
|
if Themes[i].Colors^.Foreground.R < 10 then writeintexWND(0, Colors, Handle);
|
||||||
|
writeintexWND(Themes[i].Colors^.Foreground.R, Colors, Handle);
|
||||||
|
if (ForeBack = 1) and (Selected = i) and (Changing) then writeStringexWND(' *G:', Colors, Handle) else if (ForeBack = 1) and (Selected = i) then writeStringexWND(' >G:', Colors, Handle) else writeStringexWND(' G:', Colors, Handle);
|
||||||
|
if Themes[i].Colors^.Foreground.G < 10 then writeintexWND(0, Colors, Handle);
|
||||||
|
writeintexWND(Themes[i].Colors^.Foreground.G, Colors, Handle);
|
||||||
|
if (ForeBack = 2) and (Selected = i) and (Changing) then writeStringexWND(' *B:', Colors, Handle) else if (ForeBack = 2) and (Selected = i) then writeStringexWND(' >B:', Colors, Handle) else writeStringexWND(' B:', Colors, Handle);
|
||||||
|
if Themes[i].Colors^.Foreground.B < 10 then writeintexWND(0, Colors, Handle);
|
||||||
|
writeintexWND(Themes[i].Colors^.Foreground.B, Colors, Handle);
|
||||||
|
writestringexWND(' ', Colors, Handle);
|
||||||
|
writestringexWND(#6, Colors, Handle);
|
||||||
|
if (ForeBack = 3) and (Selected = i) and (Changing) then writeStringexWND(' *R:', Colors, Handle) else if (ForeBack = 3) and (Selected = i) then writeStringexWND(' >R:', Colors, Handle) else writeStringexWND(' R:', Colors, Handle);
|
||||||
|
if Themes[i].Colors^.Background.R < 10 then writeintexWND(0, Colors, Handle);
|
||||||
|
writeintexWND(Themes[i].Colors^.Background.R, Colors, Handle);
|
||||||
|
if (ForeBack = 4) and (Selected = i) and (Changing) then writeStringexWND(' *G:', Colors, Handle) else if (ForeBack = 4) and (Selected = i) then writeStringexWND(' >G:', Colors, Handle) else writeStringexWND(' G:', Colors, Handle);
|
||||||
|
if Themes[i].Colors^.Background.G < 10 then writeintexWND(0, Colors, Handle);
|
||||||
|
writeintexWND(Themes[i].Colors^.Background.G, Colors, Handle);
|
||||||
|
if (ForeBack = 5) and (Selected = i) and (Changing) then writeStringexWND(' *B:', Colors, Handle) else if (ForeBack = 5) and (Selected = i) then writeStringexWND(' >B:', Colors, Handle) else writeStringexWND(' B:', Colors, Handle);
|
||||||
|
if Themes[i].Colors^.Background.B < 10 then writeintexWND(0, Colors, Handle);
|
||||||
|
writeintexWND(Themes[i].Colors^.Background.B, Colors, Handle);
|
||||||
|
writestringlnexWND(' ', Colors, Handle);
|
||||||
|
end;
|
||||||
|
len:= longest - StringSize('Color16');
|
||||||
|
for j:=0 to len do begin
|
||||||
|
writeStringexWND(' ', Colors, Handle);
|
||||||
|
end;
|
||||||
|
writestringexWND(' ', Colors, Handle);
|
||||||
|
writestringexWND('Color16:', Colors, Handle);
|
||||||
|
writestringexWND(' ', Colors, Handle);
|
||||||
|
writehexexWND(puint16(@Themes[Selected].Colors^.Foreground)^, Colors, Handle);
|
||||||
|
writestringexWND(' '+#6, Colors, Handle);
|
||||||
|
writestringexWND(' ', Colors, Handle);
|
||||||
|
writehexlnexWND(puint16(@Themes[Selected].Colors^.Background)^, Colors, Handle);
|
||||||
|
writestringlnexWND(' ', Colors, Handle);
|
||||||
|
writestringlnexWND(' Press ''d'' to dump color values.', Colors, Handle);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure incrementSelected;
|
||||||
|
begin
|
||||||
|
case ForeBack of
|
||||||
|
0:Themes[Selected].Colors^.Foreground.R:= Themes[Selected].Colors^.Foreground.R + 1;
|
||||||
|
1:Themes[Selected].Colors^.Foreground.G:= Themes[Selected].Colors^.Foreground.G + 1;
|
||||||
|
2:Themes[Selected].Colors^.Foreground.B:= Themes[Selected].Colors^.Foreground.B + 1;
|
||||||
|
3:Themes[Selected].Colors^.Background.R:= Themes[Selected].Colors^.Background.R + 1;
|
||||||
|
4:Themes[Selected].Colors^.Background.G:= Themes[Selected].Colors^.Background.G + 1;
|
||||||
|
5:Themes[Selected].Colors^.Background.B:= Themes[Selected].Colors^.Background.B + 1;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure decrementSelected;
|
||||||
|
begin
|
||||||
|
case ForeBack of
|
||||||
|
0:Themes[Selected].Colors^.Foreground.R:= Themes[Selected].Colors^.Foreground.R - 1;
|
||||||
|
1:Themes[Selected].Colors^.Foreground.G:= Themes[Selected].Colors^.Foreground.G - 1;
|
||||||
|
2:Themes[Selected].Colors^.Foreground.B:= Themes[Selected].Colors^.Foreground.B - 1;
|
||||||
|
3:Themes[Selected].Colors^.Background.R:= Themes[Selected].Colors^.Background.R - 1;
|
||||||
|
4:Themes[Selected].Colors^.Background.G:= Themes[Selected].Colors^.Background.G - 1;
|
||||||
|
5:Themes[Selected].Colors^.Background.B:= Themes[Selected].Colors^.Background.B - 1;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure OnKeyPressed(info : TKeyInfo);
|
||||||
|
var
|
||||||
|
i : uint32;
|
||||||
|
|
||||||
|
begin
|
||||||
|
case info.key_code of
|
||||||
|
13:begin
|
||||||
|
Changing:= not Changing;
|
||||||
|
end;
|
||||||
|
16:begin //Up
|
||||||
|
if changing then begin
|
||||||
|
incrementSelected;
|
||||||
|
end else begin
|
||||||
|
if Selected > 0 then dec(Selected);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
18:begin //Down
|
||||||
|
if changing then begin
|
||||||
|
decrementSelected;
|
||||||
|
end else begin
|
||||||
|
if Selected < 3 then inc(Selected);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
20:begin //Right
|
||||||
|
if not changing then begin
|
||||||
|
if ForeBack < 5 then inc(ForeBack);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
19:begin //Left
|
||||||
|
if not changing then begin
|
||||||
|
if ForeBack > 0 then dec(ForeBack);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
uint8('d'):begin
|
||||||
|
writestringlnWND(' ', getTerminalHWND);
|
||||||
|
for i:=0 to 3 do begin
|
||||||
|
writestringWND(Themes[i].ThemeName, getTerminalHWND);
|
||||||
|
writestringWND(': Foreground: ', getTerminalHWND);
|
||||||
|
writehexWND(puint16(@Themes[i].Colors^.Foreground)^, getTerminalHWND);
|
||||||
|
writestringWND(' Background: ', getTerminalHWND);
|
||||||
|
writehexlnWND(puint16(@Themes[i].Colors^.Background)^, getTerminalHWND);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure run(Params : PParamList);
|
||||||
|
begin
|
||||||
|
tracer.push_trace('themer.run');
|
||||||
|
if Handle = 0 then begin
|
||||||
|
Handle:= newWindow(20, 40, 65, 14, 'THEMER');
|
||||||
|
registerEventHandler(Handle, EVENT_DRAW, void(@Draw));
|
||||||
|
registerEventHandler(Handle, EVENT_CLOSE, void(@OnClose));
|
||||||
|
registerEventHandler(Handle, EVENT_KEY_PRESSED, void(@OnKeyPressed));
|
||||||
|
writestringlnWND('Themer Started.', getTerminalHWND);
|
||||||
|
Themes[0].ThemeName:= 'Windows';
|
||||||
|
Themes[0].Colors:= PRGB565Pair(getWindowColorPtr);
|
||||||
|
Themes[1].ThemeName:= 'Background';
|
||||||
|
Themes[1].Colors:= PRGB565Pair(getDesktopColorsPtr);
|
||||||
|
Themes[2].ThemeName:= 'Explore Button';
|
||||||
|
Themes[2].Colors:= PRGB565Pair(getExploreColorsPtr);
|
||||||
|
Themes[3].ThemeName:= 'Taskbar';
|
||||||
|
Themes[3].Colors:= PRGB565Pair(getTaskbarColorsPtr);
|
||||||
|
Selected:= 0;
|
||||||
|
ForeBack:= 0;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure init();
|
||||||
|
begin
|
||||||
|
Colors:= combineColors($0000, $FFFF);
|
||||||
|
tracer.push_trace('themer.init');
|
||||||
|
terminal.registerCommand('THEMER', @Run, 'Themer, for your themez.');
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
Loading…
x
Reference in New Issue
Block a user