From d4ea9c52ff9636b28351458c84b67245e6e9112b Mon Sep 17 00:00:00 2001 From: Aaron Hance Date: Tue, 22 Jun 2021 23:57:27 +0100 Subject: [PATCH] Fixed line endings --- doc/ACE.html | 120 +- doc/AllClasses.html | 498 +- doc/AllConstants.html | 1288 +-- doc/AllFunctions.html | 3548 ++++----- doc/AllIdentifiers.html | 6968 ++++++++--------- doc/AllTypes.html | 1468 ++-- doc/AllUnits.html | 740 +- doc/AllVariables.html | 478 +- doc/BPE.html | 120 +- doc/BTSSE.html | 120 +- doc/CFE.html | 120 +- doc/CSOE.html | 120 +- doc/ClassHierarchy.html | 68 +- doc/DBGE.html | 120 +- doc/DBZ.html | 120 +- doc/DFE.html | 120 +- doc/E1000.html | 1978 ++--- doc/EHCI.html | 120 +- doc/GPF.html | 120 +- doc/GVUses.dot | 1018 +-- doc/IDOE.html | 120 +- doc/IOPE.html | 120 +- doc/MCE.html | 120 +- doc/NCE.html | 120 +- doc/NMIE.html | 120 +- doc/OHCI.TOHCI_MMR.html | 494 +- doc/OHCI.html | 170 +- doc/OOBE.html | 120 +- doc/PCI.html | 430 +- doc/PF.html | 120 +- doc/PS2_KEYBOARD_ISR.html | 162 +- doc/RTC.TDateTime.html | 254 +- doc/RTC.html | 182 +- doc/SFE.html | 120 +- doc/SNPE.html | 120 +- doc/TMR_0_ISR.html | 160 +- doc/TMR_1_ISR.html | 160 +- doc/UHCI.html | 120 +- doc/UIE.html | 120 +- doc/USB.html | 120 +- doc/XHCI.html | 120 +- doc/_tipue_results.html | 96 +- doc/arp.TARPCacheRecord.html | 134 +- doc/arp.html | 290 +- doc/asuro.html | 398 +- doc/bios_data_area.TCounters.html | 154 +- doc/bios_data_area.html | 284 +- doc/console.html | 4328 +++++----- doc/contextswitcher.html | 86 +- doc/cpu.TCPUID.html | 174 +- doc/cpu.TClockSpeed.html | 174 +- doc/cpu.html | 306 +- doc/crc.html | 118 +- doc/drivermanagement.TDevEx.html | 134 +- doc/drivermanagement.TDeviceIdentifier.html | 234 +- doc/drivermanagement.TDeviceRegistration.html | 194 +- doc/drivermanagement.TDriverRegistration.html | 194 +- doc/drivermanagement.html | 460 +- doc/drivertypes.html | 158 +- doc/eth2.html | 180 +- doc/faults.html | 120 +- doc/fonts.html | 138 +- doc/gdt.TGDT_Entry.html | 214 +- doc/gdt.TGDT_Pointer.html | 134 +- doc/gdt.html | 286 +- doc/icmp.TARPHandler.html | 154 +- doc/icmp.html | 292 +- doc/idt.TIDT_Entry.html | 194 +- doc/idt.TIDT_Pointer.html | 134 +- doc/idt.html | 354 +- doc/index.html | 740 +- doc/ipv4.html | 180 +- doc/irq.html | 120 +- doc/isr.html | 120 +- doc/isr_types.TRegisters.html | 374 +- doc/isr_types.html | 208 +- doc/isrmanager.html | 208 +- doc/kernel.html | 122 +- doc/keyboard.TKeyInfo.html | 198 +- doc/keyboard.html | 358 +- doc/legend.html | 140 +- doc/lists.TLinkedList.html | 154 +- doc/lists.TLinkedListBase.html | 154 +- doc/lists.html | 510 +- doc/lmemorymanager.THeapPage.html | 154 +- doc/lmemorymanager.html | 370 +- doc/memview.html | 120 +- doc/mouse.TMousePacket.html | 274 +- doc/mouse.TMousePos.html | 134 +- doc/mouse.html | 198 +- doc/multiboot.elf_section_header_table_t.html | 174 +- doc/multiboot.html | 320 +- doc/multiboot.memory_map_t.html | 174 +- doc/multiboot.module_t.html | 174 +- doc/multiboot.multiboot_info_t.html | 614 +- doc/net.html | 260 +- doc/netlog.html | 140 +- doc/nettypes.TARPAbstractHeader.html | 278 +- doc/nettypes.TICMPHeader.html | 214 +- doc/nettypes.TIPV4AbstractHeader.html | 354 +- doc/nettypes.TIPv4Configuration.html | 174 +- doc/nettypes.TIPv4Pair.html | 134 +- doc/nettypes.TMACPair.html | 134 +- doc/nettypes.TPacketContext.html | 174 +- doc/nettypes.TProtocol.html | 174 +- doc/nettypes.TTCPFlags.html | 154 +- doc/nettypes.html | 568 +- doc/netutils.html | 440 +- doc/pasdoc.css | 406 +- doc/pmemorymanager.TPhysicalMemoryEntry.html | 174 +- doc/pmemorymanager.html | 250 +- doc/processloader.html | 86 +- doc/scheduler.TScheduler_Entry.html | 178 +- doc/scheduler.TTaskState.html | 82 +- doc/scheduler.html | 254 +- doc/serial.html | 268 +- doc/shell.html | 180 +- doc/splash.html | 120 +- doc/strings.html | 340 +- doc/system.html | 1504 ++-- doc/tcp.html | 88 +- doc/terminal.TCommand.html | 194 +- doc/terminal.THistory.html | 134 +- doc/terminal.TParamList.html | 134 +- doc/terminal.html | 654 +- doc/testdriver.html | 120 +- doc/themer.html | 120 +- doc/tipuesearch/tipuesearch_data.js | 2058 ++--- doc/tracer.html | 238 +- doc/tss.TTaskStateSegment.html | 854 +- doc/tss.html | 218 +- doc/types.html | 86 +- doc/udp.html | 88 +- doc/util.html | 868 +- doc/vmemorymanager.html | 436 +- doc/vmlog.html | 140 +- doc/vmstate.html | 120 +- linker.script | 72 +- src/backup/consoleBK1.pas | 1618 ++-- src/backup/consoleBK2.pas | 3052 ++++---- src/backup/consoleBK3.pas | 3788 ++++----- src/console.pas | 5418 ++++++------- src/include/multiboot.pas | 178 +- src/kernel.pas | 540 +- src/stub/stub.asm | 250 +- 145 files changed, 33869 insertions(+), 33869 deletions(-) diff --git a/doc/ACE.html b/doc/ACE.html index 9c2f7c33..814ecc13 100644 --- a/doc/ACE.html +++ b/doc/ACE.html @@ -1,60 +1,60 @@ - - - -Asuro: ACE - - - - - - - - -
-

Unit ACE

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->ACE - Alignment Check Exception. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: ACE + + + + + + + + +
+

Unit ACE

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->ACE - Alignment Check Exception. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/AllClasses.html b/doc/AllClasses.html index 909cf3ef..16626b0d 100644 --- a/doc/AllClasses.html +++ b/doc/AllClasses.html @@ -1,249 +1,249 @@ - - - -Asuro: All Classes, Interfaces, Objects and Records - - - - - - - - -
-

All Classes, Interfaces, Objects and Records

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameUnitDescription
elf_section_header_table_tmultiboot

 

memory_map_tmultiboot

 

module_tmultiboot

 

multiboot_info_tmultiboot

 

TARPAbstractHeadernettypes

ARP

TARPCacheRecordarp

 

TARPHandlericmp

 

TClockSpeedcpu

 

TCommandterminal

 

TCountersbios_data_area

 

TCPUIDcpu

 

TDateTimeRTC

 

TDevExdrivermanagement

 

TDeviceIdentifierdrivermanagement

 

TDeviceRegistrationdrivermanagement

 

TDriverRegistrationdrivermanagement

 

TGDT_Entrygdt

 

TGDT_Pointergdt

 

THeapPagelmemorymanager

 

THistoryterminal

 

TICMPHeadernettypes

 

TIDT_Entryidt

 

TIDT_Pointeridt

 

TIPV4AbstractHeadernettypes

 

TIPv4Configurationnettypes

 

TIPv4Pairnettypes

 

TKeyInfokeyboard

 

TLinkedListlists

 

TLinkedListBaselists

 

TMACPairnettypes

 

TMousePacketmouse

 

TMousePosmouse

 

TOHCI_MMROHCI

 

TPacketContextnettypes

 

TParamListterminal

 

TPhysicalMemoryEntrypmemorymanager

 

TProtocolnettypes

 

TRegistersisr_types

 

TScheduler_Entryscheduler

EAX, EDX,

TTaskStatescheduler

 

TTaskStateSegmenttss

 

TTCPFlagsnettypes

 

-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: All Classes, Interfaces, Objects and Records + + + + + + + + +
+

All Classes, Interfaces, Objects and Records

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameUnitDescription
elf_section_header_table_tmultiboot

 

memory_map_tmultiboot

 

module_tmultiboot

 

multiboot_info_tmultiboot

 

TARPAbstractHeadernettypes

ARP

TARPCacheRecordarp

 

TARPHandlericmp

 

TClockSpeedcpu

 

TCommandterminal

 

TCountersbios_data_area

 

TCPUIDcpu

 

TDateTimeRTC

 

TDevExdrivermanagement

 

TDeviceIdentifierdrivermanagement

 

TDeviceRegistrationdrivermanagement

 

TDriverRegistrationdrivermanagement

 

TGDT_Entrygdt

 

TGDT_Pointergdt

 

THeapPagelmemorymanager

 

THistoryterminal

 

TICMPHeadernettypes

 

TIDT_Entryidt

 

TIDT_Pointeridt

 

TIPV4AbstractHeadernettypes

 

TIPv4Configurationnettypes

 

TIPv4Pairnettypes

 

TKeyInfokeyboard

 

TLinkedListlists

 

TLinkedListBaselists

 

TMACPairnettypes

 

TMousePacketmouse

 

TMousePosmouse

 

TOHCI_MMROHCI

 

TPacketContextnettypes

 

TParamListterminal

 

TPhysicalMemoryEntrypmemorymanager

 

TProtocolnettypes

 

TRegistersisr_types

 

TScheduler_Entryscheduler

EAX, EDX,

TTaskStatescheduler

 

TTaskStateSegmenttss

 

TTCPFlagsnettypes

 

+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/AllConstants.html b/doc/AllConstants.html index 2b0f1264..32586674 100644 --- a/doc/AllConstants.html +++ b/doc/AllConstants.html @@ -1,644 +1,644 @@ - - - -Asuro: All Constants - - - - - - - - -
-

All Constants

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameUnitDescription
ALLOC_SPACElmemorymanager

 

BDAbios_data_area

 

BROADCAST_MACnettypes

MACs

BSOD_ENABLEsystem

 

CHECKSUMasuro

 

CMD_EOPE1000

Transmit Command

CMD_ICE1000

Insert FCS

CMD_IDEE1000

VLAN Packet Enable

CMD_IFCSE1000

End of Packet

CMD_RPSE1000

Report Status

CMD_RSE1000

Insert Checksum

CMD_VLEE1000

Report Packet Sent

COM1serial

 

COM2serial

 

COM3serial

 

COM4serial

 

COMPILE_DATEasuro

 

COMPILE_TIMEasuro

 

CONSOLE_SLOW_REDRAWsystem

 

DATA_OFFSETlmemorymanager

 

DefaultWNDconsole

The Window assigned for output when no Window is specified.

DRIVER_COUNTasuro

 

E1000_DEVE1000

 

E1000_NUM_RX_DESCE1000

Transmit Underrun

E1000_NUM_TX_DESCE1000

 

ECTRL_SLUE1000

Transmit Inter Packet Gap

FILE_COUNTasuro

 

FORCE_MACnettypes

 

FPC_VERSIONasuro

 

I217_DEVE1000

 

ICMP_DATA_GENERICnettypes

ICMP Data

idANYdrivermanagement

 

INTEL_VENDE1000

 

ISR_RING_0idt

 

ISR_RING_1idt

 

ISR_RING_2idt

 

ISR_RING_3idt

 

KERNEL_PAGE_NUMBERsystem

 

KERNEL_STACKSIZEmultiboot

 

KERNEL_VIRTUAL_BASEsystem

 

LINE_COUNTasuro

 

LM82577_DEVE1000

 

LSTA_TUE1000

Late Collision

MAKE_VERSIONasuro

 

MAX_ENTRIESlmemorymanager

64-Bit Allocations

MAX_HOOKSisr_types

 

MAX_WINDOWSconsole

Maximum number of Windows open.

MULTIBOOT_BOOTLOADER_MAGICmultiboot

 

NASM_VERSIONasuro

 

NULL_MACnettypes

 

PCI_PORT_CONF_ADDRPCI

 

PCI_PORT_CONF_DATAPCI

 

Quantumscheduler

 

RCTL_BAME1000

Multicast Offset - bits 43:32

RCTL_BSIZE_1024E1000

 

RCTL_BSIZE_16384E1000

 

RCTL_BSIZE_2048E1000

 

RCTL_BSIZE_256E1000

Strip Ethernet CRC Buffer Sizes

RCTL_BSIZE_4096E1000

 

RCTL_BSIZE_512E1000

 

RCTL_BSIZE_8192E1000

 

RCTL_CFIE1000

Canonical Form Indicator Enable

RCTL_CFIENE1000

VLAN Filter Enable

RCTL_DPFE1000

Canonical Form Indicator Bit Value

RCTL_ENE1000

set link up

RCTL_LBM_NONEE1000

Long Packet Reception Enable

RCTL_LBM_PHYE1000

No Loopback

RCTL_LPEE1000

Multicast Promiscuous Enabled

RCTL_MO_32E1000

Multicast Offset - bits 45:34

RCTL_MO_34E1000

Multicast Offset - bits 46:35

RCTL_MO_35E1000

Multicast Offset - bits 47:36

RCTL_MO_36E1000

Free Buffer Threshold is 1/8 of RDLEN

RCTL_MPEE1000

Unicast Promiscuous Enabled

RCTL_PMCFE1000

Discard Pause Frames

RCTL_SBPE1000

Receiver Enable

RCTL_SECRCE1000

Pass MAC Control Frames

RCTL_UPEE1000

Store Bad Packets

RCTL_VFEE1000

Broadcast Accept Mode

REG_CTRLE1000

 

REG_CTRL_EXTE1000

 

REG_EEPROME1000

 

REG_IMASKE1000

 

REG_RADVE1000

RX Descriptor Control

REG_RCTRLE1000

 

REG_RDTRE1000

 

REG_RSRPDE1000

RX Int.

REG_RXDCTLE1000

RX Delay Timer Register

REG_RXDESCHEADE1000

 

REG_RXDESCHIE1000

 

REG_RXDESCLENE1000

 

REG_RXDESCLOE1000

 

REG_RXDESCTAILE1000

 

REG_STATUSE1000

 

REG_TCTRLE1000

 

REG_TIPGE1000

RX Small Packet Detect Interrupt

REG_TXDESCHEADE1000

 

REG_TXDESCHIE1000

 

REG_TXDESCLENE1000

 

REG_TXDESCLOE1000

 

REG_TXDESCTAILE1000

 

RELEASEasuro

 

REVISIONasuro

 

RTCL_RDMTS_EIGHTHE1000

Free Buffer Threshold is 1/4 of RDLEN

RTCL_RDMTS_HALFE1000

PHY or external SerDesc loopback

RTCL_RDMTS_QUARTERE1000

Free Buffer Threshold is 1/2 of RDLEN

Std_Fontfonts

 

Std_Maskfonts

 

TCTL_COLD_SHIFTE1000

Collision Threshold

TCTL_CT_SHIFTE1000

Pad Short Packets

TCTL_ENE1000

Interrupt Delay Enable TCTL Register

TCTL_PSPE1000

Transmit Enable

TCTL_RTLCE1000

Software XOFF Transmission

TCTL_SWXOFFE1000

Collision Distance

TRACER_ENABLEsystem

 

TSTA_DDE1000

Re-transmit on Late Collision

TSTA_ECE1000

Descriptor Done

TSTA_LCE1000

Excess Collisions

VERSIONasuro

 

VERSION_MAJORasuro

 

VERSION_MINORasuro

 

VERSION_SUBasuro

 

-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: All Constants + + + + + + + + +
+

All Constants

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameUnitDescription
ALLOC_SPACElmemorymanager

 

BDAbios_data_area

 

BROADCAST_MACnettypes

MACs

BSOD_ENABLEsystem

 

CHECKSUMasuro

 

CMD_EOPE1000

Transmit Command

CMD_ICE1000

Insert FCS

CMD_IDEE1000

VLAN Packet Enable

CMD_IFCSE1000

End of Packet

CMD_RPSE1000

Report Status

CMD_RSE1000

Insert Checksum

CMD_VLEE1000

Report Packet Sent

COM1serial

 

COM2serial

 

COM3serial

 

COM4serial

 

COMPILE_DATEasuro

 

COMPILE_TIMEasuro

 

CONSOLE_SLOW_REDRAWsystem

 

DATA_OFFSETlmemorymanager

 

DefaultWNDconsole

The Window assigned for output when no Window is specified.

DRIVER_COUNTasuro

 

E1000_DEVE1000

 

E1000_NUM_RX_DESCE1000

Transmit Underrun

E1000_NUM_TX_DESCE1000

 

ECTRL_SLUE1000

Transmit Inter Packet Gap

FILE_COUNTasuro

 

FORCE_MACnettypes

 

FPC_VERSIONasuro

 

I217_DEVE1000

 

ICMP_DATA_GENERICnettypes

ICMP Data

idANYdrivermanagement

 

INTEL_VENDE1000

 

ISR_RING_0idt

 

ISR_RING_1idt

 

ISR_RING_2idt

 

ISR_RING_3idt

 

KERNEL_PAGE_NUMBERsystem

 

KERNEL_STACKSIZEmultiboot

 

KERNEL_VIRTUAL_BASEsystem

 

LINE_COUNTasuro

 

LM82577_DEVE1000

 

LSTA_TUE1000

Late Collision

MAKE_VERSIONasuro

 

MAX_ENTRIESlmemorymanager

64-Bit Allocations

MAX_HOOKSisr_types

 

MAX_WINDOWSconsole

Maximum number of Windows open.

MULTIBOOT_BOOTLOADER_MAGICmultiboot

 

NASM_VERSIONasuro

 

NULL_MACnettypes

 

PCI_PORT_CONF_ADDRPCI

 

PCI_PORT_CONF_DATAPCI

 

Quantumscheduler

 

RCTL_BAME1000

Multicast Offset - bits 43:32

RCTL_BSIZE_1024E1000

 

RCTL_BSIZE_16384E1000

 

RCTL_BSIZE_2048E1000

 

RCTL_BSIZE_256E1000

Strip Ethernet CRC Buffer Sizes

RCTL_BSIZE_4096E1000

 

RCTL_BSIZE_512E1000

 

RCTL_BSIZE_8192E1000

 

RCTL_CFIE1000

Canonical Form Indicator Enable

RCTL_CFIENE1000

VLAN Filter Enable

RCTL_DPFE1000

Canonical Form Indicator Bit Value

RCTL_ENE1000

set link up

RCTL_LBM_NONEE1000

Long Packet Reception Enable

RCTL_LBM_PHYE1000

No Loopback

RCTL_LPEE1000

Multicast Promiscuous Enabled

RCTL_MO_32E1000

Multicast Offset - bits 45:34

RCTL_MO_34E1000

Multicast Offset - bits 46:35

RCTL_MO_35E1000

Multicast Offset - bits 47:36

RCTL_MO_36E1000

Free Buffer Threshold is 1/8 of RDLEN

RCTL_MPEE1000

Unicast Promiscuous Enabled

RCTL_PMCFE1000

Discard Pause Frames

RCTL_SBPE1000

Receiver Enable

RCTL_SECRCE1000

Pass MAC Control Frames

RCTL_UPEE1000

Store Bad Packets

RCTL_VFEE1000

Broadcast Accept Mode

REG_CTRLE1000

 

REG_CTRL_EXTE1000

 

REG_EEPROME1000

 

REG_IMASKE1000

 

REG_RADVE1000

RX Descriptor Control

REG_RCTRLE1000

 

REG_RDTRE1000

 

REG_RSRPDE1000

RX Int.

REG_RXDCTLE1000

RX Delay Timer Register

REG_RXDESCHEADE1000

 

REG_RXDESCHIE1000

 

REG_RXDESCLENE1000

 

REG_RXDESCLOE1000

 

REG_RXDESCTAILE1000

 

REG_STATUSE1000

 

REG_TCTRLE1000

 

REG_TIPGE1000

RX Small Packet Detect Interrupt

REG_TXDESCHEADE1000

 

REG_TXDESCHIE1000

 

REG_TXDESCLENE1000

 

REG_TXDESCLOE1000

 

REG_TXDESCTAILE1000

 

RELEASEasuro

 

REVISIONasuro

 

RTCL_RDMTS_EIGHTHE1000

Free Buffer Threshold is 1/4 of RDLEN

RTCL_RDMTS_HALFE1000

PHY or external SerDesc loopback

RTCL_RDMTS_QUARTERE1000

Free Buffer Threshold is 1/2 of RDLEN

Std_Fontfonts

 

Std_Maskfonts

 

TCTL_COLD_SHIFTE1000

Collision Threshold

TCTL_CT_SHIFTE1000

Pad Short Packets

TCTL_ENE1000

Interrupt Delay Enable TCTL Register

TCTL_PSPE1000

Transmit Enable

TCTL_RTLCE1000

Software XOFF Transmission

TCTL_SWXOFFE1000

Collision Distance

TRACER_ENABLEsystem

 

TSTA_DDE1000

Re-transmit on Late Collision

TSTA_ECE1000

Descriptor Done

TSTA_LCE1000

Excess Collisions

VERSIONasuro

 

VERSION_MAJORasuro

 

VERSION_MINORasuro

 

VERSION_SUBasuro

 

+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/AllFunctions.html b/doc/AllFunctions.html index 697c6e46..fdced63f 100644 --- a/doc/AllFunctions.html +++ b/doc/AllFunctions.html @@ -1,1774 +1,1774 @@ - - - -Asuro: All Functions and Procedures - - - - - - - - -
-

All Functions and Procedures

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameUnitDescription
add_taskscheduler

 

alloc_blockpmemorymanager

 

backspaceconsole

Move the caret back 1 position and remove the character within the cell the caret occupies.

backspaceWNDconsole

Move a caret belonging to a Window back 1 position and remove the character within the cell the caret occupies.

BCDToUint8util

 

boolToStringstrings

 

bordersEnabledconsole

Enable or disable the drawing of the borders surrounding a Window.

BSODutil

 

calculateChecksumnetutils

 

clearconsole

Clear the Frame Buffer.

clearWNDconsole

Clear a Window Canvas.

clearWNDExconsole

Clear a Window Canvas, with the specified attributes.

CLIutil

 

closeAllWindowsconsole

Close all open Windows and release handles.

closeWindowconsole

Close a Window specified by its Handle

combinecolorsconsole

Combine two 16-bit values representing Foreground and Background respectively, into a 32-bit value representing an attribute.

contextIPv4Switchnetutils

 

contextMACSwitchnetutils

 

copyIPv4netutils

 

copyMACnetutils

 

CRC32crc

 

disable_cursorconsole

Text mode only! - Disable the cursor/text-caret.

div6432util

 

doneterminal

 

DrawCursormouse

 

drawPixelconsole

Draw 16-bits of pixel information at the screen position(x,y).

drawPixel32console

Draw 32-bits of pixel information at the screen position(x,y).

drawPixel64console

Draw 64-bits of pixel information at the screen position(x,y).

flushgdt

 

forceQuitAllconsole

Forcefully close all Windows

force_alloc_blockpmemorymanager

 

freePacketContextnetutils

 

freezetracer

 

free_blockpmemorymanager

 

free_pagevmemorymanager

 

free_page_at_addressvmemorymanager

 

get16bitcounterutil

 

get32bitcounterutil

 

get64bitcounterutil

 

getByteutil

 

getDateTimeRTC

 

getDesktopColorsPtrshell

 

getDeviceInfoPCI

 

getESPutil

 

getExploreColorsPtrshell

 

getIPv4Configipv4

 

getMACnet

 

getMACAddressE1000

 

getNetlogHWNDnetlog

 

getParamterminal

 

getParamsterminal

 

getPixelconsole

Get 16-bits of pixel information from the screen position(x,y).

getPixel32console

Get 32-bits of pixel information from the screen position(x,y).

getPixel64console

Get 64-bits of pixel information from the screen position(x,y).

getTaskbarColorsPtrshell

 

getTerminalHWNDterminal

 

getTSCutil

 

getVMLogHWNDvmlog

 

getWindowColorPtrconsole

Get a Pointer to the attribute used for Window Borders.

getWindowNameconsole

Get the title of a specified Window.

getWordutil

 

getWorkingDirectoryterminal

 

get_last_tracetracer

 

get_trace_counttracer

 

get_trace_Ntracer

 

GPFutil

 

haltterminal

 

halt_and_catch_fireutil

 

halt_and_dont_catch_fireutil

 

HexCharToDecimalutil

 

hexStringToIntstrings

 

hiutil

 

hookkeyboard

 

hookPS2_KEYBOARD_ISR

 

hookTMR_1_ISR

 

hookTMR_0_ISR

 

inbutil

 

initkeyboard

 

initPCI

 

initlmemorymanager

 

initsplash

 

initvmstate

 

initpmemorymanager

 

initRTC

 

initscheduler

 

initconsole

Initialize the Frame Buffer & Window Manager ready for use.

initterminal

 

initcpu

 

initnet

 

initnetlog

 

initgdt

 

initirq

 

initmemview

 

initmouse

 

initidt

 

initisr

 

initE1000

 

initdrivermanagement

 

initserial

 

initisrmanager

 

initfaults

 

initvmemorymanager

 

initshell

 

inittracer

 

inittss

 

initUSB

 

initthemer

 

initvmlog

 

inittestdriver

 

inlutil

 

INTEutil

 

intToStringstrings

 

inwutil

 

io_waitutil

 

IPEqualnetutils

 

IPv4ToMACarp

 

kalloclmemorymanager

 

kfreelmemorymanager

 

kmainkernel

 

kpalloclmemorymanager

 

lang_USAkeyboard

 

LL_Addlists

 

LL_Deletelists

 

LL_Freelists

 

LL_FromStringlists

 

LL_Getlists

 

LL_Insertlists

 

LL_Newlists

Managed Linked List

LL_Sizelists

 

loutil

 

loadUHCI

 

loadEHCI

 

loadOHCI

 

loadXHCI

 

loadDeviceConfigPCI

 

MACEqualnetutils

 

MACToIIPv4arp

 

map_pagevmemorymanager

 

map_page_exvmemorymanager

 

memcpyutil

 

memsetutil

 

mouseEnabledconsole

Enable or disable the mouse.

MsSinceSystemBootutil

 

newPacketContextnetutils

 

newWindowconsole

Spawn a new Window at cell(x,y) with specified Width, Height and Title.

new_blockpmemorymanager

 

new_kernel_mapped_page_directoryvmemorymanager

 

new_pagevmemorymanager

 

new_page_at_addressvmemorymanager

 

new_page_directoryvmemorymanager

 

outbutil

 

outlutil

 

Outputconsole

Simple console write for debugging.

outputCharconsole

Draw an ASCII char to raw screen space conforming to cell constraints.

outputCharToScreenSpaceconsole

Draw an ASCII char to raw screen space.

outputCharTransparentconsole

Draw an ASCII char without a background to raw screen space conforming to cell constraints.

Outputlnconsole

Simple console writeln for debugging.

OutputlnWNDconsole

Simple console writeln for debugging to a Window.

OutputWNDconsole

Simple console write for debugging to a Window.

outwutil

 

paramCountterminal

 

ping_erricmp

 

ping_repicmp

 

pop_tracetracer

 

printmemoryutil

 

printmemoryWNDutil

 

psleeputil

 

push_tracetracer

 

readStatusE1000

 

receiveserial

 

recvnet

 

redrawWindowsconsole

Redraw all of the Window adhearing to Z-Order.

registerPF

 

registerSNPE

 

registerPS2_KEYBOARD_ISR

 

registerOOBE

 

registerNCE

 

registerMCE

 

registerNMIE

 

registerSFE

 

registericmp

 

registerDFE

 

registerIDOE

 

registerTMR_0_ISR

 

registerGPF

 

registereth2

 

registerDBZ

 

registerCSOE

 

registerDBGE

 

registerTMR_1_ISR

 

registerCFE

 

registeripv4

 

registerACE

 

registerBTSSE

 

registerUIE

 

registerIOPE

 

registerBPE

 

registerarp

 

registerCommandterminal

 

registerCommandExterminal

 

registerEventHandlerconsole

Register an Event Handler to a Window

registerISRisrmanager

 

registerNetworkCardnet

 

registerNextLayernet

 

registerProtocolipv4

 

registerTypeeth2

 

registerTypePromisceth2

 

register_devicedrivermanagement

 

register_driverdrivermanagement

 

register_driver_exdrivermanagement

 

reloadgdt

 

requestConfigPCI

(Will in future)returns TPCI_DEVICE.vendor_id := 0xFFFF if no device found.

resetSystemutil

 

resolveIParp

 

runterminal

 

sameSubnetIPv4netutils

 

scanBusPCI

 

sendipv4

 

sendeth2

 

sendnet

 

sendserial

 

sendarp

 

sendGratuitousarp

 

sendICMPRequesticmp

 

sendPacketE1000

 

sendRequestarp

 

sendStringserial

 

setBusMasterPCI

 

setCursorPosWNDconsole

Set the caret belonging to a Window to a specified position.

setdefaultattributeconsole

Set the default set of attributes to be used when drawing to the screen.

setMousePositionconsole

Set the position of the mouse cursor relative to screen space.

SetShellWindowconsole

Set a specified Window as a Shell Window (Window cannot be moved or closed).

setWindowColorsconsole

Set the attributes used for drawing the border around Windows.

setWNDVisibleconsole

Change a Windows visibility.

setWorkingDirectoryterminal

 

set_gategdt

 

set_gateidt

 

sleeputil

 

STIutil

 

stringConcatstrings

 

stringContainsstrings

 

stringCopystrings

 

stringEqualsstrings

 

stringNewstrings

 

stringSizestrings

 

stringToIntstrings

 

stringToIPv4netutils

 

stringToLowerstrings

 

stringToMACnetutils

 

stringToUpperstrings

 

STRLL_Addlists

String Linked List

STRLL_Clearlists

 

STRLL_Deletelists

 

STRLL_Freelists

 

STRLL_FromStringlists

 

STRLL_Getlists

 

STRLL_Newlists

 

STRLL_Sizelists

 

switchendianutil

 

switchendian32util

 

tick_updatebios_data_area

 

toggleWNDVisibleconsole

Toggle the visibility of a Window.

unhookTMR_0_ISR

 

unhookTMR_1_ISR

 

unhookPS2_KEYBOARD_ISR

 

verifyChecksumnetutils

 

vtopvmemorymanager

 

weekdayToStringRTC

 

writebin16console

Write a 16-bit value as binary to the console.

writebin16exconsole

Write a 16-bit value as binary to the console, with the specified attributes.

writebin16exWNDconsole

Write a 16-bit value as binary to a Window, with the specified attributes.

writebin16lnconsole

Write an 16-bit value as binary to the console, followed by a new-line.

writebin16lnexconsole

Write a 16-bit value as binary + new-line to the console, with the specified attributes.

writebin16lnexWNDconsole

Write a 16-bit value as binary + new-line to a Window, with the specified attributes.

writebin16lnWNDconsole

Write an 16-bit value as binary to a Window, followed by a new-line.

writebin16WNDconsole

Write a 16-bit value as binary to a Window.

writebin32console

Write a 32-bit value as binary to the console.

writebin32exconsole

Write a 32-bit value as binary to the console, with the specified attributes.

writebin32exWNDconsole

Write a 32-bit value as binary to a Window, with the specified attributes.

writebin32lnconsole

Write an 32-bit value as binary to the console, followed by a new-line.

writebin32lnexconsole

Write a 32-bit value as binary + new-line to the console, with the specified attributes.

writebin32lnexWNDconsole

Write a 32-bit value as binary + new-line to a Window, with the specified attributes.

writebin32lnWNDconsole

Write an 32-bit value as binary to a Window, followed by a new-line.

writebin32WNDconsole

Write a 32-bit value as binary to a Window.

writebin8console

Write an 8-bit value as binary to the console.

writebin8exconsole

Write an 8-bit value as binary to the console, with the specified attributes.

writebin8exWNDconsole

Write an 8-bit value as binary to a Window, with the specified attributes.

writebin8lnconsole

Write an 8-bit value as binary to the console, followed by a new-line.

writebin8lnexconsole

Write an 8-bit value as binary + new-line to the console, with the specified attributes.

writebin8lnexWNDconsole

Write an 8-bit value as binary + new-line to a Window, with the specified attributes.

writebin8lnWNDconsole

Write an 8-bit value as binary to a Window, followed by a new-line.

writebin8WNDconsole

Write an 8-bit value as binary to a Window.

writecharconsole

Write a single 8-bit character to the screen.

writecharexconsole

Write a single 8-bit character to the screen, specifying custom color attributes.

writecharexWNDconsole

Write a single 8-bit character to a Window, specifying custom color attributes.

writecharlnconsole

Write a single 8-bit character to the screen, followed by starting a new line.

writecharlnexconsole

Write a single 8-bit character to the screen, followed by starting a new line, specifying custom color attributes.

writecharlnexWNDconsole

Write a single 8-bit character to a Window, followed by starting a new line, specifying custom color attributes.

writecharlnWNDconsole

Write a single 8-bit character to a Window, followed by starting a new line.

writecharWNDconsole

Write an ASCII character to a specified Window.

writeConfigPCI

 

writehexconsole

Write a 32-bit value as Hex Pairs to the console.

writehexexconsole

Write a 32-bit value as Hex Pairs to the console, with the specified attributes.

writehexexWNDconsole

Write a 32-bit value as Hex Pairs to a Window, with the specified attributes.

writehexlnconsole

Write a 32-bit value as Hex Pairs to the console, followed by a new-line.

writehexlnexconsole

Write a 32-bit value as Hex Pairs + new-line to the console, with the specified attributes.

writehexlnexWNDconsole

Write a 32-bit value as Hex Pairs + new-line to a Window, with the specified attributes.

writehexlnWNDconsole

Write a 32-bit value as Hex Pairs to a Window, followed by a new-line.

writehexpairconsole

Write an 8-bit Hex Pair to the console.

writehexpairExWNDconsole

Write an 8-bit Hex Pair to a Window, with the specified attributes.

writehexpairWNDconsole

Write an 8-bit Hex Pair to a Window.

writehexWNDconsole

Write a 32-bit value as Hex Pairs to a Window.

writeintconsole

Write a 32-bit value to the console.

writeintexconsole

Write a 32-bit value to the console, with the specified attributes.

writeintexWNDconsole

Write a 32-bit value to a Window, with the specified attributes.

writeintlnconsole

Write a 32-bit value to the console followed by a new-line.

writeintlnexconsole

Write a 32-bit value + new-line to the console, with the specified attributes.

writeintlnexWNDconsole

Write a 32-bit value + new-line to a Window, with the specified attributes.

writeintlnWNDconsole

Write a 32-bit value to a Window followed by a new-line.

writeintWNDconsole

Write a 32-bit value to a Window.

writeIPv4Addressnetutils

 

writeIPv4AddressExnetutils

 

writeMACAddressnetutils

 

writeMACAddressExnetutils

 

writestringconsole

Write a NULL terminated string to the console.

writestringexconsole

Write a NULL terminated string to the console, with the specified attributes.

writestringexWNDconsole

Write a NULL terminated string to a Window, with the specified attributes.

writestringlnconsole

Write a NULL terminated string to the console, followed by a new-line.

writestringlnexconsole

Write a NULL terminated string + new-line to the console, with the specified attributes.

writestringlnexWNDconsole

Write a NULL terminated string + new-line to a Window, with the specified attributes.

writestringlnWNDconsole

Write a NULL terminated string to a Window, followed by a new-line.

writestringWNDconsole

Write a NULL terminated string to a Window.

writeToLognet

 

writeToLogLnnet

 

_increment_xconsole

Increment the cursor one cell to the right (x+1).

_increment_x_WNDconsole

Increment the cursor within a Window one cell to the right (x+1).

_increment_yconsole

Increment the cursor one cell down (y+1).

_increment_y_WNDconsole

Increment the cursor within a Window one cell down (y+1).

_MouseClickconsole

Callback for a MouseClick event.

_MouseDownconsole

Callback for a MouseDown event.

_MouseUpconsole

Callback for a MouseUp event.

_newlineconsole

Increment the cursor one cell down and reposition it at the first X Cell (y+1, x=0),performing a Y-Axis scroll when needed.

_newlineWNDconsole

Increment the cursor within a Window one cell down and reposition it at the first X Cell (y+1, x=0),performing a Y-Axis scroll when needed.

_safeincrement_xconsole

Increment the cursor one cell to the right (x+1), wrapping to the next line and performing a Y-Axis scroll when when needed.

_safeincrement_x_WNDconsole

Increment the cursor within a Window one cell to the right (x+1), wrapping to the next line and performing a Y-Axis scroll when when needed.

_safeincrement_yconsole

Increment the cursor one cell down (y+1), performing a Y-Axis roll when when needed.

_safeincrement_y_WNDconsole

Increment the cursor one cell down (y+1), performing a Y-Axis roll when when needed.

-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: All Functions and Procedures + + + + + + + + +
+

All Functions and Procedures

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameUnitDescription
add_taskscheduler

 

alloc_blockpmemorymanager

 

backspaceconsole

Move the caret back 1 position and remove the character within the cell the caret occupies.

backspaceWNDconsole

Move a caret belonging to a Window back 1 position and remove the character within the cell the caret occupies.

BCDToUint8util

 

boolToStringstrings

 

bordersEnabledconsole

Enable or disable the drawing of the borders surrounding a Window.

BSODutil

 

calculateChecksumnetutils

 

clearconsole

Clear the Frame Buffer.

clearWNDconsole

Clear a Window Canvas.

clearWNDExconsole

Clear a Window Canvas, with the specified attributes.

CLIutil

 

closeAllWindowsconsole

Close all open Windows and release handles.

closeWindowconsole

Close a Window specified by its Handle

combinecolorsconsole

Combine two 16-bit values representing Foreground and Background respectively, into a 32-bit value representing an attribute.

contextIPv4Switchnetutils

 

contextMACSwitchnetutils

 

copyIPv4netutils

 

copyMACnetutils

 

CRC32crc

 

disable_cursorconsole

Text mode only! - Disable the cursor/text-caret.

div6432util

 

doneterminal

 

DrawCursormouse

 

drawPixelconsole

Draw 16-bits of pixel information at the screen position(x,y).

drawPixel32console

Draw 32-bits of pixel information at the screen position(x,y).

drawPixel64console

Draw 64-bits of pixel information at the screen position(x,y).

flushgdt

 

forceQuitAllconsole

Forcefully close all Windows

force_alloc_blockpmemorymanager

 

freePacketContextnetutils

 

freezetracer

 

free_blockpmemorymanager

 

free_pagevmemorymanager

 

free_page_at_addressvmemorymanager

 

get16bitcounterutil

 

get32bitcounterutil

 

get64bitcounterutil

 

getByteutil

 

getDateTimeRTC

 

getDesktopColorsPtrshell

 

getDeviceInfoPCI

 

getESPutil

 

getExploreColorsPtrshell

 

getIPv4Configipv4

 

getMACnet

 

getMACAddressE1000

 

getNetlogHWNDnetlog

 

getParamterminal

 

getParamsterminal

 

getPixelconsole

Get 16-bits of pixel information from the screen position(x,y).

getPixel32console

Get 32-bits of pixel information from the screen position(x,y).

getPixel64console

Get 64-bits of pixel information from the screen position(x,y).

getTaskbarColorsPtrshell

 

getTerminalHWNDterminal

 

getTSCutil

 

getVMLogHWNDvmlog

 

getWindowColorPtrconsole

Get a Pointer to the attribute used for Window Borders.

getWindowNameconsole

Get the title of a specified Window.

getWordutil

 

getWorkingDirectoryterminal

 

get_last_tracetracer

 

get_trace_counttracer

 

get_trace_Ntracer

 

GPFutil

 

haltterminal

 

halt_and_catch_fireutil

 

halt_and_dont_catch_fireutil

 

HexCharToDecimalutil

 

hexStringToIntstrings

 

hiutil

 

hookkeyboard

 

hookPS2_KEYBOARD_ISR

 

hookTMR_1_ISR

 

hookTMR_0_ISR

 

inbutil

 

initkeyboard

 

initPCI

 

initlmemorymanager

 

initsplash

 

initvmstate

 

initpmemorymanager

 

initRTC

 

initscheduler

 

initconsole

Initialize the Frame Buffer & Window Manager ready for use.

initterminal

 

initcpu

 

initnet

 

initnetlog

 

initgdt

 

initirq

 

initmemview

 

initmouse

 

initidt

 

initisr

 

initE1000

 

initdrivermanagement

 

initserial

 

initisrmanager

 

initfaults

 

initvmemorymanager

 

initshell

 

inittracer

 

inittss

 

initUSB

 

initthemer

 

initvmlog

 

inittestdriver

 

inlutil

 

INTEutil

 

intToStringstrings

 

inwutil

 

io_waitutil

 

IPEqualnetutils

 

IPv4ToMACarp

 

kalloclmemorymanager

 

kfreelmemorymanager

 

kmainkernel

 

kpalloclmemorymanager

 

lang_USAkeyboard

 

LL_Addlists

 

LL_Deletelists

 

LL_Freelists

 

LL_FromStringlists

 

LL_Getlists

 

LL_Insertlists

 

LL_Newlists

Managed Linked List

LL_Sizelists

 

loutil

 

loadUHCI

 

loadEHCI

 

loadOHCI

 

loadXHCI

 

loadDeviceConfigPCI

 

MACEqualnetutils

 

MACToIIPv4arp

 

map_pagevmemorymanager

 

map_page_exvmemorymanager

 

memcpyutil

 

memsetutil

 

mouseEnabledconsole

Enable or disable the mouse.

MsSinceSystemBootutil

 

newPacketContextnetutils

 

newWindowconsole

Spawn a new Window at cell(x,y) with specified Width, Height and Title.

new_blockpmemorymanager

 

new_kernel_mapped_page_directoryvmemorymanager

 

new_pagevmemorymanager

 

new_page_at_addressvmemorymanager

 

new_page_directoryvmemorymanager

 

outbutil

 

outlutil

 

Outputconsole

Simple console write for debugging.

outputCharconsole

Draw an ASCII char to raw screen space conforming to cell constraints.

outputCharToScreenSpaceconsole

Draw an ASCII char to raw screen space.

outputCharTransparentconsole

Draw an ASCII char without a background to raw screen space conforming to cell constraints.

Outputlnconsole

Simple console writeln for debugging.

OutputlnWNDconsole

Simple console writeln for debugging to a Window.

OutputWNDconsole

Simple console write for debugging to a Window.

outwutil

 

paramCountterminal

 

ping_erricmp

 

ping_repicmp

 

pop_tracetracer

 

printmemoryutil

 

printmemoryWNDutil

 

psleeputil

 

push_tracetracer

 

readStatusE1000

 

receiveserial

 

recvnet

 

redrawWindowsconsole

Redraw all of the Window adhearing to Z-Order.

registerPF

 

registerSNPE

 

registerPS2_KEYBOARD_ISR

 

registerOOBE

 

registerNCE

 

registerMCE

 

registerNMIE

 

registerSFE

 

registericmp

 

registerDFE

 

registerIDOE

 

registerTMR_0_ISR

 

registerGPF

 

registereth2

 

registerDBZ

 

registerCSOE

 

registerDBGE

 

registerTMR_1_ISR

 

registerCFE

 

registeripv4

 

registerACE

 

registerBTSSE

 

registerUIE

 

registerIOPE

 

registerBPE

 

registerarp

 

registerCommandterminal

 

registerCommandExterminal

 

registerEventHandlerconsole

Register an Event Handler to a Window

registerISRisrmanager

 

registerNetworkCardnet

 

registerNextLayernet

 

registerProtocolipv4

 

registerTypeeth2

 

registerTypePromisceth2

 

register_devicedrivermanagement

 

register_driverdrivermanagement

 

register_driver_exdrivermanagement

 

reloadgdt

 

requestConfigPCI

(Will in future)returns TPCI_DEVICE.vendor_id := 0xFFFF if no device found.

resetSystemutil

 

resolveIParp

 

runterminal

 

sameSubnetIPv4netutils

 

scanBusPCI

 

sendipv4

 

sendeth2

 

sendnet

 

sendserial

 

sendarp

 

sendGratuitousarp

 

sendICMPRequesticmp

 

sendPacketE1000

 

sendRequestarp

 

sendStringserial

 

setBusMasterPCI

 

setCursorPosWNDconsole

Set the caret belonging to a Window to a specified position.

setdefaultattributeconsole

Set the default set of attributes to be used when drawing to the screen.

setMousePositionconsole

Set the position of the mouse cursor relative to screen space.

SetShellWindowconsole

Set a specified Window as a Shell Window (Window cannot be moved or closed).

setWindowColorsconsole

Set the attributes used for drawing the border around Windows.

setWNDVisibleconsole

Change a Windows visibility.

setWorkingDirectoryterminal

 

set_gategdt

 

set_gateidt

 

sleeputil

 

STIutil

 

stringConcatstrings

 

stringContainsstrings

 

stringCopystrings

 

stringEqualsstrings

 

stringNewstrings

 

stringSizestrings

 

stringToIntstrings

 

stringToIPv4netutils

 

stringToLowerstrings

 

stringToMACnetutils

 

stringToUpperstrings

 

STRLL_Addlists

String Linked List

STRLL_Clearlists

 

STRLL_Deletelists

 

STRLL_Freelists

 

STRLL_FromStringlists

 

STRLL_Getlists

 

STRLL_Newlists

 

STRLL_Sizelists

 

switchendianutil

 

switchendian32util

 

tick_updatebios_data_area

 

toggleWNDVisibleconsole

Toggle the visibility of a Window.

unhookTMR_0_ISR

 

unhookTMR_1_ISR

 

unhookPS2_KEYBOARD_ISR

 

verifyChecksumnetutils

 

vtopvmemorymanager

 

weekdayToStringRTC

 

writebin16console

Write a 16-bit value as binary to the console.

writebin16exconsole

Write a 16-bit value as binary to the console, with the specified attributes.

writebin16exWNDconsole

Write a 16-bit value as binary to a Window, with the specified attributes.

writebin16lnconsole

Write an 16-bit value as binary to the console, followed by a new-line.

writebin16lnexconsole

Write a 16-bit value as binary + new-line to the console, with the specified attributes.

writebin16lnexWNDconsole

Write a 16-bit value as binary + new-line to a Window, with the specified attributes.

writebin16lnWNDconsole

Write an 16-bit value as binary to a Window, followed by a new-line.

writebin16WNDconsole

Write a 16-bit value as binary to a Window.

writebin32console

Write a 32-bit value as binary to the console.

writebin32exconsole

Write a 32-bit value as binary to the console, with the specified attributes.

writebin32exWNDconsole

Write a 32-bit value as binary to a Window, with the specified attributes.

writebin32lnconsole

Write an 32-bit value as binary to the console, followed by a new-line.

writebin32lnexconsole

Write a 32-bit value as binary + new-line to the console, with the specified attributes.

writebin32lnexWNDconsole

Write a 32-bit value as binary + new-line to a Window, with the specified attributes.

writebin32lnWNDconsole

Write an 32-bit value as binary to a Window, followed by a new-line.

writebin32WNDconsole

Write a 32-bit value as binary to a Window.

writebin8console

Write an 8-bit value as binary to the console.

writebin8exconsole

Write an 8-bit value as binary to the console, with the specified attributes.

writebin8exWNDconsole

Write an 8-bit value as binary to a Window, with the specified attributes.

writebin8lnconsole

Write an 8-bit value as binary to the console, followed by a new-line.

writebin8lnexconsole

Write an 8-bit value as binary + new-line to the console, with the specified attributes.

writebin8lnexWNDconsole

Write an 8-bit value as binary + new-line to a Window, with the specified attributes.

writebin8lnWNDconsole

Write an 8-bit value as binary to a Window, followed by a new-line.

writebin8WNDconsole

Write an 8-bit value as binary to a Window.

writecharconsole

Write a single 8-bit character to the screen.

writecharexconsole

Write a single 8-bit character to the screen, specifying custom color attributes.

writecharexWNDconsole

Write a single 8-bit character to a Window, specifying custom color attributes.

writecharlnconsole

Write a single 8-bit character to the screen, followed by starting a new line.

writecharlnexconsole

Write a single 8-bit character to the screen, followed by starting a new line, specifying custom color attributes.

writecharlnexWNDconsole

Write a single 8-bit character to a Window, followed by starting a new line, specifying custom color attributes.

writecharlnWNDconsole

Write a single 8-bit character to a Window, followed by starting a new line.

writecharWNDconsole

Write an ASCII character to a specified Window.

writeConfigPCI

 

writehexconsole

Write a 32-bit value as Hex Pairs to the console.

writehexexconsole

Write a 32-bit value as Hex Pairs to the console, with the specified attributes.

writehexexWNDconsole

Write a 32-bit value as Hex Pairs to a Window, with the specified attributes.

writehexlnconsole

Write a 32-bit value as Hex Pairs to the console, followed by a new-line.

writehexlnexconsole

Write a 32-bit value as Hex Pairs + new-line to the console, with the specified attributes.

writehexlnexWNDconsole

Write a 32-bit value as Hex Pairs + new-line to a Window, with the specified attributes.

writehexlnWNDconsole

Write a 32-bit value as Hex Pairs to a Window, followed by a new-line.

writehexpairconsole

Write an 8-bit Hex Pair to the console.

writehexpairExWNDconsole

Write an 8-bit Hex Pair to a Window, with the specified attributes.

writehexpairWNDconsole

Write an 8-bit Hex Pair to a Window.

writehexWNDconsole

Write a 32-bit value as Hex Pairs to a Window.

writeintconsole

Write a 32-bit value to the console.

writeintexconsole

Write a 32-bit value to the console, with the specified attributes.

writeintexWNDconsole

Write a 32-bit value to a Window, with the specified attributes.

writeintlnconsole

Write a 32-bit value to the console followed by a new-line.

writeintlnexconsole

Write a 32-bit value + new-line to the console, with the specified attributes.

writeintlnexWNDconsole

Write a 32-bit value + new-line to a Window, with the specified attributes.

writeintlnWNDconsole

Write a 32-bit value to a Window followed by a new-line.

writeintWNDconsole

Write a 32-bit value to a Window.

writeIPv4Addressnetutils

 

writeIPv4AddressExnetutils

 

writeMACAddressnetutils

 

writeMACAddressExnetutils

 

writestringconsole

Write a NULL terminated string to the console.

writestringexconsole

Write a NULL terminated string to the console, with the specified attributes.

writestringexWNDconsole

Write a NULL terminated string to a Window, with the specified attributes.

writestringlnconsole

Write a NULL terminated string to the console, followed by a new-line.

writestringlnexconsole

Write a NULL terminated string + new-line to the console, with the specified attributes.

writestringlnexWNDconsole

Write a NULL terminated string + new-line to a Window, with the specified attributes.

writestringlnWNDconsole

Write a NULL terminated string to a Window, followed by a new-line.

writestringWNDconsole

Write a NULL terminated string to a Window.

writeToLognet

 

writeToLogLnnet

 

_increment_xconsole

Increment the cursor one cell to the right (x+1).

_increment_x_WNDconsole

Increment the cursor within a Window one cell to the right (x+1).

_increment_yconsole

Increment the cursor one cell down (y+1).

_increment_y_WNDconsole

Increment the cursor within a Window one cell down (y+1).

_MouseClickconsole

Callback for a MouseClick event.

_MouseDownconsole

Callback for a MouseDown event.

_MouseUpconsole

Callback for a MouseUp event.

_newlineconsole

Increment the cursor one cell down and reposition it at the first X Cell (y+1, x=0),performing a Y-Axis scroll when needed.

_newlineWNDconsole

Increment the cursor within a Window one cell down and reposition it at the first X Cell (y+1, x=0),performing a Y-Axis scroll when needed.

_safeincrement_xconsole

Increment the cursor one cell to the right (x+1), wrapping to the next line and performing a Y-Axis scroll when when needed.

_safeincrement_x_WNDconsole

Increment the cursor within a Window one cell to the right (x+1), wrapping to the next line and performing a Y-Axis scroll when when needed.

_safeincrement_yconsole

Increment the cursor one cell down (y+1), performing a Y-Axis roll when when needed.

_safeincrement_y_WNDconsole

Increment the cursor one cell down (y+1), performing a Y-Axis roll when when needed.

+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/AllIdentifiers.html b/doc/AllIdentifiers.html index 6e38d809..3dceec5a 100644 --- a/doc/AllIdentifiers.html +++ b/doc/AllIdentifiers.html @@ -1,3484 +1,3484 @@ - - - -Asuro: All Identifiers - - - - - - - - -
-

All Identifiers

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameUnitDescription
Activescheduler

 

add_taskscheduler

 

alloc_blockpmemorymanager

 

ALLOC_SPACElmemorymanager

 

backspaceconsole

Move the caret back 1 position and remove the character within the cell the caret occupies.

backspaceWNDconsole

Move a caret belonging to a Window back 1 position and remove the character within the cell the caret occupies.

BCDToUint8util

 

BDAbios_data_area

 

bIndexterminal

 

boolToStringstrings

 

bordersEnabledconsole

Enable or disable the drawing of the borders surrounding a Window.

BROADCAST_MACnettypes

MACs

BSODutil

 

BSOD_ENABLEsystem

 

bufferterminal

 

bussesPCI

 

bus_countPCI

 

calculateChecksumnetutils

 

captin_hookkeyboard

 

CAP_NEWcpu

 

CAP_OLDcpu

 

cardinalsystem

Redraws the Window manager after every character, but slows performance.

CHECKSUMasuro

 

clearconsole

Clear the Frame Buffer.

clearWNDconsole

Clear a Window Canvas.

clearWNDExconsole

Clear a Window Canvas, with the specified attributes.

CLIutil

 

closeAllWindowsconsole

Close all open Windows and release handles.

closeWindowconsole

Close a Window specified by its Handle

CMD_EOPE1000

Transmit Command

CMD_ICE1000

Insert FCS

CMD_IDEE1000

VLAN Packet Enable

CMD_IFCSE1000

End of Packet

CMD_RPSE1000

Report Status

CMD_RSE1000

Insert Checksum

CMD_VLEE1000

Report Packet Sent

COM1serial

 

COM2serial

 

COM3serial

 

COM4serial

 

combinecolorsconsole

Combine two 16-bit values representing Foreground and Background respectively, into a 32-bit value representing an attribute.

Commandsterminal

 

COMPILE_DATEasuro

 

COMPILE_TIMEasuro

 

CONSOLE_SLOW_REDRAWsystem

 

contextIPv4Switchnetutils

 

contextMACSwitchnetutils

 

copyIPv4netutils

 

copyMACnetutils

 

Countersbios_data_area

 

CPUIDcpu

 

CRC32crc

 

DATA_OFFSETlmemorymanager

 

DefaultWNDconsole

The Window assigned for output when no Window is specified.

Devdrivermanagement

 

devicesPCI

 

device_countPCI

 

disable_cursorconsole

Text mode only! - Disable the cursor/text-caret.

div6432util

 

doneterminal

 

DrawCursormouse

 

drawPixelconsole

Draw 16-bits of pixel information at the screen position(x,y).

drawPixel32console

Draw 32-bits of pixel information at the screen position(x,y).

drawPixel64console

Draw 64-bits of pixel information at the screen position(x,y).

DRIVER_COUNTasuro

 

dwordsystem

 

E1000_DEVE1000

 

E1000_NUM_RX_DESCE1000

Transmit Underrun

E1000_NUM_TX_DESCE1000

 

ECTRL_SLUE1000

Transmit Inter Packet Gap

elf_section_header_table_tmultiboot

 

endptrutil

 

FILE_COUNTasuro

 

Floatsystem

 

flushgdt

 

forceQuitAllconsole

Forcefully close all Windows

force_alloc_blockpmemorymanager

 

FORCE_MACnettypes

 

FPC_VERSIONasuro

 

freePacketContextnetutils

 

freezetracer

 

free_blockpmemorymanager

 

free_pagevmemorymanager

 

free_page_at_addressvmemorymanager

 

gdt_entriesgdt

 

gdt_pointergdt

 

get16bitcounterutil

 

get32bitcounterutil

 

get64bitcounterutil

 

getByteutil

 

getDateTimeRTC

 

getDesktopColorsPtrshell

 

getDeviceInfoPCI

 

getESPutil

 

getExploreColorsPtrshell

 

getIPv4Configipv4

 

getMACnet

 

getMACAddressE1000

 

getNetlogHWNDnetlog

 

getParamterminal

 

getParamsterminal

 

getPixelconsole

Get 16-bits of pixel information from the screen position(x,y).

getPixel32console

Get 32-bits of pixel information from the screen position(x,y).

getPixel64console

Get 64-bits of pixel information from the screen position(x,y).

getTaskbarColorsPtrshell

 

getTerminalHWNDterminal

 

getTSCutil

 

getVMLogHWNDvmlog

 

getWindowColorPtrconsole

Get a Pointer to the attribute used for Window Borders.

getWindowNameconsole

Get the title of a specified Window.

getWordutil

 

getWorkingDirectoryterminal

 

get_device_countPCI

 

get_last_tracetracer

 

get_trace_counttracer

 

get_trace_Ntracer

 

GPFutil

 

haltterminal

 

HaltCBterminal

 

Haltedterminal

 

HaltIDterminal

 

halt_and_catch_fireutil

 

halt_and_dont_catch_fireutil

 

HexCharToDecimalutil

 

hexStringToIntstrings

 

hiutil

 

Historyterminal

 

hookTMR_0_ISR

 

hookTMR_1_ISR

 

hookPS2_KEYBOARD_ISR

 

hookkeyboard

 

hresultsystem

 

HWNDsystem

 

I217_DEVE1000

 

ICMP_DATA_GENERICnettypes

ICMP Data

idANYdrivermanagement

 

IDT_Entriesidt

 

IDT_Pointeridt

 

inbutil

 

initisr

 

initE1000

 

initdrivermanagement

 

initidt

 

initirq

 

initmemview

 

initmouse

 

initfaults

 

initvmemorymanager

 

initshell

 

initisrmanager

 

initserial

 

inittss

 

inittracer

 

initPCI

 

initkeyboard

 

initRTC

 

initlmemorymanager

 

initpmemorymanager

 

initvmstate

 

initsplash

 

initnet

 

initnetlog

 

initgdt

 

initcpu

 

initscheduler

 

initconsole

Initialize the Frame Buffer & Window Manager ready for use.

initterminal

 

initvmlog

 

inittestdriver

 

initUSB

 

initthemer

 

inlutil

 

INTEutil

 

integersystem

 

INTEL_VENDE1000

 

intToStringstrings

 

inwutil

 

io_waitutil

 

IPEqualnetutils

 

IPv4ToMACarp

 

ISR_RING_0idt

 

ISR_RING_1idt

 

ISR_RING_2idt

 

ISR_RING_3idt

 

is_altkeyboard

 

is_ctrlkeyboard

 

is_shiftkeyboard

 

kalloclmemorymanager

 

KERNEL_PAGE_DIRECTORYvmemorymanager

 

KERNEL_PAGE_NUMBERsystem

 

KERNEL_STACKSIZEmultiboot

 

KERNEL_VIRTUAL_BASEsystem

 

key_matrixkeyboard

 

key_matrix_shiftkeyboard

 

kfreelmemorymanager

 

kmainkernel

 

kpalloclmemorymanager

 

lang_USAkeyboard

 

LINE_COUNTasuro

 

LL_Addlists

 

LL_Deletelists

 

LL_Freelists

 

LL_FromStringlists

 

LL_Getlists

 

LL_Insertlists

 

LL_Newlists

Managed Linked List

LL_Sizelists

 

LM82577_DEVE1000

 

loutil

 

loadOHCI

 

loadXHCI

 

loadUHCI

 

loadEHCI

 

loadDeviceConfigPCI

 

LSTA_TUE1000

Late Collision

MACEqualnetutils

 

MACToIIPv4arp

 

MAKE_VERSIONasuro

 

map_pagevmemorymanager

 

map_page_exvmemorymanager

 

MAX_ENTRIESlmemorymanager

64-Bit Allocations

MAX_HOOKSisr_types

 

MAX_WINDOWSconsole

Maximum number of Windows open.

memcpyutil

 

memory_map_tmultiboot

 

memsetutil

 

module_tmultiboot

 

mouseEnabledconsole

Enable or disable the mouse.

MsSinceSystemBootutil

 

multibootinfomultiboot

 

multibootmagicmultiboot

 

MULTIBOOT_BOOTLOADER_MAGICmultiboot

 

multiboot_info_tmultiboot

 

NASM_VERSIONasuro

 

newPacketContextnetutils

 

newWindowconsole

Spawn a new Window at cell(x,y) with specified Width, Height and Title.

new_blockpmemorymanager

 

new_kernel_mapped_page_directoryvmemorymanager

 

new_pagevmemorymanager

 

new_page_at_addressvmemorymanager

 

new_page_directoryvmemorymanager

 

NULL_MACnettypes

 

outbutil

 

outlutil

 

Outputconsole

Simple console write for debugging.

outputCharconsole

Draw an ASCII char to raw screen space conforming to cell constraints.

outputCharToScreenSpaceconsole

Draw an ASCII char to raw screen space.

outputCharTransparentconsole

Draw an ASCII char without a background to raw screen space conforming to cell constraints.

Outputlnconsole

Simple console writeln for debugging.

OutputlnWNDconsole

Simple console writeln for debugging to a Window.

OutputWNDconsole

Simple console write for debugging to a Window.

outwutil

 

PageDirectoryvmemorymanager

 

paramCountterminal

 

PARPCacheRecordarp

 

PARPHeadernettypes

 

PBDAbios_data_area

 

PBitMasksystem

 

PCapabilities_Newcpu

 

PCapabilities_Oldcpu

 

pcharsystem

 

PCI_PORT_CONF_ADDRPCI

 

PCI_PORT_CONF_DATAPCI

 

PDevExdrivermanagement

 

PDeviceIdentifierdrivermanagement

 

PDeviceRegistrationdrivermanagement

 

PDoublesystem

 

PDriverRegistrationdrivermanagement

 

PE1000_rx_descE1000

 

PE1000_tx_descE1000

 

Pelf_section_header_table_tmultiboot

 

PEthernetHeadernettypes

ETH2

PFloatsystem

 

PGDT_Entrygdt

 

PHeapPagelmemorymanager

 

PHistoryterminal

 

PICMPHeadernettypes

ICMP

PIDT_Entryidt

 

PIDT_Pointeridt

 

ping_erricmp

 

ping_repicmp

 

PIPv4Configurationnettypes

Config

PIPV4Headernettypes

IPv4

PKeyInfokeyboard

 

PLinkedListlists

Managed Linked List

PLinkedListBaselists

 

PMasksystem

 

PMCFGbios_data_area

 

Pmemory_map_tmultiboot

 

Pmodule_tmultiboot

 

PMousePacketmouse

 

Pmultiboot_info_tmultiboot

 

POHCI_MMROHCI

 

pop_tracetracer

 

PPacketContextnettypes

Context

PPageDirectoryvmemorymanager

 

PPageDirEntryvmemorymanager

 

PParamListterminal

 

PPCI_Devicedrivertypes

 

pp_hook_methodkeyboard

 

pp_hook_methodisr_types

 

pp_voidisr_types

 

PRegistersisr_types

 

PRGB565system

 

PRGB565Pairsystem

 

printmemoryutil

 

printmemoryWNDutil

 

PScheduler_Entryscheduler

 

PsInt16system

 

PsInt32system

 

PsInt64system

 

PsInt8system

 

psleeputil

 

PTaskStateSegmenttss

 

ptrTaskStateSegmenttss

 

PuBytesystem

Pointer Types

PuInt16system

 

PuInt32system

 

PuInt64system

 

PuInt8system

 

push_tracetracer

 

Quantumscheduler

 

RCTL_BAME1000

Multicast Offset - bits 43:32

RCTL_BSIZE_1024E1000

 

RCTL_BSIZE_16384E1000

 

RCTL_BSIZE_2048E1000

 

RCTL_BSIZE_256E1000

Strip Ethernet CRC Buffer Sizes

RCTL_BSIZE_4096E1000

 

RCTL_BSIZE_512E1000

 

RCTL_BSIZE_8192E1000

 

RCTL_CFIE1000

Canonical Form Indicator Enable

RCTL_CFIENE1000

VLAN Filter Enable

RCTL_DPFE1000

Canonical Form Indicator Bit Value

RCTL_ENE1000

set link up

RCTL_LBM_NONEE1000

Long Packet Reception Enable

RCTL_LBM_PHYE1000

No Loopback

RCTL_LPEE1000

Multicast Promiscuous Enabled

RCTL_MO_32E1000

Multicast Offset - bits 45:34

RCTL_MO_34E1000

Multicast Offset - bits 46:35

RCTL_MO_35E1000

Multicast Offset - bits 47:36

RCTL_MO_36E1000

Free Buffer Threshold is 1/8 of RDLEN

RCTL_MPEE1000

Unicast Promiscuous Enabled

RCTL_PMCFE1000

Discard Pause Frames

RCTL_SBPE1000

Receiver Enable

RCTL_SECRCE1000

Pass MAC Control Frames

RCTL_UPEE1000

Store Bad Packets

RCTL_VFEE1000

Broadcast Accept Mode

readStatusE1000

 

receiveserial

 

recvnet

 

redrawWindowsconsole

Redraw all of the Window adhearing to Z-Order.

registerUIE

 

registerIOPE

 

registerarp

 

registerBPE

 

registerBTSSE

 

registerDFE

 

registericmp

 

registerSFE

 

registerGPF

 

registerTMR_0_ISR

 

registerIDOE

 

registerNMIE

 

registerPS2_KEYBOARD_ISR

 

registerSNPE

 

registerPF

 

registerMCE

 

registerNCE

 

registerOOBE

 

registeripv4

 

registerACE

 

registerDBGE

 

registerCFE

 

registerTMR_1_ISR

 

registerCSOE

 

registereth2

 

registerDBZ

 

registerCommandterminal

 

registerCommandExterminal

 

registerEventHandlerconsole

Register an Event Handler to a Window

registerISRisrmanager

 

registerNetworkCardnet

 

registerNextLayernet

 

registerProtocolipv4

 

registerTypeeth2

 

registerTypePromisceth2

 

register_devicedrivermanagement

 

register_driverdrivermanagement

 

register_driver_exdrivermanagement

 

REG_CTRLE1000

 

REG_CTRL_EXTE1000

 

REG_EEPROME1000

 

REG_IMASKE1000

 

REG_RADVE1000

RX Descriptor Control

REG_RCTRLE1000

 

REG_RDTRE1000

 

REG_RSRPDE1000

RX Int.

REG_RXDCTLE1000

RX Delay Timer Register

REG_RXDESCHEADE1000

 

REG_RXDESCHIE1000

 

REG_RXDESCLENE1000

 

REG_RXDESCLOE1000

 

REG_RXDESCTAILE1000

 

REG_STATUSE1000

 

REG_TCTRLE1000

 

REG_TIPGE1000

RX Small Packet Detect Interrupt

REG_TXDESCHEADE1000

 

REG_TXDESCHIE1000

 

REG_TXDESCLENE1000

 

REG_TXDESCLOE1000

 

REG_TXDESCTAILE1000

 

RELEASEasuro

 

reloadgdt

 

requestConfigPCI

(Will in future)returns TPCI_DEVICE.vendor_id := 0xFFFF if no device found.

resetSystemutil

 

resolveIParp

 

REVISIONasuro

 

Rootdrivermanagement

 

Root_Pagelmemorymanager

 

RTCL_RDMTS_EIGHTHE1000

Free Buffer Threshold is 1/4 of RDLEN

RTCL_RDMTS_HALFE1000

PHY or external SerDesc loopback

RTCL_RDMTS_QUARTERE1000

Free Buffer Threshold is 1/2 of RDLEN

runterminal

 

sameSubnetIPv4netutils

 

scanBusPCI

 

Search_Pagelmemorymanager

 

sendnet

 

sendipv4

 

sendserial

 

sendeth2

 

sendarp

 

sendGratuitousarp

 

sendICMPRequesticmp

 

sendPacketE1000

 

sendRequestarp

 

sendStringserial

 

setBusMasterPCI

 

setCursorPosWNDconsole

Set the caret belonging to a Window to a specified position.

setdefaultattributeconsole

Set the default set of attributes to be used when drawing to the screen.

setMousePositionconsole

Set the position of the mouse cursor relative to screen space.

SetShellWindowconsole

Set a specified Window as a Shell Window (Window cannot be moved or closed).

setWindowColorsconsole

Set the attributes used for drawing the border around Windows.

setWNDVisibleconsole

Change a Windows visibility.

setWorkingDirectoryterminal

 

set_gategdt

 

set_gateidt

 

sInt16system

 

sInt32system

 

sInt64system

 

sInt8system

 

sleeputil

 

stackutil

 

Std_Fontfonts

 

Std_Maskfonts

 

STIutil

 

stringConcatstrings

 

stringContainsstrings

 

stringCopystrings

 

stringEqualsstrings

 

stringNewstrings

 

stringSizestrings

 

stringToIntstrings

 

stringToIPv4netutils

 

stringToLowerstrings

 

stringToMACnetutils

 

stringToUpperstrings

 

STRLL_Addlists

String Linked List

STRLL_Clearlists

 

STRLL_Deletelists

 

STRLL_Freelists

 

STRLL_FromStringlists

 

STRLL_Getlists

 

STRLL_Newlists

 

STRLL_Sizelists

 

switchendianutil

 

switchendian32util

 

TARPAbstractHeadernettypes

ARP

TARPCacheRecordarp

 

TARPErrorCallbackicmp

 

TARPErrorCodeicmp

 

TARPHandlericmp

 

TARPHeadernettypes

 

TARPReplyCallbackicmp

 

TaskStateSegmenttss

 

TBDAbios_data_area

 

TBitMasksystem

 

TBusIdentifierdrivermanagement

 

TCapabilities_Newcpu

 

TCapabilities_Oldcpu

 

TCardTypeE1000

 

TClockSpeedcpu

 

TColorconsole

4-bit nibble representing a color.

TCommandterminal

 

TCommandBufferterminal

 

TCommandMethodterminal

 

TCountersbios_data_area

 

TCPUIDcpu

 

TCTL_COLD_SHIFTE1000

Collision Threshold

TCTL_CT_SHIFTE1000

Pad Short Packets

TCTL_ENE1000

Interrupt Delay Enable TCTL Register

TCTL_PSPE1000

Transmit Enable

TCTL_RTLCE1000

Software XOFF Transmission

TCTL_SWXOFFE1000

Collision Distance

TDateTimeRTC

 

TDevExdrivermanagement

 

TDeviceArraydrivertypes

 

TDeviceIdentifierdrivermanagement

 

TDeviceRegistrationdrivermanagement

 

TDriverLoadCallbackdrivermanagement

 

TDriverRegistrationdrivermanagement

 

TE1000_rx_descE1000

 

TE1000_tx_descE1000

 

TEthernetHeadernettypes

 

TEventTypeconsole

Window Manager Events.

TGDT_Entrygdt

 

TGDT_Pointergdt

 

THaltCallbackterminal

 

THeapEntrylmemorymanager

 

THeapPagelmemorymanager

 

THistoryterminal

 

tick_updatebios_data_area

 

TICMPHeadernettypes

 

TIDT_Entryidt

 

TIDT_Pointeridt

 

TIPV4AbstractHeadernettypes

 

TIPv4Addressnettypes

 

TIPv4Configurationnettypes

 

TIPV4Headernettypes

 

TIPv4Pairnettypes

 

TISRHookisrmanager

 

TISRHookArrayisrmanager

 

TISRNHookArrayisrmanager

 

TKeyInfokeyboard

 

TLinkedListlists

 

TLinkedListBaselists

 

TMACAddressnettypes

Generic

TMACPairnettypes

 

TMasksystem

 

TMCFGbios_data_area

 

TMousePacketmouse

 

TMousePosmouse

 

TNetSendCallbacknettypes

Callback Types

toggleWNDVisibleconsole

Toggle the visibility of a Window.

TOHCI_MMROHCI

 

TPacketContextnettypes

 

TPageDirectoryvmemorymanager

 

TPageDirEntryvmemorymanager

 

TParamListterminal

 

TPCI_Devicedrivertypes

 

TPCI_Device_BridgePCI

 

TPhysicalMemorypmemorymanager

 

TPhysicalMemoryEntrypmemorymanager

 

TProtocolnettypes

 

TRACER_ENABLEsystem

 

TRecvCallbacknettypes

 

TRegistersisr_types

 

TRGB565system

 

TRGB565Pairsystem

 

TScheduler_Entryscheduler

EAX, EDX,

TSTA_DDE1000

Re-transmit on Late Collision

TSTA_ECE1000

Descriptor Done

TSTA_LCE1000

Excess Collisions

TTaskStatescheduler

 

TTaskStateSegmenttss

 

TTCPFlagsnettypes

 

UBit1system

Alternate Types

UBit10system

 

UBit11system

 

UBit12system

 

UBit13system

 

UBit14system

 

UBit15system

 

UBit16system

 

UBit17system

 

UBit18system

 

UBit19system

 

UBit2system

 

UBit20system

 

UBit21system

 

UBit22system

 

UBit23system

 

UBit24system

 

UBit25system

 

UBit26system

 

UBit27system

 

UBit28system

 

UBit3system

 

UBit30system

 

UBit31system

 

UBit4system

 

UBit5system

 

UBit6system

 

UBit7system

 

UBit9system

 

uInt16system

 

uInt32system

 

uInt64system

 

uInt8system

Standard Types

unhookPS2_KEYBOARD_ISR

 

unhookTMR_0_ISR

 

unhookTMR_1_ISR

 

verifyChecksumnetutils

 

VERSIONasuro

 

VERSION_MAJORasuro

 

VERSION_MINORasuro

 

VERSION_SUBasuro

 

Voidsystem

 

vtopvmemorymanager

 

weekdayToStringRTC

 

Working_Directoryterminal

 

writebin16console

Write a 16-bit value as binary to the console.

writebin16exconsole

Write a 16-bit value as binary to the console, with the specified attributes.

writebin16exWNDconsole

Write a 16-bit value as binary to a Window, with the specified attributes.

writebin16lnconsole

Write an 16-bit value as binary to the console, followed by a new-line.

writebin16lnexconsole

Write a 16-bit value as binary + new-line to the console, with the specified attributes.

writebin16lnexWNDconsole

Write a 16-bit value as binary + new-line to a Window, with the specified attributes.

writebin16lnWNDconsole

Write an 16-bit value as binary to a Window, followed by a new-line.

writebin16WNDconsole

Write a 16-bit value as binary to a Window.

writebin32console

Write a 32-bit value as binary to the console.

writebin32exconsole

Write a 32-bit value as binary to the console, with the specified attributes.

writebin32exWNDconsole

Write a 32-bit value as binary to a Window, with the specified attributes.

writebin32lnconsole

Write an 32-bit value as binary to the console, followed by a new-line.

writebin32lnexconsole

Write a 32-bit value as binary + new-line to the console, with the specified attributes.

writebin32lnexWNDconsole

Write a 32-bit value as binary + new-line to a Window, with the specified attributes.

writebin32lnWNDconsole

Write an 32-bit value as binary to a Window, followed by a new-line.

writebin32WNDconsole

Write a 32-bit value as binary to a Window.

writebin8console

Write an 8-bit value as binary to the console.

writebin8exconsole

Write an 8-bit value as binary to the console, with the specified attributes.

writebin8exWNDconsole

Write an 8-bit value as binary to a Window, with the specified attributes.

writebin8lnconsole

Write an 8-bit value as binary to the console, followed by a new-line.

writebin8lnexconsole

Write an 8-bit value as binary + new-line to the console, with the specified attributes.

writebin8lnexWNDconsole

Write an 8-bit value as binary + new-line to a Window, with the specified attributes.

writebin8lnWNDconsole

Write an 8-bit value as binary to a Window, followed by a new-line.

writebin8WNDconsole

Write an 8-bit value as binary to a Window.

writecharconsole

Write a single 8-bit character to the screen.

writecharexconsole

Write a single 8-bit character to the screen, specifying custom color attributes.

writecharexWNDconsole

Write a single 8-bit character to a Window, specifying custom color attributes.

writecharlnconsole

Write a single 8-bit character to the screen, followed by starting a new line.

writecharlnexconsole

Write a single 8-bit character to the screen, followed by starting a new line, specifying custom color attributes.

writecharlnexWNDconsole

Write a single 8-bit character to a Window, followed by starting a new line, specifying custom color attributes.

writecharlnWNDconsole

Write a single 8-bit character to a Window, followed by starting a new line.

writecharWNDconsole

Write an ASCII character to a specified Window.

writeConfigPCI

 

writehexconsole

Write a 32-bit value as Hex Pairs to the console.

writehexexconsole

Write a 32-bit value as Hex Pairs to the console, with the specified attributes.

writehexexWNDconsole

Write a 32-bit value as Hex Pairs to a Window, with the specified attributes.

writehexlnconsole

Write a 32-bit value as Hex Pairs to the console, followed by a new-line.

writehexlnexconsole

Write a 32-bit value as Hex Pairs + new-line to the console, with the specified attributes.

writehexlnexWNDconsole

Write a 32-bit value as Hex Pairs + new-line to a Window, with the specified attributes.

writehexlnWNDconsole

Write a 32-bit value as Hex Pairs to a Window, followed by a new-line.

writehexpairconsole

Write an 8-bit Hex Pair to the console.

writehexpairExWNDconsole

Write an 8-bit Hex Pair to a Window, with the specified attributes.

writehexpairWNDconsole

Write an 8-bit Hex Pair to a Window.

writehexWNDconsole

Write a 32-bit value as Hex Pairs to a Window.

writeintconsole

Write a 32-bit value to the console.

writeintexconsole

Write a 32-bit value to the console, with the specified attributes.

writeintexWNDconsole

Write a 32-bit value to a Window, with the specified attributes.

writeintlnconsole

Write a 32-bit value to the console followed by a new-line.

writeintlnexconsole

Write a 32-bit value + new-line to the console, with the specified attributes.

writeintlnexWNDconsole

Write a 32-bit value + new-line to a Window, with the specified attributes.

writeintlnWNDconsole

Write a 32-bit value to a Window followed by a new-line.

writeintWNDconsole

Write a 32-bit value to a Window.

writeIPv4Addressnetutils

 

writeIPv4AddressExnetutils

 

writeMACAddressnetutils

 

writeMACAddressExnetutils

 

writestringconsole

Write a NULL terminated string to the console.

writestringexconsole

Write a NULL terminated string to the console, with the specified attributes.

writestringexWNDconsole

Write a NULL terminated string to a Window, with the specified attributes.

writestringlnconsole

Write a NULL terminated string to the console, followed by a new-line.

writestringlnexconsole

Write a NULL terminated string + new-line to the console, with the specified attributes.

writestringlnexWNDconsole

Write a NULL terminated string + new-line to a Window, with the specified attributes.

writestringlnWNDconsole

Write a NULL terminated string to a Window, followed by a new-line.

writestringWNDconsole

Write a NULL terminated string to a Window.

writeToLognet

 

writeToLogLnnet

 

_increment_xconsole

Increment the cursor one cell to the right (x+1).

_increment_x_WNDconsole

Increment the cursor within a Window one cell to the right (x+1).

_increment_yconsole

Increment the cursor one cell down (y+1).

_increment_y_WNDconsole

Increment the cursor within a Window one cell down (y+1).

_MouseClickconsole

Callback for a MouseClick event.

_MouseDownconsole

Callback for a MouseDown event.

_MouseUpconsole

Callback for a MouseUp event.

_newlineconsole

Increment the cursor one cell down and reposition it at the first X Cell (y+1, x=0),performing a Y-Axis scroll when needed.

_newlineWNDconsole

Increment the cursor within a Window one cell down and reposition it at the first X Cell (y+1, x=0),performing a Y-Axis scroll when needed.

_safeincrement_xconsole

Increment the cursor one cell to the right (x+1), wrapping to the next line and performing a Y-Axis scroll when when needed.

_safeincrement_x_WNDconsole

Increment the cursor within a Window one cell to the right (x+1), wrapping to the next line and performing a Y-Axis scroll when when needed.

_safeincrement_yconsole

Increment the cursor one cell down (y+1), performing a Y-Axis roll when when needed.

_safeincrement_y_WNDconsole

Increment the cursor one cell down (y+1), performing a Y-Axis roll when when needed.

-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: All Identifiers + + + + + + + + +
+

All Identifiers

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameUnitDescription
Activescheduler

 

add_taskscheduler

 

alloc_blockpmemorymanager

 

ALLOC_SPACElmemorymanager

 

backspaceconsole

Move the caret back 1 position and remove the character within the cell the caret occupies.

backspaceWNDconsole

Move a caret belonging to a Window back 1 position and remove the character within the cell the caret occupies.

BCDToUint8util

 

BDAbios_data_area

 

bIndexterminal

 

boolToStringstrings

 

bordersEnabledconsole

Enable or disable the drawing of the borders surrounding a Window.

BROADCAST_MACnettypes

MACs

BSODutil

 

BSOD_ENABLEsystem

 

bufferterminal

 

bussesPCI

 

bus_countPCI

 

calculateChecksumnetutils

 

captin_hookkeyboard

 

CAP_NEWcpu

 

CAP_OLDcpu

 

cardinalsystem

Redraws the Window manager after every character, but slows performance.

CHECKSUMasuro

 

clearconsole

Clear the Frame Buffer.

clearWNDconsole

Clear a Window Canvas.

clearWNDExconsole

Clear a Window Canvas, with the specified attributes.

CLIutil

 

closeAllWindowsconsole

Close all open Windows and release handles.

closeWindowconsole

Close a Window specified by its Handle

CMD_EOPE1000

Transmit Command

CMD_ICE1000

Insert FCS

CMD_IDEE1000

VLAN Packet Enable

CMD_IFCSE1000

End of Packet

CMD_RPSE1000

Report Status

CMD_RSE1000

Insert Checksum

CMD_VLEE1000

Report Packet Sent

COM1serial

 

COM2serial

 

COM3serial

 

COM4serial

 

combinecolorsconsole

Combine two 16-bit values representing Foreground and Background respectively, into a 32-bit value representing an attribute.

Commandsterminal

 

COMPILE_DATEasuro

 

COMPILE_TIMEasuro

 

CONSOLE_SLOW_REDRAWsystem

 

contextIPv4Switchnetutils

 

contextMACSwitchnetutils

 

copyIPv4netutils

 

copyMACnetutils

 

Countersbios_data_area

 

CPUIDcpu

 

CRC32crc

 

DATA_OFFSETlmemorymanager

 

DefaultWNDconsole

The Window assigned for output when no Window is specified.

Devdrivermanagement

 

devicesPCI

 

device_countPCI

 

disable_cursorconsole

Text mode only! - Disable the cursor/text-caret.

div6432util

 

doneterminal

 

DrawCursormouse

 

drawPixelconsole

Draw 16-bits of pixel information at the screen position(x,y).

drawPixel32console

Draw 32-bits of pixel information at the screen position(x,y).

drawPixel64console

Draw 64-bits of pixel information at the screen position(x,y).

DRIVER_COUNTasuro

 

dwordsystem

 

E1000_DEVE1000

 

E1000_NUM_RX_DESCE1000

Transmit Underrun

E1000_NUM_TX_DESCE1000

 

ECTRL_SLUE1000

Transmit Inter Packet Gap

elf_section_header_table_tmultiboot

 

endptrutil

 

FILE_COUNTasuro

 

Floatsystem

 

flushgdt

 

forceQuitAllconsole

Forcefully close all Windows

force_alloc_blockpmemorymanager

 

FORCE_MACnettypes

 

FPC_VERSIONasuro

 

freePacketContextnetutils

 

freezetracer

 

free_blockpmemorymanager

 

free_pagevmemorymanager

 

free_page_at_addressvmemorymanager

 

gdt_entriesgdt

 

gdt_pointergdt

 

get16bitcounterutil

 

get32bitcounterutil

 

get64bitcounterutil

 

getByteutil

 

getDateTimeRTC

 

getDesktopColorsPtrshell

 

getDeviceInfoPCI

 

getESPutil

 

getExploreColorsPtrshell

 

getIPv4Configipv4

 

getMACnet

 

getMACAddressE1000

 

getNetlogHWNDnetlog

 

getParamterminal

 

getParamsterminal

 

getPixelconsole

Get 16-bits of pixel information from the screen position(x,y).

getPixel32console

Get 32-bits of pixel information from the screen position(x,y).

getPixel64console

Get 64-bits of pixel information from the screen position(x,y).

getTaskbarColorsPtrshell

 

getTerminalHWNDterminal

 

getTSCutil

 

getVMLogHWNDvmlog

 

getWindowColorPtrconsole

Get a Pointer to the attribute used for Window Borders.

getWindowNameconsole

Get the title of a specified Window.

getWordutil

 

getWorkingDirectoryterminal

 

get_device_countPCI

 

get_last_tracetracer

 

get_trace_counttracer

 

get_trace_Ntracer

 

GPFutil

 

haltterminal

 

HaltCBterminal

 

Haltedterminal

 

HaltIDterminal

 

halt_and_catch_fireutil

 

halt_and_dont_catch_fireutil

 

HexCharToDecimalutil

 

hexStringToIntstrings

 

hiutil

 

Historyterminal

 

hookTMR_0_ISR

 

hookTMR_1_ISR

 

hookPS2_KEYBOARD_ISR

 

hookkeyboard

 

hresultsystem

 

HWNDsystem

 

I217_DEVE1000

 

ICMP_DATA_GENERICnettypes

ICMP Data

idANYdrivermanagement

 

IDT_Entriesidt

 

IDT_Pointeridt

 

inbutil

 

initisr

 

initE1000

 

initdrivermanagement

 

initidt

 

initirq

 

initmemview

 

initmouse

 

initfaults

 

initvmemorymanager

 

initshell

 

initisrmanager

 

initserial

 

inittss

 

inittracer

 

initPCI

 

initkeyboard

 

initRTC

 

initlmemorymanager

 

initpmemorymanager

 

initvmstate

 

initsplash

 

initnet

 

initnetlog

 

initgdt

 

initcpu

 

initscheduler

 

initconsole

Initialize the Frame Buffer & Window Manager ready for use.

initterminal

 

initvmlog

 

inittestdriver

 

initUSB

 

initthemer

 

inlutil

 

INTEutil

 

integersystem

 

INTEL_VENDE1000

 

intToStringstrings

 

inwutil

 

io_waitutil

 

IPEqualnetutils

 

IPv4ToMACarp

 

ISR_RING_0idt

 

ISR_RING_1idt

 

ISR_RING_2idt

 

ISR_RING_3idt

 

is_altkeyboard

 

is_ctrlkeyboard

 

is_shiftkeyboard

 

kalloclmemorymanager

 

KERNEL_PAGE_DIRECTORYvmemorymanager

 

KERNEL_PAGE_NUMBERsystem

 

KERNEL_STACKSIZEmultiboot

 

KERNEL_VIRTUAL_BASEsystem

 

key_matrixkeyboard

 

key_matrix_shiftkeyboard

 

kfreelmemorymanager

 

kmainkernel

 

kpalloclmemorymanager

 

lang_USAkeyboard

 

LINE_COUNTasuro

 

LL_Addlists

 

LL_Deletelists

 

LL_Freelists

 

LL_FromStringlists

 

LL_Getlists

 

LL_Insertlists

 

LL_Newlists

Managed Linked List

LL_Sizelists

 

LM82577_DEVE1000

 

loutil

 

loadOHCI

 

loadXHCI

 

loadUHCI

 

loadEHCI

 

loadDeviceConfigPCI

 

LSTA_TUE1000

Late Collision

MACEqualnetutils

 

MACToIIPv4arp

 

MAKE_VERSIONasuro

 

map_pagevmemorymanager

 

map_page_exvmemorymanager

 

MAX_ENTRIESlmemorymanager

64-Bit Allocations

MAX_HOOKSisr_types

 

MAX_WINDOWSconsole

Maximum number of Windows open.

memcpyutil

 

memory_map_tmultiboot

 

memsetutil

 

module_tmultiboot

 

mouseEnabledconsole

Enable or disable the mouse.

MsSinceSystemBootutil

 

multibootinfomultiboot

 

multibootmagicmultiboot

 

MULTIBOOT_BOOTLOADER_MAGICmultiboot

 

multiboot_info_tmultiboot

 

NASM_VERSIONasuro

 

newPacketContextnetutils

 

newWindowconsole

Spawn a new Window at cell(x,y) with specified Width, Height and Title.

new_blockpmemorymanager

 

new_kernel_mapped_page_directoryvmemorymanager

 

new_pagevmemorymanager

 

new_page_at_addressvmemorymanager

 

new_page_directoryvmemorymanager

 

NULL_MACnettypes

 

outbutil

 

outlutil

 

Outputconsole

Simple console write for debugging.

outputCharconsole

Draw an ASCII char to raw screen space conforming to cell constraints.

outputCharToScreenSpaceconsole

Draw an ASCII char to raw screen space.

outputCharTransparentconsole

Draw an ASCII char without a background to raw screen space conforming to cell constraints.

Outputlnconsole

Simple console writeln for debugging.

OutputlnWNDconsole

Simple console writeln for debugging to a Window.

OutputWNDconsole

Simple console write for debugging to a Window.

outwutil

 

PageDirectoryvmemorymanager

 

paramCountterminal

 

PARPCacheRecordarp

 

PARPHeadernettypes

 

PBDAbios_data_area

 

PBitMasksystem

 

PCapabilities_Newcpu

 

PCapabilities_Oldcpu

 

pcharsystem

 

PCI_PORT_CONF_ADDRPCI

 

PCI_PORT_CONF_DATAPCI

 

PDevExdrivermanagement

 

PDeviceIdentifierdrivermanagement

 

PDeviceRegistrationdrivermanagement

 

PDoublesystem

 

PDriverRegistrationdrivermanagement

 

PE1000_rx_descE1000

 

PE1000_tx_descE1000

 

Pelf_section_header_table_tmultiboot

 

PEthernetHeadernettypes

ETH2

PFloatsystem

 

PGDT_Entrygdt

 

PHeapPagelmemorymanager

 

PHistoryterminal

 

PICMPHeadernettypes

ICMP

PIDT_Entryidt

 

PIDT_Pointeridt

 

ping_erricmp

 

ping_repicmp

 

PIPv4Configurationnettypes

Config

PIPV4Headernettypes

IPv4

PKeyInfokeyboard

 

PLinkedListlists

Managed Linked List

PLinkedListBaselists

 

PMasksystem

 

PMCFGbios_data_area

 

Pmemory_map_tmultiboot

 

Pmodule_tmultiboot

 

PMousePacketmouse

 

Pmultiboot_info_tmultiboot

 

POHCI_MMROHCI

 

pop_tracetracer

 

PPacketContextnettypes

Context

PPageDirectoryvmemorymanager

 

PPageDirEntryvmemorymanager

 

PParamListterminal

 

PPCI_Devicedrivertypes

 

pp_hook_methodkeyboard

 

pp_hook_methodisr_types

 

pp_voidisr_types

 

PRegistersisr_types

 

PRGB565system

 

PRGB565Pairsystem

 

printmemoryutil

 

printmemoryWNDutil

 

PScheduler_Entryscheduler

 

PsInt16system

 

PsInt32system

 

PsInt64system

 

PsInt8system

 

psleeputil

 

PTaskStateSegmenttss

 

ptrTaskStateSegmenttss

 

PuBytesystem

Pointer Types

PuInt16system

 

PuInt32system

 

PuInt64system

 

PuInt8system

 

push_tracetracer

 

Quantumscheduler

 

RCTL_BAME1000

Multicast Offset - bits 43:32

RCTL_BSIZE_1024E1000

 

RCTL_BSIZE_16384E1000

 

RCTL_BSIZE_2048E1000

 

RCTL_BSIZE_256E1000

Strip Ethernet CRC Buffer Sizes

RCTL_BSIZE_4096E1000

 

RCTL_BSIZE_512E1000

 

RCTL_BSIZE_8192E1000

 

RCTL_CFIE1000

Canonical Form Indicator Enable

RCTL_CFIENE1000

VLAN Filter Enable

RCTL_DPFE1000

Canonical Form Indicator Bit Value

RCTL_ENE1000

set link up

RCTL_LBM_NONEE1000

Long Packet Reception Enable

RCTL_LBM_PHYE1000

No Loopback

RCTL_LPEE1000

Multicast Promiscuous Enabled

RCTL_MO_32E1000

Multicast Offset - bits 45:34

RCTL_MO_34E1000

Multicast Offset - bits 46:35

RCTL_MO_35E1000

Multicast Offset - bits 47:36

RCTL_MO_36E1000

Free Buffer Threshold is 1/8 of RDLEN

RCTL_MPEE1000

Unicast Promiscuous Enabled

RCTL_PMCFE1000

Discard Pause Frames

RCTL_SBPE1000

Receiver Enable

RCTL_SECRCE1000

Pass MAC Control Frames

RCTL_UPEE1000

Store Bad Packets

RCTL_VFEE1000

Broadcast Accept Mode

readStatusE1000

 

receiveserial

 

recvnet

 

redrawWindowsconsole

Redraw all of the Window adhearing to Z-Order.

registerUIE

 

registerIOPE

 

registerarp

 

registerBPE

 

registerBTSSE

 

registerDFE

 

registericmp

 

registerSFE

 

registerGPF

 

registerTMR_0_ISR

 

registerIDOE

 

registerNMIE

 

registerPS2_KEYBOARD_ISR

 

registerSNPE

 

registerPF

 

registerMCE

 

registerNCE

 

registerOOBE

 

registeripv4

 

registerACE

 

registerDBGE

 

registerCFE

 

registerTMR_1_ISR

 

registerCSOE

 

registereth2

 

registerDBZ

 

registerCommandterminal

 

registerCommandExterminal

 

registerEventHandlerconsole

Register an Event Handler to a Window

registerISRisrmanager

 

registerNetworkCardnet

 

registerNextLayernet

 

registerProtocolipv4

 

registerTypeeth2

 

registerTypePromisceth2

 

register_devicedrivermanagement

 

register_driverdrivermanagement

 

register_driver_exdrivermanagement

 

REG_CTRLE1000

 

REG_CTRL_EXTE1000

 

REG_EEPROME1000

 

REG_IMASKE1000

 

REG_RADVE1000

RX Descriptor Control

REG_RCTRLE1000

 

REG_RDTRE1000

 

REG_RSRPDE1000

RX Int.

REG_RXDCTLE1000

RX Delay Timer Register

REG_RXDESCHEADE1000

 

REG_RXDESCHIE1000

 

REG_RXDESCLENE1000

 

REG_RXDESCLOE1000

 

REG_RXDESCTAILE1000

 

REG_STATUSE1000

 

REG_TCTRLE1000

 

REG_TIPGE1000

RX Small Packet Detect Interrupt

REG_TXDESCHEADE1000

 

REG_TXDESCHIE1000

 

REG_TXDESCLENE1000

 

REG_TXDESCLOE1000

 

REG_TXDESCTAILE1000

 

RELEASEasuro

 

reloadgdt

 

requestConfigPCI

(Will in future)returns TPCI_DEVICE.vendor_id := 0xFFFF if no device found.

resetSystemutil

 

resolveIParp

 

REVISIONasuro

 

Rootdrivermanagement

 

Root_Pagelmemorymanager

 

RTCL_RDMTS_EIGHTHE1000

Free Buffer Threshold is 1/4 of RDLEN

RTCL_RDMTS_HALFE1000

PHY or external SerDesc loopback

RTCL_RDMTS_QUARTERE1000

Free Buffer Threshold is 1/2 of RDLEN

runterminal

 

sameSubnetIPv4netutils

 

scanBusPCI

 

Search_Pagelmemorymanager

 

sendnet

 

sendipv4

 

sendserial

 

sendeth2

 

sendarp

 

sendGratuitousarp

 

sendICMPRequesticmp

 

sendPacketE1000

 

sendRequestarp

 

sendStringserial

 

setBusMasterPCI

 

setCursorPosWNDconsole

Set the caret belonging to a Window to a specified position.

setdefaultattributeconsole

Set the default set of attributes to be used when drawing to the screen.

setMousePositionconsole

Set the position of the mouse cursor relative to screen space.

SetShellWindowconsole

Set a specified Window as a Shell Window (Window cannot be moved or closed).

setWindowColorsconsole

Set the attributes used for drawing the border around Windows.

setWNDVisibleconsole

Change a Windows visibility.

setWorkingDirectoryterminal

 

set_gategdt

 

set_gateidt

 

sInt16system

 

sInt32system

 

sInt64system

 

sInt8system

 

sleeputil

 

stackutil

 

Std_Fontfonts

 

Std_Maskfonts

 

STIutil

 

stringConcatstrings

 

stringContainsstrings

 

stringCopystrings

 

stringEqualsstrings

 

stringNewstrings

 

stringSizestrings

 

stringToIntstrings

 

stringToIPv4netutils

 

stringToLowerstrings

 

stringToMACnetutils

 

stringToUpperstrings

 

STRLL_Addlists

String Linked List

STRLL_Clearlists

 

STRLL_Deletelists

 

STRLL_Freelists

 

STRLL_FromStringlists

 

STRLL_Getlists

 

STRLL_Newlists

 

STRLL_Sizelists

 

switchendianutil

 

switchendian32util

 

TARPAbstractHeadernettypes

ARP

TARPCacheRecordarp

 

TARPErrorCallbackicmp

 

TARPErrorCodeicmp

 

TARPHandlericmp

 

TARPHeadernettypes

 

TARPReplyCallbackicmp

 

TaskStateSegmenttss

 

TBDAbios_data_area

 

TBitMasksystem

 

TBusIdentifierdrivermanagement

 

TCapabilities_Newcpu

 

TCapabilities_Oldcpu

 

TCardTypeE1000

 

TClockSpeedcpu

 

TColorconsole

4-bit nibble representing a color.

TCommandterminal

 

TCommandBufferterminal

 

TCommandMethodterminal

 

TCountersbios_data_area

 

TCPUIDcpu

 

TCTL_COLD_SHIFTE1000

Collision Threshold

TCTL_CT_SHIFTE1000

Pad Short Packets

TCTL_ENE1000

Interrupt Delay Enable TCTL Register

TCTL_PSPE1000

Transmit Enable

TCTL_RTLCE1000

Software XOFF Transmission

TCTL_SWXOFFE1000

Collision Distance

TDateTimeRTC

 

TDevExdrivermanagement

 

TDeviceArraydrivertypes

 

TDeviceIdentifierdrivermanagement

 

TDeviceRegistrationdrivermanagement

 

TDriverLoadCallbackdrivermanagement

 

TDriverRegistrationdrivermanagement

 

TE1000_rx_descE1000

 

TE1000_tx_descE1000

 

TEthernetHeadernettypes

 

TEventTypeconsole

Window Manager Events.

TGDT_Entrygdt

 

TGDT_Pointergdt

 

THaltCallbackterminal

 

THeapEntrylmemorymanager

 

THeapPagelmemorymanager

 

THistoryterminal

 

tick_updatebios_data_area

 

TICMPHeadernettypes

 

TIDT_Entryidt

 

TIDT_Pointeridt

 

TIPV4AbstractHeadernettypes

 

TIPv4Addressnettypes

 

TIPv4Configurationnettypes

 

TIPV4Headernettypes

 

TIPv4Pairnettypes

 

TISRHookisrmanager

 

TISRHookArrayisrmanager

 

TISRNHookArrayisrmanager

 

TKeyInfokeyboard

 

TLinkedListlists

 

TLinkedListBaselists

 

TMACAddressnettypes

Generic

TMACPairnettypes

 

TMasksystem

 

TMCFGbios_data_area

 

TMousePacketmouse

 

TMousePosmouse

 

TNetSendCallbacknettypes

Callback Types

toggleWNDVisibleconsole

Toggle the visibility of a Window.

TOHCI_MMROHCI

 

TPacketContextnettypes

 

TPageDirectoryvmemorymanager

 

TPageDirEntryvmemorymanager

 

TParamListterminal

 

TPCI_Devicedrivertypes

 

TPCI_Device_BridgePCI

 

TPhysicalMemorypmemorymanager

 

TPhysicalMemoryEntrypmemorymanager

 

TProtocolnettypes

 

TRACER_ENABLEsystem

 

TRecvCallbacknettypes

 

TRegistersisr_types

 

TRGB565system

 

TRGB565Pairsystem

 

TScheduler_Entryscheduler

EAX, EDX,

TSTA_DDE1000

Re-transmit on Late Collision

TSTA_ECE1000

Descriptor Done

TSTA_LCE1000

Excess Collisions

TTaskStatescheduler

 

TTaskStateSegmenttss

 

TTCPFlagsnettypes

 

UBit1system

Alternate Types

UBit10system

 

UBit11system

 

UBit12system

 

UBit13system

 

UBit14system

 

UBit15system

 

UBit16system

 

UBit17system

 

UBit18system

 

UBit19system

 

UBit2system

 

UBit20system

 

UBit21system

 

UBit22system

 

UBit23system

 

UBit24system

 

UBit25system

 

UBit26system

 

UBit27system

 

UBit28system

 

UBit3system

 

UBit30system

 

UBit31system

 

UBit4system

 

UBit5system

 

UBit6system

 

UBit7system

 

UBit9system

 

uInt16system

 

uInt32system

 

uInt64system

 

uInt8system

Standard Types

unhookPS2_KEYBOARD_ISR

 

unhookTMR_0_ISR

 

unhookTMR_1_ISR

 

verifyChecksumnetutils

 

VERSIONasuro

 

VERSION_MAJORasuro

 

VERSION_MINORasuro

 

VERSION_SUBasuro

 

Voidsystem

 

vtopvmemorymanager

 

weekdayToStringRTC

 

Working_Directoryterminal

 

writebin16console

Write a 16-bit value as binary to the console.

writebin16exconsole

Write a 16-bit value as binary to the console, with the specified attributes.

writebin16exWNDconsole

Write a 16-bit value as binary to a Window, with the specified attributes.

writebin16lnconsole

Write an 16-bit value as binary to the console, followed by a new-line.

writebin16lnexconsole

Write a 16-bit value as binary + new-line to the console, with the specified attributes.

writebin16lnexWNDconsole

Write a 16-bit value as binary + new-line to a Window, with the specified attributes.

writebin16lnWNDconsole

Write an 16-bit value as binary to a Window, followed by a new-line.

writebin16WNDconsole

Write a 16-bit value as binary to a Window.

writebin32console

Write a 32-bit value as binary to the console.

writebin32exconsole

Write a 32-bit value as binary to the console, with the specified attributes.

writebin32exWNDconsole

Write a 32-bit value as binary to a Window, with the specified attributes.

writebin32lnconsole

Write an 32-bit value as binary to the console, followed by a new-line.

writebin32lnexconsole

Write a 32-bit value as binary + new-line to the console, with the specified attributes.

writebin32lnexWNDconsole

Write a 32-bit value as binary + new-line to a Window, with the specified attributes.

writebin32lnWNDconsole

Write an 32-bit value as binary to a Window, followed by a new-line.

writebin32WNDconsole

Write a 32-bit value as binary to a Window.

writebin8console

Write an 8-bit value as binary to the console.

writebin8exconsole

Write an 8-bit value as binary to the console, with the specified attributes.

writebin8exWNDconsole

Write an 8-bit value as binary to a Window, with the specified attributes.

writebin8lnconsole

Write an 8-bit value as binary to the console, followed by a new-line.

writebin8lnexconsole

Write an 8-bit value as binary + new-line to the console, with the specified attributes.

writebin8lnexWNDconsole

Write an 8-bit value as binary + new-line to a Window, with the specified attributes.

writebin8lnWNDconsole

Write an 8-bit value as binary to a Window, followed by a new-line.

writebin8WNDconsole

Write an 8-bit value as binary to a Window.

writecharconsole

Write a single 8-bit character to the screen.

writecharexconsole

Write a single 8-bit character to the screen, specifying custom color attributes.

writecharexWNDconsole

Write a single 8-bit character to a Window, specifying custom color attributes.

writecharlnconsole

Write a single 8-bit character to the screen, followed by starting a new line.

writecharlnexconsole

Write a single 8-bit character to the screen, followed by starting a new line, specifying custom color attributes.

writecharlnexWNDconsole

Write a single 8-bit character to a Window, followed by starting a new line, specifying custom color attributes.

writecharlnWNDconsole

Write a single 8-bit character to a Window, followed by starting a new line.

writecharWNDconsole

Write an ASCII character to a specified Window.

writeConfigPCI

 

writehexconsole

Write a 32-bit value as Hex Pairs to the console.

writehexexconsole

Write a 32-bit value as Hex Pairs to the console, with the specified attributes.

writehexexWNDconsole

Write a 32-bit value as Hex Pairs to a Window, with the specified attributes.

writehexlnconsole

Write a 32-bit value as Hex Pairs to the console, followed by a new-line.

writehexlnexconsole

Write a 32-bit value as Hex Pairs + new-line to the console, with the specified attributes.

writehexlnexWNDconsole

Write a 32-bit value as Hex Pairs + new-line to a Window, with the specified attributes.

writehexlnWNDconsole

Write a 32-bit value as Hex Pairs to a Window, followed by a new-line.

writehexpairconsole

Write an 8-bit Hex Pair to the console.

writehexpairExWNDconsole

Write an 8-bit Hex Pair to a Window, with the specified attributes.

writehexpairWNDconsole

Write an 8-bit Hex Pair to a Window.

writehexWNDconsole

Write a 32-bit value as Hex Pairs to a Window.

writeintconsole

Write a 32-bit value to the console.

writeintexconsole

Write a 32-bit value to the console, with the specified attributes.

writeintexWNDconsole

Write a 32-bit value to a Window, with the specified attributes.

writeintlnconsole

Write a 32-bit value to the console followed by a new-line.

writeintlnexconsole

Write a 32-bit value + new-line to the console, with the specified attributes.

writeintlnexWNDconsole

Write a 32-bit value + new-line to a Window, with the specified attributes.

writeintlnWNDconsole

Write a 32-bit value to a Window followed by a new-line.

writeintWNDconsole

Write a 32-bit value to a Window.

writeIPv4Addressnetutils

 

writeIPv4AddressExnetutils

 

writeMACAddressnetutils

 

writeMACAddressExnetutils

 

writestringconsole

Write a NULL terminated string to the console.

writestringexconsole

Write a NULL terminated string to the console, with the specified attributes.

writestringexWNDconsole

Write a NULL terminated string to a Window, with the specified attributes.

writestringlnconsole

Write a NULL terminated string to the console, followed by a new-line.

writestringlnexconsole

Write a NULL terminated string + new-line to the console, with the specified attributes.

writestringlnexWNDconsole

Write a NULL terminated string + new-line to a Window, with the specified attributes.

writestringlnWNDconsole

Write a NULL terminated string to a Window, followed by a new-line.

writestringWNDconsole

Write a NULL terminated string to a Window.

writeToLognet

 

writeToLogLnnet

 

_increment_xconsole

Increment the cursor one cell to the right (x+1).

_increment_x_WNDconsole

Increment the cursor within a Window one cell to the right (x+1).

_increment_yconsole

Increment the cursor one cell down (y+1).

_increment_y_WNDconsole

Increment the cursor within a Window one cell down (y+1).

_MouseClickconsole

Callback for a MouseClick event.

_MouseDownconsole

Callback for a MouseDown event.

_MouseUpconsole

Callback for a MouseUp event.

_newlineconsole

Increment the cursor one cell down and reposition it at the first X Cell (y+1, x=0),performing a Y-Axis scroll when needed.

_newlineWNDconsole

Increment the cursor within a Window one cell down and reposition it at the first X Cell (y+1, x=0),performing a Y-Axis scroll when needed.

_safeincrement_xconsole

Increment the cursor one cell to the right (x+1), wrapping to the next line and performing a Y-Axis scroll when when needed.

_safeincrement_x_WNDconsole

Increment the cursor within a Window one cell to the right (x+1), wrapping to the next line and performing a Y-Axis scroll when when needed.

_safeincrement_yconsole

Increment the cursor one cell down (y+1), performing a Y-Axis roll when when needed.

_safeincrement_y_WNDconsole

Increment the cursor one cell down (y+1), performing a Y-Axis roll when when needed.

+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/AllTypes.html b/doc/AllTypes.html index 93d13302..4de1e1c4 100644 --- a/doc/AllTypes.html +++ b/doc/AllTypes.html @@ -1,734 +1,734 @@ - - - -Asuro: All Types - - - - - - - - -
-

All Types

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameUnitDescription
cardinalsystem

Redraws the Window manager after every character, but slows performance.

dwordsystem

 

Floatsystem

 

hresultsystem

 

HWNDsystem

 

integersystem

 

PARPCacheRecordarp

 

PARPHeadernettypes

 

PBDAbios_data_area

 

PBitMasksystem

 

PCapabilities_Newcpu

 

PCapabilities_Oldcpu

 

pcharsystem

 

PDevExdrivermanagement

 

PDeviceIdentifierdrivermanagement

 

PDeviceRegistrationdrivermanagement

 

PDoublesystem

 

PDriverRegistrationdrivermanagement

 

PE1000_rx_descE1000

 

PE1000_tx_descE1000

 

Pelf_section_header_table_tmultiboot

 

PEthernetHeadernettypes

ETH2

PFloatsystem

 

PGDT_Entrygdt

 

PHeapPagelmemorymanager

 

PHistoryterminal

 

PICMPHeadernettypes

ICMP

PIDT_Entryidt

 

PIDT_Pointeridt

 

PIPv4Configurationnettypes

Config

PIPV4Headernettypes

IPv4

PKeyInfokeyboard

 

PLinkedListlists

Managed Linked List

PLinkedListBaselists

 

PMasksystem

 

PMCFGbios_data_area

 

Pmemory_map_tmultiboot

 

Pmodule_tmultiboot

 

PMousePacketmouse

 

Pmultiboot_info_tmultiboot

 

POHCI_MMROHCI

 

PPacketContextnettypes

Context

PPageDirectoryvmemorymanager

 

PPageDirEntryvmemorymanager

 

PParamListterminal

 

PPCI_Devicedrivertypes

 

pp_hook_methodisr_types

 

pp_hook_methodkeyboard

 

pp_voidisr_types

 

PRegistersisr_types

 

PRGB565system

 

PRGB565Pairsystem

 

PScheduler_Entryscheduler

 

PsInt16system

 

PsInt32system

 

PsInt64system

 

PsInt8system

 

PTaskStateSegmenttss

 

PuBytesystem

Pointer Types

PuInt16system

 

PuInt32system

 

PuInt64system

 

PuInt8system

 

sInt16system

 

sInt32system

 

sInt64system

 

sInt8system

 

TARPErrorCallbackicmp

 

TARPErrorCodeicmp

 

TARPHeadernettypes

 

TARPReplyCallbackicmp

 

TBDAbios_data_area

 

TBitMasksystem

 

TBusIdentifierdrivermanagement

 

TCapabilities_Newcpu

 

TCapabilities_Oldcpu

 

TCardTypeE1000

 

TColorconsole

4-bit nibble representing a color.

TCommandBufferterminal

 

TCommandMethodterminal

 

TDeviceArraydrivertypes

 

TDriverLoadCallbackdrivermanagement

 

TE1000_rx_descE1000

 

TE1000_tx_descE1000

 

TEthernetHeadernettypes

 

TEventTypeconsole

Window Manager Events.

THaltCallbackterminal

 

THeapEntrylmemorymanager

 

TIPv4Addressnettypes

 

TIPV4Headernettypes

 

TISRHookisrmanager

 

TISRHookArrayisrmanager

 

TISRNHookArrayisrmanager

 

TMACAddressnettypes

Generic

TMasksystem

 

TMCFGbios_data_area

 

TNetSendCallbacknettypes

Callback Types

TPageDirectoryvmemorymanager

 

TPageDirEntryvmemorymanager

 

TPCI_Devicedrivertypes

 

TPCI_Device_BridgePCI

 

TPhysicalMemorypmemorymanager

 

TRecvCallbacknettypes

 

TRGB565system

 

TRGB565Pairsystem

 

UBit1system

Alternate Types

UBit10system

 

UBit11system

 

UBit12system

 

UBit13system

 

UBit14system

 

UBit15system

 

UBit16system

 

UBit17system

 

UBit18system

 

UBit19system

 

UBit2system

 

UBit20system

 

UBit21system

 

UBit22system

 

UBit23system

 

UBit24system

 

UBit25system

 

UBit26system

 

UBit27system

 

UBit28system

 

UBit3system

 

UBit30system

 

UBit31system

 

UBit4system

 

UBit5system

 

UBit6system

 

UBit7system

 

UBit9system

 

uInt16system

 

uInt32system

 

uInt64system

 

uInt8system

Standard Types

Voidsystem

 

-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: All Types + + + + + + + + +
+

All Types

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameUnitDescription
cardinalsystem

Redraws the Window manager after every character, but slows performance.

dwordsystem

 

Floatsystem

 

hresultsystem

 

HWNDsystem

 

integersystem

 

PARPCacheRecordarp

 

PARPHeadernettypes

 

PBDAbios_data_area

 

PBitMasksystem

 

PCapabilities_Newcpu

 

PCapabilities_Oldcpu

 

pcharsystem

 

PDevExdrivermanagement

 

PDeviceIdentifierdrivermanagement

 

PDeviceRegistrationdrivermanagement

 

PDoublesystem

 

PDriverRegistrationdrivermanagement

 

PE1000_rx_descE1000

 

PE1000_tx_descE1000

 

Pelf_section_header_table_tmultiboot

 

PEthernetHeadernettypes

ETH2

PFloatsystem

 

PGDT_Entrygdt

 

PHeapPagelmemorymanager

 

PHistoryterminal

 

PICMPHeadernettypes

ICMP

PIDT_Entryidt

 

PIDT_Pointeridt

 

PIPv4Configurationnettypes

Config

PIPV4Headernettypes

IPv4

PKeyInfokeyboard

 

PLinkedListlists

Managed Linked List

PLinkedListBaselists

 

PMasksystem

 

PMCFGbios_data_area

 

Pmemory_map_tmultiboot

 

Pmodule_tmultiboot

 

PMousePacketmouse

 

Pmultiboot_info_tmultiboot

 

POHCI_MMROHCI

 

PPacketContextnettypes

Context

PPageDirectoryvmemorymanager

 

PPageDirEntryvmemorymanager

 

PParamListterminal

 

PPCI_Devicedrivertypes

 

pp_hook_methodisr_types

 

pp_hook_methodkeyboard

 

pp_voidisr_types

 

PRegistersisr_types

 

PRGB565system

 

PRGB565Pairsystem

 

PScheduler_Entryscheduler

 

PsInt16system

 

PsInt32system

 

PsInt64system

 

PsInt8system

 

PTaskStateSegmenttss

 

PuBytesystem

Pointer Types

PuInt16system

 

PuInt32system

 

PuInt64system

 

PuInt8system

 

sInt16system

 

sInt32system

 

sInt64system

 

sInt8system

 

TARPErrorCallbackicmp

 

TARPErrorCodeicmp

 

TARPHeadernettypes

 

TARPReplyCallbackicmp

 

TBDAbios_data_area

 

TBitMasksystem

 

TBusIdentifierdrivermanagement

 

TCapabilities_Newcpu

 

TCapabilities_Oldcpu

 

TCardTypeE1000

 

TColorconsole

4-bit nibble representing a color.

TCommandBufferterminal

 

TCommandMethodterminal

 

TDeviceArraydrivertypes

 

TDriverLoadCallbackdrivermanagement

 

TE1000_rx_descE1000

 

TE1000_tx_descE1000

 

TEthernetHeadernettypes

 

TEventTypeconsole

Window Manager Events.

THaltCallbackterminal

 

THeapEntrylmemorymanager

 

TIPv4Addressnettypes

 

TIPV4Headernettypes

 

TISRHookisrmanager

 

TISRHookArrayisrmanager

 

TISRNHookArrayisrmanager

 

TMACAddressnettypes

Generic

TMasksystem

 

TMCFGbios_data_area

 

TNetSendCallbacknettypes

Callback Types

TPageDirectoryvmemorymanager

 

TPageDirEntryvmemorymanager

 

TPCI_Devicedrivertypes

 

TPCI_Device_BridgePCI

 

TPhysicalMemorypmemorymanager

 

TRecvCallbacknettypes

 

TRGB565system

 

TRGB565Pairsystem

 

UBit1system

Alternate Types

UBit10system

 

UBit11system

 

UBit12system

 

UBit13system

 

UBit14system

 

UBit15system

 

UBit16system

 

UBit17system

 

UBit18system

 

UBit19system

 

UBit2system

 

UBit20system

 

UBit21system

 

UBit22system

 

UBit23system

 

UBit24system

 

UBit25system

 

UBit26system

 

UBit27system

 

UBit28system

 

UBit3system

 

UBit30system

 

UBit31system

 

UBit4system

 

UBit5system

 

UBit6system

 

UBit7system

 

UBit9system

 

uInt16system

 

uInt32system

 

uInt64system

 

uInt8system

Standard Types

Voidsystem

 

+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/AllUnits.html b/doc/AllUnits.html index 2d95d7c4..0e6160c7 100644 --- a/doc/AllUnits.html +++ b/doc/AllUnits.html @@ -1,370 +1,370 @@ - - - -Asuro: All Units - - - - - - - - -
-

All Units

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescription
ACE

Fault->ACE - Alignment Check Exception.

arp

Driver->Net->L3->ARP - Address Resolution Protocol Driver.

asuro

Include->Asuro - Auto-Generated Version & Compilation Information - -

bios_data_area

Include->BIOS_Data_Area - Data Structures Controlled by the BIOS.

BPE

Fault->BPE - Break Point Exception.

BTSSE

Fault->BTSSE - Bad TSS Exception.

CFE

Fault->CFE - Coprocessor Fault Exception.

console

Console - Provides Screen/Window management & drawing.

contextswitcher

ContextSwitcher - Switch Process Contexts when preempted.

cpu

CPU - CPU Structures & Utility/Capabilities Functions.

crc

Include->CRC - CRC32 Implementation.

CSOE

Fault->CSOE - Coprocessor Seg Overruun Exception.

DBGE

Fault->DBGE - Debug Exception.

DBZ

Fault->DBZ - Divide By Zero Exception.

DFE

Fault->DFE - Double Fault Exception.

drivermanagement

DriverManagement - Driver Initialization & Management Interface.

drivertypes

Driver->Include->DriverTypes - Structs & Data Shared Across Drivers.

E1000

Driver->NetDev->E1000 - Intel E1000/I217/82577LM Network Card Driver.

EHCI

Driver->Bus->EHCI - Enhanced Host Controller Interface Driver.

eth2

Driver->Net->L2->Eth2 - Ethernet Driver.

faults

Faults - Fault Registration & Detouring.

fonts

Include->Fonts - Standard Fonts & Font Masks.

gdt

Global Descriptor Table - Data Structures & Interface.

GPF

Fault->GPF - General Protection Fault.

icmp

Driver->Net->L4->ICMP - Internet Control Message Protocol Driver, - -

IDOE

Fault->IDO - Into Detected Overflow Exception.

idt

Interrupt Descriptor Table - Structures & Interface.

IOPE

Fault->IOPE - Invalid OPCode Exception.

ipv4

Driver->Net->L3->IPv4 - Internet Protocol Version 4 Driver.

irq

Interrupt Request Line - Initialization & Remapping.

isr

ISR Driver - Initialization (stub).

isrmanager

ISR->ISRManager - Interrupt Service Routine Registration, Dispatch & Management.

isr_types

ISR->ISR_Types - Interrupt Service Routine Structures.

kernel

Kernel Main - Main Kernel Entry Point.

keyboard

Driver->HID->Keyboard - Keyboard Driver.

lists

Include->Lists - Linked List Data Structures & Helpers.

lmemorymanager

LMemoryManager - Logical Memory Management - -

MCE

Fault->MCE - Machine Check Exception.

memview

Prog->MemView - Live Memory View.

mouse

Driver->HID->Mouse - Mouse Driver.

multiboot

Include->Multiboot - Multiboot Structures & Access.

NCE

Fault->NCE - No Coprocessor Exception.

net

Driver->Net->L1->Net - Network Card<->Driver Interface.

netlog

Prog->NetLog - Network Driver Logs.

nettypes

Driver->Net->NetTypes - Structures & Types Shared Across Network Drivers.

netutils

Driver->Net->NetUtils - Helper Functions For Network Drivers.

NMIE

Fault->NMIE - Non-Maskable Interrupt Exception.

OHCI

Driver->Bus->OHCI - Open Host Controller Interface Driver.

OOBE

Fault->OOBE - Out Of Bounds Exception.

PCI

Driver->Bus->PCI - Peripheral Component Interconnect Driver.

PF

Fault->PF - Page Fault.

pmemorymanager

PMemoryManager - Physical Memory Management - -

processloader

ProcessLoader - Process Initialization & Tasking (stub).

PS2_KEYBOARD_ISR

Driver->HID->PS2_KEYBAORD_ISR - PS2 ISR Hook & Driver.

RTC

Driver->Timers->RTC - Real Time Clock Driver.

scheduler

Scheduler - Schedules Context Switches.

serial

Driver->Interface->Serial - Serial Driver.

SFE

Fault->SFE - Stack Fault Exception.

shell

Prog->Shell - Main Desktop UI.

SNPE

Fault->SNPE - Segment Not Present Exception.

splash

Prog->Splash - Asuro Splash Screen.

strings

Include->Strings - String Manipulation.

system

Include->System - Base Types & Structures.

tcp

Driver->Net->L4->TCP - Transmission Control Protocol Driver.

terminal

Prog->Terminal - Interactive Command Line Environment.

testdriver

Driver->Exp->TestDriver - Dummy Driver For Testing.

themer

Prog->Themer - Live Desktop Color Picker.

TMR_0_ISR

Driver->Timer->TMR_0_ISR - 1024hz Timer Driver.

TMR_1_ISR

Driver->Timer->TMR_1_ISR - 1024/s Timer Driver.

tracer

Tracer - Trace stack for debugging method calls.

tss

TSS - Task State Segment (stub).

types

Include->Types - Dummy Unit For VM Compatability.

udp

Driver->Net->L4->UDP - User Datagram Protocol Driver.

UHCI

Driver->Bus->UHCI - Universal Host Controller Interface Driver.

UIE

Fault->UIE - Unknown Interrupt Exception.

USB

Driver->Bus->USB - Universal Serial Bus Driver/Interface.

util

Include->Util - Data Manipulation Utlities.

vmemorymanager

VMemoryManager - Virtual Memory Management.

vmlog

Prog->VMLog - Virtual Machine Event Log.

vmstate

Prog->VMState - Live MINJ Virtual Machine State Information.

XHCI

Driver->Bus->XHCI - eXtensible Host Controller Interface Driver.

-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: All Units + + + + + + + + +
+

All Units

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescription
ACE

Fault->ACE - Alignment Check Exception.

arp

Driver->Net->L3->ARP - Address Resolution Protocol Driver.

asuro

Include->Asuro - Auto-Generated Version & Compilation Information + +

bios_data_area

Include->BIOS_Data_Area - Data Structures Controlled by the BIOS.

BPE

Fault->BPE - Break Point Exception.

BTSSE

Fault->BTSSE - Bad TSS Exception.

CFE

Fault->CFE - Coprocessor Fault Exception.

console

Console - Provides Screen/Window management & drawing.

contextswitcher

ContextSwitcher - Switch Process Contexts when preempted.

cpu

CPU - CPU Structures & Utility/Capabilities Functions.

crc

Include->CRC - CRC32 Implementation.

CSOE

Fault->CSOE - Coprocessor Seg Overruun Exception.

DBGE

Fault->DBGE - Debug Exception.

DBZ

Fault->DBZ - Divide By Zero Exception.

DFE

Fault->DFE - Double Fault Exception.

drivermanagement

DriverManagement - Driver Initialization & Management Interface.

drivertypes

Driver->Include->DriverTypes - Structs & Data Shared Across Drivers.

E1000

Driver->NetDev->E1000 - Intel E1000/I217/82577LM Network Card Driver.

EHCI

Driver->Bus->EHCI - Enhanced Host Controller Interface Driver.

eth2

Driver->Net->L2->Eth2 - Ethernet Driver.

faults

Faults - Fault Registration & Detouring.

fonts

Include->Fonts - Standard Fonts & Font Masks.

gdt

Global Descriptor Table - Data Structures & Interface.

GPF

Fault->GPF - General Protection Fault.

icmp

Driver->Net->L4->ICMP - Internet Control Message Protocol Driver, + +

IDOE

Fault->IDO - Into Detected Overflow Exception.

idt

Interrupt Descriptor Table - Structures & Interface.

IOPE

Fault->IOPE - Invalid OPCode Exception.

ipv4

Driver->Net->L3->IPv4 - Internet Protocol Version 4 Driver.

irq

Interrupt Request Line - Initialization & Remapping.

isr

ISR Driver - Initialization (stub).

isrmanager

ISR->ISRManager - Interrupt Service Routine Registration, Dispatch & Management.

isr_types

ISR->ISR_Types - Interrupt Service Routine Structures.

kernel

Kernel Main - Main Kernel Entry Point.

keyboard

Driver->HID->Keyboard - Keyboard Driver.

lists

Include->Lists - Linked List Data Structures & Helpers.

lmemorymanager

LMemoryManager - Logical Memory Management + +

MCE

Fault->MCE - Machine Check Exception.

memview

Prog->MemView - Live Memory View.

mouse

Driver->HID->Mouse - Mouse Driver.

multiboot

Include->Multiboot - Multiboot Structures & Access.

NCE

Fault->NCE - No Coprocessor Exception.

net

Driver->Net->L1->Net - Network Card<->Driver Interface.

netlog

Prog->NetLog - Network Driver Logs.

nettypes

Driver->Net->NetTypes - Structures & Types Shared Across Network Drivers.

netutils

Driver->Net->NetUtils - Helper Functions For Network Drivers.

NMIE

Fault->NMIE - Non-Maskable Interrupt Exception.

OHCI

Driver->Bus->OHCI - Open Host Controller Interface Driver.

OOBE

Fault->OOBE - Out Of Bounds Exception.

PCI

Driver->Bus->PCI - Peripheral Component Interconnect Driver.

PF

Fault->PF - Page Fault.

pmemorymanager

PMemoryManager - Physical Memory Management + +

processloader

ProcessLoader - Process Initialization & Tasking (stub).

PS2_KEYBOARD_ISR

Driver->HID->PS2_KEYBAORD_ISR - PS2 ISR Hook & Driver.

RTC

Driver->Timers->RTC - Real Time Clock Driver.

scheduler

Scheduler - Schedules Context Switches.

serial

Driver->Interface->Serial - Serial Driver.

SFE

Fault->SFE - Stack Fault Exception.

shell

Prog->Shell - Main Desktop UI.

SNPE

Fault->SNPE - Segment Not Present Exception.

splash

Prog->Splash - Asuro Splash Screen.

strings

Include->Strings - String Manipulation.

system

Include->System - Base Types & Structures.

tcp

Driver->Net->L4->TCP - Transmission Control Protocol Driver.

terminal

Prog->Terminal - Interactive Command Line Environment.

testdriver

Driver->Exp->TestDriver - Dummy Driver For Testing.

themer

Prog->Themer - Live Desktop Color Picker.

TMR_0_ISR

Driver->Timer->TMR_0_ISR - 1024hz Timer Driver.

TMR_1_ISR

Driver->Timer->TMR_1_ISR - 1024/s Timer Driver.

tracer

Tracer - Trace stack for debugging method calls.

tss

TSS - Task State Segment (stub).

types

Include->Types - Dummy Unit For VM Compatability.

udp

Driver->Net->L4->UDP - User Datagram Protocol Driver.

UHCI

Driver->Bus->UHCI - Universal Host Controller Interface Driver.

UIE

Fault->UIE - Unknown Interrupt Exception.

USB

Driver->Bus->USB - Universal Serial Bus Driver/Interface.

util

Include->Util - Data Manipulation Utlities.

vmemorymanager

VMemoryManager - Virtual Memory Management.

vmlog

Prog->VMLog - Virtual Machine Event Log.

vmstate

Prog->VMState - Live MINJ Virtual Machine State Information.

XHCI

Driver->Bus->XHCI - eXtensible Host Controller Interface Driver.

+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/AllVariables.html b/doc/AllVariables.html index 67f66cef..f86779b7 100644 --- a/doc/AllVariables.html +++ b/doc/AllVariables.html @@ -1,239 +1,239 @@ - - - -Asuro: All Variables - - - - - - - - -
-

All Variables

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameUnitDescription
Activescheduler

 

bIndexterminal

 

bufferterminal

 

bussesPCI

 

bus_countPCI

 

captin_hookkeyboard

 

CAP_NEWcpu

 

CAP_OLDcpu

 

Commandsterminal

 

Countersbios_data_area

 

CPUIDcpu

 

Devdrivermanagement

 

devicesPCI

 

device_countPCI

 

endptrutil

 

gdt_entriesgdt

 

gdt_pointergdt

 

get_device_countPCI

 

HaltCBterminal

 

Haltedterminal

 

HaltIDterminal

 

Historyterminal

 

IDT_Entriesidt

 

IDT_Pointeridt

 

is_altkeyboard

 

is_ctrlkeyboard

 

is_shiftkeyboard

 

KERNEL_PAGE_DIRECTORYvmemorymanager

 

key_matrixkeyboard

 

key_matrix_shiftkeyboard

 

multibootinfomultiboot

 

multibootmagicmultiboot

 

PageDirectoryvmemorymanager

 

ptrTaskStateSegmenttss

 

Rootdrivermanagement

 

Root_Pagelmemorymanager

 

Search_Pagelmemorymanager

 

stackutil

 

TaskStateSegmenttss

 

Working_Directoryterminal

 

-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: All Variables + + + + + + + + +
+

All Variables

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameUnitDescription
Activescheduler

 

bIndexterminal

 

bufferterminal

 

bussesPCI

 

bus_countPCI

 

captin_hookkeyboard

 

CAP_NEWcpu

 

CAP_OLDcpu

 

Commandsterminal

 

Countersbios_data_area

 

CPUIDcpu

 

Devdrivermanagement

 

devicesPCI

 

device_countPCI

 

endptrutil

 

gdt_entriesgdt

 

gdt_pointergdt

 

get_device_countPCI

 

HaltCBterminal

 

Haltedterminal

 

HaltIDterminal

 

Historyterminal

 

IDT_Entriesidt

 

IDT_Pointeridt

 

is_altkeyboard

 

is_ctrlkeyboard

 

is_shiftkeyboard

 

KERNEL_PAGE_DIRECTORYvmemorymanager

 

key_matrixkeyboard

 

key_matrix_shiftkeyboard

 

multibootinfomultiboot

 

multibootmagicmultiboot

 

PageDirectoryvmemorymanager

 

ptrTaskStateSegmenttss

 

Rootdrivermanagement

 

Root_Pagelmemorymanager

 

Search_Pagelmemorymanager

 

stackutil

 

TaskStateSegmenttss

 

Working_Directoryterminal

 

+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/BPE.html b/doc/BPE.html index f2f08447..f675047a 100644 --- a/doc/BPE.html +++ b/doc/BPE.html @@ -1,60 +1,60 @@ - - - -Asuro: BPE - - - - - - - - -
-

Unit BPE

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->BPE - Break Point Exception. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: BPE + + + + + + + + +
+

Unit BPE

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->BPE - Break Point Exception. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/BTSSE.html b/doc/BTSSE.html index b648fb23..a3cf3487 100644 --- a/doc/BTSSE.html +++ b/doc/BTSSE.html @@ -1,60 +1,60 @@ - - - -Asuro: BTSSE - - - - - - - - -
-

Unit BTSSE

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->BTSSE - Bad TSS Exception. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: BTSSE + + + + + + + + +
+

Unit BTSSE

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->BTSSE - Bad TSS Exception. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/CFE.html b/doc/CFE.html index 59e28a2e..bfd361b8 100644 --- a/doc/CFE.html +++ b/doc/CFE.html @@ -1,60 +1,60 @@ - - - -Asuro: CFE - - - - - - - - -
-

Unit CFE

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->CFE - Coprocessor Fault Exception. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: CFE + + + + + + + + +
+

Unit CFE

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->CFE - Coprocessor Fault Exception. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/CSOE.html b/doc/CSOE.html index 8f28ad95..8cd80798 100644 --- a/doc/CSOE.html +++ b/doc/CSOE.html @@ -1,60 +1,60 @@ - - - -Asuro: CSOE - - - - - - - - -
-

Unit CSOE

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->CSOE - Coprocessor Seg Overruun Exception. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: CSOE + + + + + + + + +
+

Unit CSOE

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->CSOE - Coprocessor Seg Overruun Exception. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/ClassHierarchy.html b/doc/ClassHierarchy.html index e022f541..533d880c 100644 --- a/doc/ClassHierarchy.html +++ b/doc/ClassHierarchy.html @@ -1,34 +1,34 @@ - - - -Asuro: Class Hierarchy - - - - - - - - -
-

Class Hierarchy

-

-The units do not contain any classes, interfaces or objects.

-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: Class Hierarchy + + + + + + + + +
+

Class Hierarchy

+

+The units do not contain any classes, interfaces or objects.

+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/DBGE.html b/doc/DBGE.html index 91a6cc9c..72d9da27 100644 --- a/doc/DBGE.html +++ b/doc/DBGE.html @@ -1,60 +1,60 @@ - - - -Asuro: DBGE - - - - - - - - -
-

Unit DBGE

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->DBGE - Debug Exception. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: DBGE + + + + + + + + +
+

Unit DBGE

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->DBGE - Debug Exception. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/DBZ.html b/doc/DBZ.html index bdaad0fd..c0e722f5 100644 --- a/doc/DBZ.html +++ b/doc/DBZ.html @@ -1,60 +1,60 @@ - - - -Asuro: DBZ - - - - - - - - -
-

Unit DBZ

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->DBZ - Divide By Zero Exception. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: DBZ + + + + + + + + +
+

Unit DBZ

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->DBZ - Divide By Zero Exception. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/DFE.html b/doc/DFE.html index 8ac74233..68754c6e 100644 --- a/doc/DFE.html +++ b/doc/DFE.html @@ -1,60 +1,60 @@ - - - -Asuro: DFE - - - - - - - - -
-

Unit DFE

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->DFE - Double Fault Exception. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: DFE + + + + + + + + +
+

Unit DFE

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->DFE - Double Fault Exception. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/E1000.html b/doc/E1000.html index 813d1afd..cd79a7b5 100644 --- a/doc/E1000.html +++ b/doc/E1000.html @@ -1,62 +1,62 @@ - - - -Asuro: E1000 - - - - - - - - - + + +
-

Unit E1000

-
-
Classes, Interfaces, Objects and Records
Variables
-

Description

-

-Driver->NetDev->E1000 - Intel E1000/I217/82577LM Network Card Driver. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - - - - - - - - - - -
procedure init();
function getMACAddress : puint8;
function sendPacket(p_data : void; p_len : uint16) : sint32;
function readStatus : uint32;
-

Types

- - - - - + + + +Asuro: E1000 + + + + + + + + +
PE1000_rx_desc = ˆTE1000_rx_desc;
+

Unit E1000

+
+
Classes, Interfaces, Objects and Records
Variables
+

Description

+

+Driver->NetDev->E1000 - Intel E1000/I217/82577LM Network Card Driver. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + + + + + + + + + + +
procedure init();
function getMACAddress : puint8;
function sendPacket(p_data : void; p_len : uint16) : sint32;
function readStatus : uint32;
+

Types

+ + + + + - - - - - + end; + + + + + - - - - -
PE1000_rx_desc = ˆTE1000_rx_desc;
TE1000_rx_desc = bitpacked record address : uint64; length : uint16; @@ -64,12 +64,12 @@ Driver->NetDev->E1000 - Intel E1000/I217/82577LM status : uint8; errors : uint8; special : uint16; - end;
PE1000_tx_desc = ˆTE1000_tx_desc;
PE1000_tx_desc = ˆTE1000_tx_desc;
TE1000_tx_desc = bitpacked record address : uint64; length : uint16; @@ -78,277 +78,277 @@ Driver->NetDev->E1000 - Intel E1000/I217/82577LM status : uint8; css : uint8; special : uint16; - end;
TCardType = (...);
-

Constants

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
INTEL_VEND = $8086;
E1000_DEV = $100E;
I217_DEV = $153A;
LM82577_DEV = $10EA;
REG_CTRL = $0000;
REG_STATUS = $0008;
REG_EEPROM = $0014;
REG_CTRL_EXT = $0018;
REG_IMASK = $00D0;
REG_RCTRL = $0100;
REG_RXDESCLO = $2800;
REG_RXDESCHI = $2804;
REG_RXDESCLEN = $2808;
REG_RXDESCHEAD = $2810;
REG_RXDESCTAIL = $2818;
REG_TCTRL = $0400;
REG_TXDESCLO = $3800;
REG_TXDESCHI = $3804;
REG_TXDESCLEN = $3808;
REG_TXDESCHEAD = $3810;
REG_TXDESCTAIL = $3818;
REG_RDTR = $2820;
REG_RXDCTL = $3828;
REG_RADV = $282C;
REG_RSRPD = $2C00;
REG_TIPG = $0410;
ECTRL_SLU = $40;
RCTL_EN = (1 SHL 1);
RCTL_SBP = (1 SHL 2);
RCTL_UPE = (1 SHL 3);
RCTL_MPE = (1 SHL 4);
RCTL_LPE = (1 SHL 5);
RCTL_LBM_NONE = (0 SHL 6);
RCTL_LBM_PHY = (3 SHL 6);
RTCL_RDMTS_HALF = (0 SHL 8);
RTCL_RDMTS_QUARTER = (1 SHL 8);
RTCL_RDMTS_EIGHTH = (2 SHL 8);
RCTL_MO_36 = (0 SHL 12);
RCTL_MO_35 = (1 SHL 12);
RCTL_MO_34 = (2 SHL 12);
RCTL_MO_32 = (3 SHL 12);
RCTL_BAM = (1 SHL 15);
RCTL_VFE = (1 SHL 18);
RCTL_CFIEN = (1 SHL 19);
RCTL_CFI = (1 SHL 20);
RCTL_DPF = (1 SHL 22);
RCTL_PMCF = (1 SHL 23);
RCTL_SECRC = (1 SHL 26);
RCTL_BSIZE_256 = (3 SHL 16);
RCTL_BSIZE_512 = (2 SHL 16);
RCTL_BSIZE_1024 = (1 SHL 16);
RCTL_BSIZE_2048 = (0 SHL 16);
RCTL_BSIZE_4096 = ((3 SHL 16) OR (1 SHL 25));
RCTL_BSIZE_8192 = ((2 SHL 16) OR (1 SHL 25));
RCTL_BSIZE_16384 = ((1 SHL 16) OR (1 SHL 25));
CMD_EOP = (1 SHL 0);
CMD_IFCS = (1 SHL 1);
CMD_IC = (1 SHL 2);
CMD_RS = (1 SHL 3);
CMD_RPS = (1 SHL 4);
CMD_VLE = (1 SHL 6);
CMD_IDE = (1 SHL 7);
TCTL_EN = (1 SHL 1);
TCTL_PSP = (1 SHL 3);
TCTL_CT_SHIFT = 4;
TCTL_COLD_SHIFT = 12;
TCTL_SWXOFF = (1 SHL 22);
TCTL_RTLC = (1 SHL 24);
TSTA_DD = (1 SHL 0);
TSTA_EC = (1 SHL 1);
TSTA_LC = (1 SHL 2);
LSTA_TU = (1 SHL 3);
E1000_NUM_RX_DESC = 32;
E1000_NUM_TX_DESC = 8;
-

Description

-

Functions and Procedures

- - - - - -
procedure init();
- - - - - -
function getMACAddress : puint8;
- - - - - -
function sendPacket(p_data : void; p_len : uint16) : sint32;
- - - - - -
function readStatus : uint32;
-

Types

- - - - - -
PE1000_rx_desc = ˆTE1000_rx_desc;
- - + end; + + + + +
TCardType = (...);
+

Constants

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
INTEL_VEND = $8086;
E1000_DEV = $100E;
I217_DEV = $153A;
LM82577_DEV = $10EA;
REG_CTRL = $0000;
REG_STATUS = $0008;
REG_EEPROM = $0014;
REG_CTRL_EXT = $0018;
REG_IMASK = $00D0;
REG_RCTRL = $0100;
REG_RXDESCLO = $2800;
REG_RXDESCHI = $2804;
REG_RXDESCLEN = $2808;
REG_RXDESCHEAD = $2810;
REG_RXDESCTAIL = $2818;
REG_TCTRL = $0400;
REG_TXDESCLO = $3800;
REG_TXDESCHI = $3804;
REG_TXDESCLEN = $3808;
REG_TXDESCHEAD = $3810;
REG_TXDESCTAIL = $3818;
REG_RDTR = $2820;
REG_RXDCTL = $3828;
REG_RADV = $282C;
REG_RSRPD = $2C00;
REG_TIPG = $0410;
ECTRL_SLU = $40;
RCTL_EN = (1 SHL 1);
RCTL_SBP = (1 SHL 2);
RCTL_UPE = (1 SHL 3);
RCTL_MPE = (1 SHL 4);
RCTL_LPE = (1 SHL 5);
RCTL_LBM_NONE = (0 SHL 6);
RCTL_LBM_PHY = (3 SHL 6);
RTCL_RDMTS_HALF = (0 SHL 8);
RTCL_RDMTS_QUARTER = (1 SHL 8);
RTCL_RDMTS_EIGHTH = (2 SHL 8);
RCTL_MO_36 = (0 SHL 12);
RCTL_MO_35 = (1 SHL 12);
RCTL_MO_34 = (2 SHL 12);
RCTL_MO_32 = (3 SHL 12);
RCTL_BAM = (1 SHL 15);
RCTL_VFE = (1 SHL 18);
RCTL_CFIEN = (1 SHL 19);
RCTL_CFI = (1 SHL 20);
RCTL_DPF = (1 SHL 22);
RCTL_PMCF = (1 SHL 23);
RCTL_SECRC = (1 SHL 26);
RCTL_BSIZE_256 = (3 SHL 16);
RCTL_BSIZE_512 = (2 SHL 16);
RCTL_BSIZE_1024 = (1 SHL 16);
RCTL_BSIZE_2048 = (0 SHL 16);
RCTL_BSIZE_4096 = ((3 SHL 16) OR (1 SHL 25));
RCTL_BSIZE_8192 = ((2 SHL 16) OR (1 SHL 25));
RCTL_BSIZE_16384 = ((1 SHL 16) OR (1 SHL 25));
CMD_EOP = (1 SHL 0);
CMD_IFCS = (1 SHL 1);
CMD_IC = (1 SHL 2);
CMD_RS = (1 SHL 3);
CMD_RPS = (1 SHL 4);
CMD_VLE = (1 SHL 6);
CMD_IDE = (1 SHL 7);
TCTL_EN = (1 SHL 1);
TCTL_PSP = (1 SHL 3);
TCTL_CT_SHIFT = 4;
TCTL_COLD_SHIFT = 12;
TCTL_SWXOFF = (1 SHL 22);
TCTL_RTLC = (1 SHL 24);
TSTA_DD = (1 SHL 0);
TSTA_EC = (1 SHL 1);
TSTA_LC = (1 SHL 2);
LSTA_TU = (1 SHL 3);
E1000_NUM_RX_DESC = 32;
E1000_NUM_TX_DESC = 8;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init();
+ + + + + +
function getMACAddress : puint8;
+ + + + + +
function sendPacket(p_data : void; p_len : uint16) : sint32;
+ + + + + +
function readStatus : uint32;
+

Types

+ + + + + +
PE1000_rx_desc = ˆTE1000_rx_desc;
+ + - - -
TE1000_rx_desc = bitpacked record address : uint64; length : uint16; @@ -356,20 +356,20 @@ Driver->NetDev->E1000 - Intel E1000/I217/82577LM status : uint8; errors : uint8; special : uint16; - end;
- - - - - -
PE1000_tx_desc = ˆTE1000_tx_desc;
- - + end; + + +
+ + + + + +
PE1000_tx_desc = ˆTE1000_tx_desc;
+ + - - -
TE1000_tx_desc = bitpacked record address : uint64; length : uint16; @@ -378,642 +378,642 @@ Driver->NetDev->E1000 - Intel E1000/I217/82577LM status : uint8; css : uint8; special : uint16; - end;
- - - - - -
TCardType = (...);
Values
-
    -
  • -ctUnknown
  • -
  • -ctE1000
  • -
  • -ctI217
  • -
  • -ct82577LM
  • -
-
-

Constants

- - - - - -
INTEL_VEND = $8086;
- - - - - -
E1000_DEV = $100E;
- - - - - -
I217_DEV = $153A;
- - - - - -
LM82577_DEV = $10EA;
- - - - - -
REG_CTRL = $0000;
- - - - - -
REG_STATUS = $0008;
- - - - - -
REG_EEPROM = $0014;
- - - - - -
REG_CTRL_EXT = $0018;
- - - - - -
REG_IMASK = $00D0;
- - - - - -
REG_RCTRL = $0100;
- - - - - -
REG_RXDESCLO = $2800;
- - - - - -
REG_RXDESCHI = $2804;
- - - - - -
REG_RXDESCLEN = $2808;
- - - - - -
REG_RXDESCHEAD = $2810;
- - - - - -
REG_RXDESCTAIL = $2818;
- - - - - -
REG_TCTRL = $0400;
- - - - - -
REG_TXDESCLO = $3800;
- - - - - -
REG_TXDESCHI = $3804;
- - - - - -
REG_TXDESCLEN = $3808;
- - - - - -
REG_TXDESCHEAD = $3810;
- - - - - -
REG_TXDESCTAIL = $3818;
- - - - - -
REG_RDTR = $2820;
- - - - - -
REG_RXDCTL = $3828;
-

-RX Delay Timer Register

-
- - - - - -
REG_RADV = $282C;
-

-RX Descriptor Control

-
- - - - - -
REG_RSRPD = $2C00;
-

-RX Int. Absolute Delay Timer

-
- - - - - -
REG_TIPG = $0410;
-

-RX Small Packet Detect Interrupt

-
- - - - - -
ECTRL_SLU = $40;
-

-Transmit Inter Packet Gap

-
- - - - - -
RCTL_EN = (1 SHL 1);
-

-set link up

-
- - - - - -
RCTL_SBP = (1 SHL 2);
-

-Receiver Enable

-
- - - - - -
RCTL_UPE = (1 SHL 3);
-

-Store Bad Packets

-
- - - - - -
RCTL_MPE = (1 SHL 4);
-

-Unicast Promiscuous Enabled

-
- - - - - -
RCTL_LPE = (1 SHL 5);
-

-Multicast Promiscuous Enabled

-
- - - - - -
RCTL_LBM_NONE = (0 SHL 6);
-

-Long Packet Reception Enable

-
- - - - - -
RCTL_LBM_PHY = (3 SHL 6);
-

-No Loopback

-
- - - - - -
RTCL_RDMTS_HALF = (0 SHL 8);
-

-PHY or external SerDesc loopback

-
- - - - - -
RTCL_RDMTS_QUARTER = (1 SHL 8);
-

-Free Buffer Threshold is 1/2 of RDLEN

-
- - - - - -
RTCL_RDMTS_EIGHTH = (2 SHL 8);
-

-Free Buffer Threshold is 1/4 of RDLEN

-
- - - - - -
RCTL_MO_36 = (0 SHL 12);
-

-Free Buffer Threshold is 1/8 of RDLEN

-
- - - - - -
RCTL_MO_35 = (1 SHL 12);
-

-Multicast Offset - bits 47:36

-
- - - - - -
RCTL_MO_34 = (2 SHL 12);
-

-Multicast Offset - bits 46:35

-
- - - - - -
RCTL_MO_32 = (3 SHL 12);
-

-Multicast Offset - bits 45:34

-
- - - - - -
RCTL_BAM = (1 SHL 15);
-

-Multicast Offset - bits 43:32

-
- - - - - -
RCTL_VFE = (1 SHL 18);
-

-Broadcast Accept Mode

-
- - - - - -
RCTL_CFIEN = (1 SHL 19);
-

-VLAN Filter Enable

-
- - - - - -
RCTL_CFI = (1 SHL 20);
-

-Canonical Form Indicator Enable

-
- - - - - -
RCTL_DPF = (1 SHL 22);
-

-Canonical Form Indicator Bit Value

-
- - - - - -
RCTL_PMCF = (1 SHL 23);
-

-Discard Pause Frames

-
- - - - - -
RCTL_SECRC = (1 SHL 26);
-

-Pass MAC Control Frames

-
- - - - - -
RCTL_BSIZE_256 = (3 SHL 16);
-

-Strip Ethernet CRC Buffer Sizes

-
- - - - - -
RCTL_BSIZE_512 = (2 SHL 16);
- - - - - -
RCTL_BSIZE_1024 = (1 SHL 16);
- - - - - -
RCTL_BSIZE_2048 = (0 SHL 16);
- - - - - -
RCTL_BSIZE_4096 = ((3 SHL 16) OR (1 SHL 25));
- - - - - -
RCTL_BSIZE_8192 = ((2 SHL 16) OR (1 SHL 25));
- - - - - -
RCTL_BSIZE_16384 = ((1 SHL 16) OR (1 SHL 25));
- - - - - -
CMD_EOP = (1 SHL 0);
-

-Transmit Command

-
- - - - - -
CMD_IFCS = (1 SHL 1);
-

-End of Packet

-
- - - - - -
CMD_IC = (1 SHL 2);
-

-Insert FCS

-
- - - - - -
CMD_RS = (1 SHL 3);
-

-Insert Checksum

-
- - - - - -
CMD_RPS = (1 SHL 4);
-

-Report Status

-
- - - - - -
CMD_VLE = (1 SHL 6);
-

-Report Packet Sent

-
- - - - - -
CMD_IDE = (1 SHL 7);
-

-VLAN Packet Enable

-
- - - - - -
TCTL_EN = (1 SHL 1);
-

-Interrupt Delay Enable TCTL Register

-
- - - - - -
TCTL_PSP = (1 SHL 3);
-

-Transmit Enable

-
- - - - - -
TCTL_CT_SHIFT = 4;
-

-Pad Short Packets

-
- - - - - -
TCTL_COLD_SHIFT = 12;
-

-Collision Threshold

-
- - - - - -
TCTL_SWXOFF = (1 SHL 22);
-

-Collision Distance

-
- - - - - -
TCTL_RTLC = (1 SHL 24);
-

-Software XOFF Transmission

-
- - - - - -
TSTA_DD = (1 SHL 0);
-

-Re-transmit on Late Collision

-
- - - - - -
TSTA_EC = (1 SHL 1);
-

-Descriptor Done

-
- - - - - -
TSTA_LC = (1 SHL 2);
-

-Excess Collisions

-
- - - - - -
LSTA_TU = (1 SHL 3);
-

-Late Collision

-
- - - - - -
E1000_NUM_RX_DESC = 32;
-

-Transmit Underrun

-
- - - - - -
E1000_NUM_TX_DESC = 8;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ end;
+ + + + + +
TCardType = (...);
Values
+
    +
  • +ctUnknown
  • +
  • +ctE1000
  • +
  • +ctI217
  • +
  • +ct82577LM
  • +
+
+

Constants

+ + + + + +
INTEL_VEND = $8086;
+ + + + + +
E1000_DEV = $100E;
+ + + + + +
I217_DEV = $153A;
+ + + + + +
LM82577_DEV = $10EA;
+ + + + + +
REG_CTRL = $0000;
+ + + + + +
REG_STATUS = $0008;
+ + + + + +
REG_EEPROM = $0014;
+ + + + + +
REG_CTRL_EXT = $0018;
+ + + + + +
REG_IMASK = $00D0;
+ + + + + +
REG_RCTRL = $0100;
+ + + + + +
REG_RXDESCLO = $2800;
+ + + + + +
REG_RXDESCHI = $2804;
+ + + + + +
REG_RXDESCLEN = $2808;
+ + + + + +
REG_RXDESCHEAD = $2810;
+ + + + + +
REG_RXDESCTAIL = $2818;
+ + + + + +
REG_TCTRL = $0400;
+ + + + + +
REG_TXDESCLO = $3800;
+ + + + + +
REG_TXDESCHI = $3804;
+ + + + + +
REG_TXDESCLEN = $3808;
+ + + + + +
REG_TXDESCHEAD = $3810;
+ + + + + +
REG_TXDESCTAIL = $3818;
+ + + + + +
REG_RDTR = $2820;
+ + + + + +
REG_RXDCTL = $3828;
+

+RX Delay Timer Register

+
+ + + + + +
REG_RADV = $282C;
+

+RX Descriptor Control

+
+ + + + + +
REG_RSRPD = $2C00;
+

+RX Int. Absolute Delay Timer

+
+ + + + + +
REG_TIPG = $0410;
+

+RX Small Packet Detect Interrupt

+
+ + + + + +
ECTRL_SLU = $40;
+

+Transmit Inter Packet Gap

+
+ + + + + +
RCTL_EN = (1 SHL 1);
+

+set link up

+
+ + + + + +
RCTL_SBP = (1 SHL 2);
+

+Receiver Enable

+
+ + + + + +
RCTL_UPE = (1 SHL 3);
+

+Store Bad Packets

+
+ + + + + +
RCTL_MPE = (1 SHL 4);
+

+Unicast Promiscuous Enabled

+
+ + + + + +
RCTL_LPE = (1 SHL 5);
+

+Multicast Promiscuous Enabled

+
+ + + + + +
RCTL_LBM_NONE = (0 SHL 6);
+

+Long Packet Reception Enable

+
+ + + + + +
RCTL_LBM_PHY = (3 SHL 6);
+

+No Loopback

+
+ + + + + +
RTCL_RDMTS_HALF = (0 SHL 8);
+

+PHY or external SerDesc loopback

+
+ + + + + +
RTCL_RDMTS_QUARTER = (1 SHL 8);
+

+Free Buffer Threshold is 1/2 of RDLEN

+
+ + + + + +
RTCL_RDMTS_EIGHTH = (2 SHL 8);
+

+Free Buffer Threshold is 1/4 of RDLEN

+
+ + + + + +
RCTL_MO_36 = (0 SHL 12);
+

+Free Buffer Threshold is 1/8 of RDLEN

+
+ + + + + +
RCTL_MO_35 = (1 SHL 12);
+

+Multicast Offset - bits 47:36

+
+ + + + + +
RCTL_MO_34 = (2 SHL 12);
+

+Multicast Offset - bits 46:35

+
+ + + + + +
RCTL_MO_32 = (3 SHL 12);
+

+Multicast Offset - bits 45:34

+
+ + + + + +
RCTL_BAM = (1 SHL 15);
+

+Multicast Offset - bits 43:32

+
+ + + + + +
RCTL_VFE = (1 SHL 18);
+

+Broadcast Accept Mode

+
+ + + + + +
RCTL_CFIEN = (1 SHL 19);
+

+VLAN Filter Enable

+
+ + + + + +
RCTL_CFI = (1 SHL 20);
+

+Canonical Form Indicator Enable

+
+ + + + + +
RCTL_DPF = (1 SHL 22);
+

+Canonical Form Indicator Bit Value

+
+ + + + + +
RCTL_PMCF = (1 SHL 23);
+

+Discard Pause Frames

+
+ + + + + +
RCTL_SECRC = (1 SHL 26);
+

+Pass MAC Control Frames

+
+ + + + + +
RCTL_BSIZE_256 = (3 SHL 16);
+

+Strip Ethernet CRC Buffer Sizes

+
+ + + + + +
RCTL_BSIZE_512 = (2 SHL 16);
+ + + + + +
RCTL_BSIZE_1024 = (1 SHL 16);
+ + + + + +
RCTL_BSIZE_2048 = (0 SHL 16);
+ + + + + +
RCTL_BSIZE_4096 = ((3 SHL 16) OR (1 SHL 25));
+ + + + + +
RCTL_BSIZE_8192 = ((2 SHL 16) OR (1 SHL 25));
+ + + + + +
RCTL_BSIZE_16384 = ((1 SHL 16) OR (1 SHL 25));
+ + + + + +
CMD_EOP = (1 SHL 0);
+

+Transmit Command

+
+ + + + + +
CMD_IFCS = (1 SHL 1);
+

+End of Packet

+
+ + + + + +
CMD_IC = (1 SHL 2);
+

+Insert FCS

+
+ + + + + +
CMD_RS = (1 SHL 3);
+

+Insert Checksum

+
+ + + + + +
CMD_RPS = (1 SHL 4);
+

+Report Status

+
+ + + + + +
CMD_VLE = (1 SHL 6);
+

+Report Packet Sent

+
+ + + + + +
CMD_IDE = (1 SHL 7);
+

+VLAN Packet Enable

+
+ + + + + +
TCTL_EN = (1 SHL 1);
+

+Interrupt Delay Enable TCTL Register

+
+ + + + + +
TCTL_PSP = (1 SHL 3);
+

+Transmit Enable

+
+ + + + + +
TCTL_CT_SHIFT = 4;
+

+Pad Short Packets

+
+ + + + + +
TCTL_COLD_SHIFT = 12;
+

+Collision Threshold

+
+ + + + + +
TCTL_SWXOFF = (1 SHL 22);
+

+Collision Distance

+
+ + + + + +
TCTL_RTLC = (1 SHL 24);
+

+Software XOFF Transmission

+
+ + + + + +
TSTA_DD = (1 SHL 0);
+

+Re-transmit on Late Collision

+
+ + + + + +
TSTA_EC = (1 SHL 1);
+

+Descriptor Done

+
+ + + + + +
TSTA_LC = (1 SHL 2);
+

+Excess Collisions

+
+ + + + + +
LSTA_TU = (1 SHL 3);
+

+Late Collision

+
+ + + + + +
E1000_NUM_RX_DESC = 32;
+

+Transmit Underrun

+
+ + + + + +
E1000_NUM_TX_DESC = 8;
+

Author

+ +
Generated by PasDoc 0.15.0. + + diff --git a/doc/EHCI.html b/doc/EHCI.html index 52303f57..677d7658 100644 --- a/doc/EHCI.html +++ b/doc/EHCI.html @@ -1,60 +1,60 @@ - - - -Asuro: EHCI - - - - - - - - -
-

Unit EHCI

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Driver->Bus->EHCI - Enhanced Host Controller Interface Driver. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
function load : boolean;
-

Description

-

Functions and Procedures

- - - - - -
function load : boolean;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: EHCI + + + + + + + + +
+

Unit EHCI

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Driver->Bus->EHCI - Enhanced Host Controller Interface Driver. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
function load : boolean;
+

Description

+

Functions and Procedures

+ + + + + +
function load : boolean;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/GPF.html b/doc/GPF.html index af7400d0..933c233b 100644 --- a/doc/GPF.html +++ b/doc/GPF.html @@ -1,60 +1,60 @@ - - - -Asuro: GPF - - - - - - - - -
-

Unit GPF

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->GPF - General Protection Fault. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: GPF + + + + + + + + +
+

Unit GPF

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->GPF - General Protection Fault. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/GVUses.dot b/doc/GVUses.dot index 3b62fe6f..4b824043 100644 --- a/doc/GVUses.dot +++ b/doc/GVUses.dot @@ -1,509 +1,509 @@ -DiGraph Uses { - "ACE" -> "util" - "ACE" -> "console" - "ACE" -> "isr_types" - "ACE" -> "isrmanager" - "ACE" -> "IDT" - "ACE" [href="ACE.html"] - "arp" -> "tracer" - "arp" -> "lmemorymanager" - "arp" -> "util" - "arp" -> "lists" - "arp" -> "console" - "arp" -> "terminal" - "arp" -> "net" - "arp" -> "nettypes" - "arp" -> "netutils" - "arp" -> "netlog" - "arp" -> "eth2" - "arp" -> "ipv4" - "arp" [href="arp.html"] - "asuro" [href="asuro.html"] - "bios_data_area" [href="bios_data_area.html"] - "BPE" -> "util" - "BPE" -> "console" - "BPE" -> "isr_types" - "BPE" -> "isrmanager" - "BPE" -> "IDT" - "BPE" [href="BPE.html"] - "BTSSE" -> "util" - "BTSSE" -> "console" - "BTSSE" -> "isr_types" - "BTSSE" -> "isrmanager" - "BTSSE" -> "IDT" - "BTSSE" [href="BTSSE.html"] - "CFE" -> "util" - "CFE" -> "console" - "CFE" -> "isr_types" - "CFE" -> "isrmanager" - "CFE" -> "IDT" - "CFE" [href="CFE.html"] - "console" -> "util" - "console" -> "bios_data_area" - "console" -> "multiboot" - "console" -> "fonts" - "console" -> "tracer" - "console" [href="console.html"] - "contextswitcher" [href="contextswitcher.html"] - "cpu" -> "console" - "cpu" -> "util" - "cpu" -> "RTC" - "cpu" -> "terminal" - "cpu" [href="cpu.html"] - "crc" [href="crc.html"] - "CSOE" -> "util" - "CSOE" -> "console" - "CSOE" -> "isr_types" - "CSOE" -> "isrmanager" - "CSOE" -> "IDT" - "CSOE" [href="CSOE.html"] - "DBGE" -> "util" - "DBGE" -> "console" - "DBGE" -> "isr_types" - "DBGE" -> "isrmanager" - "DBGE" -> "IDT" - "DBGE" [href="DBGE.html"] - "DBZ" -> "util" - "DBZ" -> "console" - "DBZ" -> "isr_types" - "DBZ" -> "isrmanager" - "DBZ" -> "IDT" - "DBZ" [href="DBZ.html"] - "DFE" -> "util" - "DFE" -> "console" - "DFE" -> "isr_types" - "DFE" -> "isrmanager" - "DFE" -> "IDT" - "DFE" [href="DFE.html"] - "drivermanagement" -> "console" - "drivermanagement" -> "util" - "drivermanagement" -> "strings" - "drivermanagement" -> "lmemorymanager" - "drivermanagement" -> "terminal" - "drivermanagement" -> "tracer" - "drivermanagement" [href="drivermanagement.html"] - "drivertypes" [href="drivertypes.html"] - "E1000" -> "tracer" - "E1000" -> "console" - "E1000" -> "strings" - "E1000" -> "vmemorymanager" - "E1000" -> "lmemorymanager" - "E1000" -> "drivermanagement" - "E1000" -> "drivertypes" - "E1000" -> "util" - "E1000" -> "IDT" - "E1000" -> "PCI" - "E1000" -> "terminal" - "E1000" -> "net" - "E1000" -> "nettypes" - "E1000" -> "netutils" - "E1000" -> "isrmanager" - "E1000" [href="E1000.html"] - "EHCI" -> "tracer" - "EHCI" -> "Console" - "EHCI" -> "PCI" - "EHCI" -> "drivertypes" - "EHCI" -> "pmemorymanager" - "EHCI" -> "vmemorymanager" - "EHCI" -> "util" - "EHCI" -> "drivermanagement" - "EHCI" [href="EHCI.html"] - "eth2" -> "lmemorymanager" - "eth2" -> "util" - "eth2" -> "tracer" - "eth2" -> "nettypes" - "eth2" -> "netutils" - "eth2" -> "terminal" - "eth2" -> "net" - "eth2" -> "netlog" - "eth2" -> "console" - "eth2" -> "crc" - "eth2" [href="eth2.html"] - "faults" -> "ACE" - "faults" -> "BPE" - "faults" -> "BTSSE" - "faults" -> "CFE" - "faults" -> "CSOE" - "faults" -> "DBGE" - "faults" -> "DBZ" - "faults" -> "DFE" - "faults" -> "GPF" - "faults" -> "IDOE" - "faults" -> "IOPE" - "faults" -> "MCE" - "faults" -> "NCE" - "faults" -> "NMIE" - "faults" -> "OOBE" - "faults" -> "PF" - "faults" -> "SFE" - "faults" -> "SNPE" - "faults" -> "UIE" - "faults" [href="faults.html"] - "fonts" [href="fonts.html"] - "gdt" -> "console" - "gdt" [href="gdt.html"] - "GPF" -> "util" - "GPF" -> "console" - "GPF" -> "isr_types" - "GPF" -> "isrmanager" - "GPF" -> "IDT" - "GPF" [href="GPF.html"] - "icmp" -> "bios_data_area" - "icmp" -> "lmemorymanager" - "icmp" -> "net" - "icmp" -> "nettypes" - "icmp" -> "netutils" - "icmp" -> "ipv4" - "icmp" -> "console" - "icmp" -> "terminal" - "icmp" -> "arp" - "icmp" -> "util" - "icmp" [href="icmp.html"] - "IDOE" -> "util" - "IDOE" -> "console" - "IDOE" -> "isr_types" - "IDOE" -> "isrmanager" - "IDOE" -> "IDT" - "IDOE" [href="IDOE.html"] - "idt" -> "util" - "idt" -> "console" - "idt" [href="idt.html"] - "IOPE" -> "util" - "IOPE" -> "console" - "IOPE" -> "isr_types" - "IOPE" -> "isrmanager" - "IOPE" -> "IDT" - "IOPE" [href="IOPE.html"] - "ipv4" -> "tracer" - "ipv4" -> "lmemorymanager" - "ipv4" -> "util" - "ipv4" -> "console" - "ipv4" -> "terminal" - "ipv4" -> "strings" - "ipv4" -> "net" - "ipv4" -> "nettypes" - "ipv4" -> "netutils" - "ipv4" -> "netlog" - "ipv4" -> "lists" - "ipv4" -> "eth2" - "ipv4" [href="ipv4.html"] - "irq" -> "util" - "irq" -> "console" - "irq" [href="irq.html"] - "isr" -> "Console" - "isr" [href="isr.html"] - "isrmanager" -> "isr" - "isrmanager" -> "idt" - "isrmanager" -> "isr_types" - "isrmanager" -> "util" - "isrmanager" [href="isrmanager.html"] - "isr_types" [href="isr_types.html"] - "kernel" -> "multiboot" - "kernel" -> "bios_data_area" - "kernel" -> "util" - "kernel" -> "gdt" - "kernel" -> "idt" - "kernel" -> "isr" - "kernel" -> "irq" - "kernel" -> "tss" - "kernel" -> "TMR_0_ISR" - "kernel" -> "console" - "kernel" -> "keyboard" - "kernel" -> "mouse" - "kernel" -> "vmemorymanager" - "kernel" -> "pmemorymanager" - "kernel" -> "lmemorymanager" - "kernel" -> "tracer" - "kernel" -> "drivermanagement" - "kernel" -> "scheduler" - "kernel" -> "PCI" - "kernel" -> "Terminal" - "kernel" -> "strings" - "kernel" -> "USB" - "kernel" -> "testdriver" - "kernel" -> "E1000" - "kernel" -> "IDE" - "kernel" -> "storagemanagement" - "kernel" -> "lists" - "kernel" -> "net" - "kernel" -> "fat32" - "kernel" -> "isrmanager" - "kernel" -> "faults" - "kernel" -> "fonts" - "kernel" -> "RTC" - "kernel" -> "serial" - "kernel" -> "shell" - "kernel" -> "memview" - "kernel" -> "splash" - "kernel" -> "cpu" - "kernel" -> "themer" - "kernel" -> "netlog" - "kernel" -> "vmlog" - "kernel" -> "vm" - "kernel" -> "vmstate" - "kernel" [href="kernel.html"] - "keyboard" -> "console" - "keyboard" -> "util" - "keyboard" -> "PS2_KEYBOARD_ISR" - "keyboard" [href="keyboard.html"] - "lists" -> "console" - "lists" -> "lmemorymanager" - "lists" -> "util" - "lists" -> "strings" - "lists" -> "tracer" - "lists" [href="lists.html"] - "lmemorymanager" -> "util" - "lmemorymanager" -> "vmemorymanager" - "lmemorymanager" -> "pmemorymanager" - "lmemorymanager" -> "console" - "lmemorymanager" -> "tracer" - "lmemorymanager" [href="lmemorymanager.html"] - "MCE" -> "util" - "MCE" -> "console" - "MCE" -> "isr_types" - "MCE" -> "isrmanager" - "MCE" -> "IDT" - "MCE" [href="MCE.html"] - "memview" -> "console" - "memview" -> "terminal" - "memview" -> "keyboard" - "memview" -> "util" - "memview" -> "strings" - "memview" -> "tracer" - "memview" [href="memview.html"] - "mouse" -> "tracer" - "mouse" -> "console" - "mouse" -> "util" - "mouse" -> "lmemorymanager" - "mouse" -> "strings" - "mouse" -> "isrmanager" - "mouse" -> "drivermanagement" - "mouse" [href="mouse.html"] - "multiboot" [href="multiboot.html"] - "NCE" -> "util" - "NCE" -> "console" - "NCE" -> "isr_types" - "NCE" -> "isrmanager" - "NCE" -> "IDT" - "NCE" [href="NCE.html"] - "net" -> "tracer" - "net" -> "console" - "net" -> "nettypes" - "net" -> "netutils" - "net" -> "netlog" - "net" -> "RTC" - "net" [href="net.html"] - "netlog" -> "console" - "netlog" -> "terminal" - "netlog" -> "keyboard" - "netlog" -> "util" - "netlog" -> "strings" - "netlog" -> "tracer" - "netlog" [href="netlog.html"] - "nettypes" [href="nettypes.html"] - "netutils" -> "tracer" - "netutils" -> "util" - "netutils" -> "nettypes" - "netutils" -> "console" - "netutils" -> "lmemorymanager" - "netutils" -> "lists" - "netutils" -> "strings" - "netutils" [href="netutils.html"] - "NMIE" -> "util" - "NMIE" -> "console" - "NMIE" -> "isr_types" - "NMIE" -> "isrmanager" - "NMIE" -> "IDT" - "NMIE" [href="NMIE.html"] - "OHCI" -> "tracer" - "OHCI" -> "Console" - "OHCI" -> "PCI" - "OHCI" -> "drivertypes" - "OHCI" -> "pmemorymanager" - "OHCI" -> "vmemorymanager" - "OHCI" -> "util" - "OHCI" -> "drivermanagement" - "OHCI" [href="OHCI.html"] - "OOBE" -> "util" - "OOBE" -> "console" - "OOBE" -> "isr_types" - "OOBE" -> "isrmanager" - "OOBE" -> "IDT" - "OOBE" [href="OOBE.html"] - "PCI" -> "tracer" - "PCI" -> "util" - "PCI" -> "console" - "PCI" -> "drivertypes" - "PCI" -> "lmemorymanager" - "PCI" -> "vmemorymanager" - "PCI" -> "drivermanagement" - "PCI" [href="PCI.html"] - "PF" -> "util" - "PF" -> "console" - "PF" -> "isr_types" - "PF" -> "isrmanager" - "PF" -> "IDT" - "PF" [href="PF.html"] - "pmemorymanager" -> "util" - "pmemorymanager" -> "console" - "pmemorymanager" -> "multiboot" - "pmemorymanager" -> "tracer" - "pmemorymanager" [href="pmemorymanager.html"] - "processloader" [href="processloader.html"] - "PS2_KEYBOARD_ISR" -> "util" - "PS2_KEYBOARD_ISR" -> "console" - "PS2_KEYBOARD_ISR" -> "isr_types" - "PS2_KEYBOARD_ISR" -> "isrmanager" - "PS2_KEYBOARD_ISR" -> "IDT" - "PS2_KEYBOARD_ISR" [href="PS2_KEYBOARD_ISR.html"] - "RTC" -> "console" - "RTC" -> "isrmanager" - "RTC" -> "util" - "RTC" -> "TMR_0_ISR" - "RTC" [href="RTC.html"] - "scheduler" -> "console" - "scheduler" -> "TMR_0_ISR" - "scheduler" -> "lmemorymanager" - "scheduler" -> "terminal" - "scheduler" [href="scheduler.html"] - "serial" -> "util" - "serial" -> "isrmanager" - "serial" -> "strings" - "serial" [href="serial.html"] - "SFE" -> "util" - "SFE" -> "console" - "SFE" -> "isr_types" - "SFE" -> "isrmanager" - "SFE" -> "IDT" - "SFE" [href="SFE.html"] - "shell" -> "Console" - "shell" -> "RTC" - "shell" -> "terminal" - "shell" -> "strings" - "shell" -> "asuro" - "shell" -> "tracer" - "shell" [href="shell.html"] - "SNPE" -> "util" - "SNPE" -> "console" - "SNPE" -> "isr_types" - "SNPE" -> "isrmanager" - "SNPE" -> "IDT" - "SNPE" [href="SNPE.html"] - "splash" -> "console" - "splash" -> "keyboard" - "splash" -> "RTC" - "splash" [href="splash.html"] - "strings" -> "util" - "strings" -> "lmemorymanager" - "strings" [href="strings.html"] - "system" [href="system.html"] - "tcp" -> "nettypes" - "tcp" -> "netutils" - "tcp" -> "ipv4" - "tcp" [href="tcp.html"] - "terminal" -> "bios_data_area" - "terminal" -> "console" - "terminal" -> "keyboard" - "terminal" -> "util" - "terminal" -> "lmemorymanager" - "terminal" -> "strings" - "terminal" -> "tracer" - "terminal" -> "asuro" - "terminal" -> "serial" - "terminal" -> "netutils" - "terminal" -> "nettypes" - "terminal" [href="terminal.html"] - "testdriver" -> "tracer" - "testdriver" -> "console" - "testdriver" -> "drivermanagement" - "testdriver" [href="testdriver.html"] - "themer" -> "console" - "themer" -> "terminal" - "themer" -> "keyboard" - "themer" -> "shell" - "themer" -> "strings" - "themer" -> "tracer" - "themer" [href="themer.html"] - "TMR_0_ISR" -> "util" - "TMR_0_ISR" -> "console" - "TMR_0_ISR" -> "isr_types" - "TMR_0_ISR" -> "isrmanager" - "TMR_0_ISR" -> "IDT" - "TMR_0_ISR" [href="TMR_0_ISR.html"] - "TMR_1_ISR" -> "util" - "TMR_1_ISR" -> "console" - "TMR_1_ISR" -> "isr_types" - "TMR_1_ISR" -> "IDT" - "TMR_1_ISR" [href="TMR_1_ISR.html"] - "tracer" [href="tracer.html"] - "tss" -> "gdt" - "tss" -> "vmemorymanager" - "tss" -> "console" - "tss" [href="tss.html"] - "types" [href="types.html"] - "udp" -> "nettypes" - "udp" -> "netutils" - "udp" -> "ipv4" - "udp" [href="udp.html"] - "UHCI" -> "tracer" - "UHCI" -> "Console" - "UHCI" -> "PCI" - "UHCI" -> "drivertypes" - "UHCI" -> "pmemorymanager" - "UHCI" -> "vmemorymanager" - "UHCI" -> "util" - "UHCI" -> "drivermanagement" - "UHCI" [href="UHCI.html"] - "UIE" -> "util" - "UIE" -> "console" - "UIE" -> "isr_types" - "UIE" -> "isrmanager" - "UIE" -> "IDT" - "UIE" [href="UIE.html"] - "USB" -> "tracer" - "USB" -> "Console" - "USB" -> "PCI" - "USB" -> "drivertypes" - "USB" -> "pmemorymanager" - "USB" -> "vmemorymanager" - "USB" -> "util" - "USB" -> "drivermanagement" - "USB" -> "OHCI" - "USB" -> "UHCI" - "USB" -> "EHCI" - "USB" -> "XHCI" - "USB" [href="USB.html"] - "util" -> "bios_data_area" - "util" -> "tracer" - "util" [href="util.html"] - "vmemorymanager" -> "util" - "vmemorymanager" -> "pmemorymanager" - "vmemorymanager" -> "console" - "vmemorymanager" -> "tracer" - "vmemorymanager" [href="vmemorymanager.html"] - "vmlog" -> "console" - "vmlog" -> "terminal" - "vmlog" -> "keyboard" - "vmlog" -> "util" - "vmlog" -> "strings" - "vmlog" -> "tracer" - "vmlog" [href="vmlog.html"] - "vmstate" -> "console" - "vmstate" -> "terminal" - "vmstate" -> "keyboard" - "vmstate" -> "util" - "vmstate" -> "strings" - "vmstate" -> "tracer" - "vmstate" -> "vm_scheduler" - "vmstate" -> "vm_instance" - "vmstate" [href="vmstate.html"] - "XHCI" -> "tracer" - "XHCI" -> "Console" - "XHCI" -> "PCI" - "XHCI" -> "drivertypes" - "XHCI" -> "pmemorymanager" - "XHCI" -> "vmemorymanager" - "XHCI" -> "util" - "XHCI" -> "drivermanagement" - "XHCI" [href="XHCI.html"] -} +DiGraph Uses { + "ACE" -> "util" + "ACE" -> "console" + "ACE" -> "isr_types" + "ACE" -> "isrmanager" + "ACE" -> "IDT" + "ACE" [href="ACE.html"] + "arp" -> "tracer" + "arp" -> "lmemorymanager" + "arp" -> "util" + "arp" -> "lists" + "arp" -> "console" + "arp" -> "terminal" + "arp" -> "net" + "arp" -> "nettypes" + "arp" -> "netutils" + "arp" -> "netlog" + "arp" -> "eth2" + "arp" -> "ipv4" + "arp" [href="arp.html"] + "asuro" [href="asuro.html"] + "bios_data_area" [href="bios_data_area.html"] + "BPE" -> "util" + "BPE" -> "console" + "BPE" -> "isr_types" + "BPE" -> "isrmanager" + "BPE" -> "IDT" + "BPE" [href="BPE.html"] + "BTSSE" -> "util" + "BTSSE" -> "console" + "BTSSE" -> "isr_types" + "BTSSE" -> "isrmanager" + "BTSSE" -> "IDT" + "BTSSE" [href="BTSSE.html"] + "CFE" -> "util" + "CFE" -> "console" + "CFE" -> "isr_types" + "CFE" -> "isrmanager" + "CFE" -> "IDT" + "CFE" [href="CFE.html"] + "console" -> "util" + "console" -> "bios_data_area" + "console" -> "multiboot" + "console" -> "fonts" + "console" -> "tracer" + "console" [href="console.html"] + "contextswitcher" [href="contextswitcher.html"] + "cpu" -> "console" + "cpu" -> "util" + "cpu" -> "RTC" + "cpu" -> "terminal" + "cpu" [href="cpu.html"] + "crc" [href="crc.html"] + "CSOE" -> "util" + "CSOE" -> "console" + "CSOE" -> "isr_types" + "CSOE" -> "isrmanager" + "CSOE" -> "IDT" + "CSOE" [href="CSOE.html"] + "DBGE" -> "util" + "DBGE" -> "console" + "DBGE" -> "isr_types" + "DBGE" -> "isrmanager" + "DBGE" -> "IDT" + "DBGE" [href="DBGE.html"] + "DBZ" -> "util" + "DBZ" -> "console" + "DBZ" -> "isr_types" + "DBZ" -> "isrmanager" + "DBZ" -> "IDT" + "DBZ" [href="DBZ.html"] + "DFE" -> "util" + "DFE" -> "console" + "DFE" -> "isr_types" + "DFE" -> "isrmanager" + "DFE" -> "IDT" + "DFE" [href="DFE.html"] + "drivermanagement" -> "console" + "drivermanagement" -> "util" + "drivermanagement" -> "strings" + "drivermanagement" -> "lmemorymanager" + "drivermanagement" -> "terminal" + "drivermanagement" -> "tracer" + "drivermanagement" [href="drivermanagement.html"] + "drivertypes" [href="drivertypes.html"] + "E1000" -> "tracer" + "E1000" -> "console" + "E1000" -> "strings" + "E1000" -> "vmemorymanager" + "E1000" -> "lmemorymanager" + "E1000" -> "drivermanagement" + "E1000" -> "drivertypes" + "E1000" -> "util" + "E1000" -> "IDT" + "E1000" -> "PCI" + "E1000" -> "terminal" + "E1000" -> "net" + "E1000" -> "nettypes" + "E1000" -> "netutils" + "E1000" -> "isrmanager" + "E1000" [href="E1000.html"] + "EHCI" -> "tracer" + "EHCI" -> "Console" + "EHCI" -> "PCI" + "EHCI" -> "drivertypes" + "EHCI" -> "pmemorymanager" + "EHCI" -> "vmemorymanager" + "EHCI" -> "util" + "EHCI" -> "drivermanagement" + "EHCI" [href="EHCI.html"] + "eth2" -> "lmemorymanager" + "eth2" -> "util" + "eth2" -> "tracer" + "eth2" -> "nettypes" + "eth2" -> "netutils" + "eth2" -> "terminal" + "eth2" -> "net" + "eth2" -> "netlog" + "eth2" -> "console" + "eth2" -> "crc" + "eth2" [href="eth2.html"] + "faults" -> "ACE" + "faults" -> "BPE" + "faults" -> "BTSSE" + "faults" -> "CFE" + "faults" -> "CSOE" + "faults" -> "DBGE" + "faults" -> "DBZ" + "faults" -> "DFE" + "faults" -> "GPF" + "faults" -> "IDOE" + "faults" -> "IOPE" + "faults" -> "MCE" + "faults" -> "NCE" + "faults" -> "NMIE" + "faults" -> "OOBE" + "faults" -> "PF" + "faults" -> "SFE" + "faults" -> "SNPE" + "faults" -> "UIE" + "faults" [href="faults.html"] + "fonts" [href="fonts.html"] + "gdt" -> "console" + "gdt" [href="gdt.html"] + "GPF" -> "util" + "GPF" -> "console" + "GPF" -> "isr_types" + "GPF" -> "isrmanager" + "GPF" -> "IDT" + "GPF" [href="GPF.html"] + "icmp" -> "bios_data_area" + "icmp" -> "lmemorymanager" + "icmp" -> "net" + "icmp" -> "nettypes" + "icmp" -> "netutils" + "icmp" -> "ipv4" + "icmp" -> "console" + "icmp" -> "terminal" + "icmp" -> "arp" + "icmp" -> "util" + "icmp" [href="icmp.html"] + "IDOE" -> "util" + "IDOE" -> "console" + "IDOE" -> "isr_types" + "IDOE" -> "isrmanager" + "IDOE" -> "IDT" + "IDOE" [href="IDOE.html"] + "idt" -> "util" + "idt" -> "console" + "idt" [href="idt.html"] + "IOPE" -> "util" + "IOPE" -> "console" + "IOPE" -> "isr_types" + "IOPE" -> "isrmanager" + "IOPE" -> "IDT" + "IOPE" [href="IOPE.html"] + "ipv4" -> "tracer" + "ipv4" -> "lmemorymanager" + "ipv4" -> "util" + "ipv4" -> "console" + "ipv4" -> "terminal" + "ipv4" -> "strings" + "ipv4" -> "net" + "ipv4" -> "nettypes" + "ipv4" -> "netutils" + "ipv4" -> "netlog" + "ipv4" -> "lists" + "ipv4" -> "eth2" + "ipv4" [href="ipv4.html"] + "irq" -> "util" + "irq" -> "console" + "irq" [href="irq.html"] + "isr" -> "Console" + "isr" [href="isr.html"] + "isrmanager" -> "isr" + "isrmanager" -> "idt" + "isrmanager" -> "isr_types" + "isrmanager" -> "util" + "isrmanager" [href="isrmanager.html"] + "isr_types" [href="isr_types.html"] + "kernel" -> "multiboot" + "kernel" -> "bios_data_area" + "kernel" -> "util" + "kernel" -> "gdt" + "kernel" -> "idt" + "kernel" -> "isr" + "kernel" -> "irq" + "kernel" -> "tss" + "kernel" -> "TMR_0_ISR" + "kernel" -> "console" + "kernel" -> "keyboard" + "kernel" -> "mouse" + "kernel" -> "vmemorymanager" + "kernel" -> "pmemorymanager" + "kernel" -> "lmemorymanager" + "kernel" -> "tracer" + "kernel" -> "drivermanagement" + "kernel" -> "scheduler" + "kernel" -> "PCI" + "kernel" -> "Terminal" + "kernel" -> "strings" + "kernel" -> "USB" + "kernel" -> "testdriver" + "kernel" -> "E1000" + "kernel" -> "IDE" + "kernel" -> "storagemanagement" + "kernel" -> "lists" + "kernel" -> "net" + "kernel" -> "fat32" + "kernel" -> "isrmanager" + "kernel" -> "faults" + "kernel" -> "fonts" + "kernel" -> "RTC" + "kernel" -> "serial" + "kernel" -> "shell" + "kernel" -> "memview" + "kernel" -> "splash" + "kernel" -> "cpu" + "kernel" -> "themer" + "kernel" -> "netlog" + "kernel" -> "vmlog" + "kernel" -> "vm" + "kernel" -> "vmstate" + "kernel" [href="kernel.html"] + "keyboard" -> "console" + "keyboard" -> "util" + "keyboard" -> "PS2_KEYBOARD_ISR" + "keyboard" [href="keyboard.html"] + "lists" -> "console" + "lists" -> "lmemorymanager" + "lists" -> "util" + "lists" -> "strings" + "lists" -> "tracer" + "lists" [href="lists.html"] + "lmemorymanager" -> "util" + "lmemorymanager" -> "vmemorymanager" + "lmemorymanager" -> "pmemorymanager" + "lmemorymanager" -> "console" + "lmemorymanager" -> "tracer" + "lmemorymanager" [href="lmemorymanager.html"] + "MCE" -> "util" + "MCE" -> "console" + "MCE" -> "isr_types" + "MCE" -> "isrmanager" + "MCE" -> "IDT" + "MCE" [href="MCE.html"] + "memview" -> "console" + "memview" -> "terminal" + "memview" -> "keyboard" + "memview" -> "util" + "memview" -> "strings" + "memview" -> "tracer" + "memview" [href="memview.html"] + "mouse" -> "tracer" + "mouse" -> "console" + "mouse" -> "util" + "mouse" -> "lmemorymanager" + "mouse" -> "strings" + "mouse" -> "isrmanager" + "mouse" -> "drivermanagement" + "mouse" [href="mouse.html"] + "multiboot" [href="multiboot.html"] + "NCE" -> "util" + "NCE" -> "console" + "NCE" -> "isr_types" + "NCE" -> "isrmanager" + "NCE" -> "IDT" + "NCE" [href="NCE.html"] + "net" -> "tracer" + "net" -> "console" + "net" -> "nettypes" + "net" -> "netutils" + "net" -> "netlog" + "net" -> "RTC" + "net" [href="net.html"] + "netlog" -> "console" + "netlog" -> "terminal" + "netlog" -> "keyboard" + "netlog" -> "util" + "netlog" -> "strings" + "netlog" -> "tracer" + "netlog" [href="netlog.html"] + "nettypes" [href="nettypes.html"] + "netutils" -> "tracer" + "netutils" -> "util" + "netutils" -> "nettypes" + "netutils" -> "console" + "netutils" -> "lmemorymanager" + "netutils" -> "lists" + "netutils" -> "strings" + "netutils" [href="netutils.html"] + "NMIE" -> "util" + "NMIE" -> "console" + "NMIE" -> "isr_types" + "NMIE" -> "isrmanager" + "NMIE" -> "IDT" + "NMIE" [href="NMIE.html"] + "OHCI" -> "tracer" + "OHCI" -> "Console" + "OHCI" -> "PCI" + "OHCI" -> "drivertypes" + "OHCI" -> "pmemorymanager" + "OHCI" -> "vmemorymanager" + "OHCI" -> "util" + "OHCI" -> "drivermanagement" + "OHCI" [href="OHCI.html"] + "OOBE" -> "util" + "OOBE" -> "console" + "OOBE" -> "isr_types" + "OOBE" -> "isrmanager" + "OOBE" -> "IDT" + "OOBE" [href="OOBE.html"] + "PCI" -> "tracer" + "PCI" -> "util" + "PCI" -> "console" + "PCI" -> "drivertypes" + "PCI" -> "lmemorymanager" + "PCI" -> "vmemorymanager" + "PCI" -> "drivermanagement" + "PCI" [href="PCI.html"] + "PF" -> "util" + "PF" -> "console" + "PF" -> "isr_types" + "PF" -> "isrmanager" + "PF" -> "IDT" + "PF" [href="PF.html"] + "pmemorymanager" -> "util" + "pmemorymanager" -> "console" + "pmemorymanager" -> "multiboot" + "pmemorymanager" -> "tracer" + "pmemorymanager" [href="pmemorymanager.html"] + "processloader" [href="processloader.html"] + "PS2_KEYBOARD_ISR" -> "util" + "PS2_KEYBOARD_ISR" -> "console" + "PS2_KEYBOARD_ISR" -> "isr_types" + "PS2_KEYBOARD_ISR" -> "isrmanager" + "PS2_KEYBOARD_ISR" -> "IDT" + "PS2_KEYBOARD_ISR" [href="PS2_KEYBOARD_ISR.html"] + "RTC" -> "console" + "RTC" -> "isrmanager" + "RTC" -> "util" + "RTC" -> "TMR_0_ISR" + "RTC" [href="RTC.html"] + "scheduler" -> "console" + "scheduler" -> "TMR_0_ISR" + "scheduler" -> "lmemorymanager" + "scheduler" -> "terminal" + "scheduler" [href="scheduler.html"] + "serial" -> "util" + "serial" -> "isrmanager" + "serial" -> "strings" + "serial" [href="serial.html"] + "SFE" -> "util" + "SFE" -> "console" + "SFE" -> "isr_types" + "SFE" -> "isrmanager" + "SFE" -> "IDT" + "SFE" [href="SFE.html"] + "shell" -> "Console" + "shell" -> "RTC" + "shell" -> "terminal" + "shell" -> "strings" + "shell" -> "asuro" + "shell" -> "tracer" + "shell" [href="shell.html"] + "SNPE" -> "util" + "SNPE" -> "console" + "SNPE" -> "isr_types" + "SNPE" -> "isrmanager" + "SNPE" -> "IDT" + "SNPE" [href="SNPE.html"] + "splash" -> "console" + "splash" -> "keyboard" + "splash" -> "RTC" + "splash" [href="splash.html"] + "strings" -> "util" + "strings" -> "lmemorymanager" + "strings" [href="strings.html"] + "system" [href="system.html"] + "tcp" -> "nettypes" + "tcp" -> "netutils" + "tcp" -> "ipv4" + "tcp" [href="tcp.html"] + "terminal" -> "bios_data_area" + "terminal" -> "console" + "terminal" -> "keyboard" + "terminal" -> "util" + "terminal" -> "lmemorymanager" + "terminal" -> "strings" + "terminal" -> "tracer" + "terminal" -> "asuro" + "terminal" -> "serial" + "terminal" -> "netutils" + "terminal" -> "nettypes" + "terminal" [href="terminal.html"] + "testdriver" -> "tracer" + "testdriver" -> "console" + "testdriver" -> "drivermanagement" + "testdriver" [href="testdriver.html"] + "themer" -> "console" + "themer" -> "terminal" + "themer" -> "keyboard" + "themer" -> "shell" + "themer" -> "strings" + "themer" -> "tracer" + "themer" [href="themer.html"] + "TMR_0_ISR" -> "util" + "TMR_0_ISR" -> "console" + "TMR_0_ISR" -> "isr_types" + "TMR_0_ISR" -> "isrmanager" + "TMR_0_ISR" -> "IDT" + "TMR_0_ISR" [href="TMR_0_ISR.html"] + "TMR_1_ISR" -> "util" + "TMR_1_ISR" -> "console" + "TMR_1_ISR" -> "isr_types" + "TMR_1_ISR" -> "IDT" + "TMR_1_ISR" [href="TMR_1_ISR.html"] + "tracer" [href="tracer.html"] + "tss" -> "gdt" + "tss" -> "vmemorymanager" + "tss" -> "console" + "tss" [href="tss.html"] + "types" [href="types.html"] + "udp" -> "nettypes" + "udp" -> "netutils" + "udp" -> "ipv4" + "udp" [href="udp.html"] + "UHCI" -> "tracer" + "UHCI" -> "Console" + "UHCI" -> "PCI" + "UHCI" -> "drivertypes" + "UHCI" -> "pmemorymanager" + "UHCI" -> "vmemorymanager" + "UHCI" -> "util" + "UHCI" -> "drivermanagement" + "UHCI" [href="UHCI.html"] + "UIE" -> "util" + "UIE" -> "console" + "UIE" -> "isr_types" + "UIE" -> "isrmanager" + "UIE" -> "IDT" + "UIE" [href="UIE.html"] + "USB" -> "tracer" + "USB" -> "Console" + "USB" -> "PCI" + "USB" -> "drivertypes" + "USB" -> "pmemorymanager" + "USB" -> "vmemorymanager" + "USB" -> "util" + "USB" -> "drivermanagement" + "USB" -> "OHCI" + "USB" -> "UHCI" + "USB" -> "EHCI" + "USB" -> "XHCI" + "USB" [href="USB.html"] + "util" -> "bios_data_area" + "util" -> "tracer" + "util" [href="util.html"] + "vmemorymanager" -> "util" + "vmemorymanager" -> "pmemorymanager" + "vmemorymanager" -> "console" + "vmemorymanager" -> "tracer" + "vmemorymanager" [href="vmemorymanager.html"] + "vmlog" -> "console" + "vmlog" -> "terminal" + "vmlog" -> "keyboard" + "vmlog" -> "util" + "vmlog" -> "strings" + "vmlog" -> "tracer" + "vmlog" [href="vmlog.html"] + "vmstate" -> "console" + "vmstate" -> "terminal" + "vmstate" -> "keyboard" + "vmstate" -> "util" + "vmstate" -> "strings" + "vmstate" -> "tracer" + "vmstate" -> "vm_scheduler" + "vmstate" -> "vm_instance" + "vmstate" [href="vmstate.html"] + "XHCI" -> "tracer" + "XHCI" -> "Console" + "XHCI" -> "PCI" + "XHCI" -> "drivertypes" + "XHCI" -> "pmemorymanager" + "XHCI" -> "vmemorymanager" + "XHCI" -> "util" + "XHCI" -> "drivermanagement" + "XHCI" [href="XHCI.html"] +} diff --git a/doc/IDOE.html b/doc/IDOE.html index 27dcab4f..85fe12e9 100644 --- a/doc/IDOE.html +++ b/doc/IDOE.html @@ -1,60 +1,60 @@ - - - -Asuro: IDOE - - - - - - - - -
-

Unit IDOE

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->IDO - Into Detected Overflow Exception. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: IDOE + + + + + + + + +
+

Unit IDOE

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->IDO - Into Detected Overflow Exception. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/IOPE.html b/doc/IOPE.html index 588ab875..af159fa7 100644 --- a/doc/IOPE.html +++ b/doc/IOPE.html @@ -1,60 +1,60 @@ - - - -Asuro: IOPE - - - - - - - - -
-

Unit IOPE

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->IOPE - Invalid OPCode Exception. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: IOPE + + + + + + + + +
+

Unit IOPE

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->IOPE - Invalid OPCode Exception. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/MCE.html b/doc/MCE.html index acc0e3b8..78e90729 100644 --- a/doc/MCE.html +++ b/doc/MCE.html @@ -1,60 +1,60 @@ - - - -Asuro: MCE - - - - - - - - -
-

Unit MCE

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->MCE - Machine Check Exception. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: MCE + + + + + + + + +
+

Unit MCE

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->MCE - Machine Check Exception. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/NCE.html b/doc/NCE.html index 13e20a63..ba797b08 100644 --- a/doc/NCE.html +++ b/doc/NCE.html @@ -1,60 +1,60 @@ - - - -Asuro: NCE - - - - - - - - -
-

Unit NCE

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->NCE - No Coprocessor Exception. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: NCE + + + + + + + + +
+

Unit NCE

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->NCE - No Coprocessor Exception. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/NMIE.html b/doc/NMIE.html index 860ad5b8..f26e9eb0 100644 --- a/doc/NMIE.html +++ b/doc/NMIE.html @@ -1,60 +1,60 @@ - - - -Asuro: NMIE - - - - - - - - -
-

Unit NMIE

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->NMIE - Non-Maskable Interrupt Exception. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: NMIE + + + + + + + + +
+

Unit NMIE

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->NMIE - Non-Maskable Interrupt Exception. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/OHCI.TOHCI_MMR.html b/doc/OHCI.TOHCI_MMR.html index 52f2a076..42cc5ae4 100644 --- a/doc/OHCI.TOHCI_MMR.html +++ b/doc/OHCI.TOHCI_MMR.html @@ -1,247 +1,247 @@ - - - -Asuro: OHCI: Packed Record TOHCI_MMR - - - - - - - - -
-

Packed Record TOHCI_MMR

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TOHCI_MMR = packed record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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;
-

Description

-

Fields

- - - - - -
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;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: OHCI: Packed Record TOHCI_MMR + + + + + + + + +
+

Packed Record TOHCI_MMR

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TOHCI_MMR = packed record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
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;
+

Description

+

Fields

+ + + + + +
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;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/OHCI.html b/doc/OHCI.html index 28a6722a..ecd760b1 100644 --- a/doc/OHCI.html +++ b/doc/OHCI.html @@ -1,85 +1,85 @@ - - - -Asuro: OHCI - - - - - - - - -
-

Unit OHCI

- -

Description

-

-Driver->Bus->OHCI - Open Host Controller Interface Driver. - -

-

Uses

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - -
NameDescription
Packed Record TOHCI_MMR 
-

Functions and Procedures

- - - - -
function load : boolean;
-

Types

- - - - -
POHCI_MMR = ˆTOHCI_MMR;
-

Description

-

Functions and Procedures

- - - - - -
function load : boolean;
-

Types

- - - - - -
POHCI_MMR = ˆTOHCI_MMR;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: OHCI + + + + + + + + +
+

Unit OHCI

+ +

Description

+

+Driver->Bus->OHCI - Open Host Controller Interface Driver. + +

+

Uses

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + +
NameDescription
Packed Record TOHCI_MMR 
+

Functions and Procedures

+ + + + +
function load : boolean;
+

Types

+ + + + +
POHCI_MMR = ˆTOHCI_MMR;
+

Description

+

Functions and Procedures

+ + + + + +
function load : boolean;
+

Types

+ + + + + +
POHCI_MMR = ˆTOHCI_MMR;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/OOBE.html b/doc/OOBE.html index 7b906f95..b008e1e5 100644 --- a/doc/OOBE.html +++ b/doc/OOBE.html @@ -1,60 +1,60 @@ - - - -Asuro: OOBE - - - - - - - - -
-

Unit OOBE

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->OOBE - Out Of Bounds Exception. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: OOBE + + + + + + + + +
+

Unit OOBE

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->OOBE - Out Of Bounds Exception. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/PCI.html b/doc/PCI.html index 1d88432d..e0dd433e 100644 --- a/doc/PCI.html +++ b/doc/PCI.html @@ -1,68 +1,68 @@ - - - -Asuro: PCI - - - - - - - - - + + +
-

Unit PCI

-
-
Classes, Interfaces, Objects and Records
-

Description

-

-Driver->Bus->PCI - Peripheral Component Interconnect Driver. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - - - - - - - - - - - - - - - - - - - -
procedure init();
procedure scanBus(bus : uint8);
function loadDeviceConfig(bus : uint8; slot : uint8; func : uint8) : boolean;
function getDeviceInfo(class_code : uint8; subclass_code : uint8; prog_if : uint8; var count : uint32) : TdeviceArray;
procedure requestConfig(bus : uint8; slot : uint8; func : uint8; row : uint8);
procedure writeConfig(bus: uint8; slot : uint8; func : uint8; row : uint8; val : uint32);
procedure setBusMaster(bus : uint8; slot : uint8; func : uint8; master : boolean);
-

Types

- - + + + +Asuro: PCI + + + + + + + + +
+

Unit PCI

+
+
Classes, Interfaces, Objects and Records
+

Description

+

+Driver->Bus->PCI - Peripheral Component Interconnect Driver. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + + + + + + + + + + + + + + + + + + + +
procedure init();
procedure scanBus(bus : uint8);
function loadDeviceConfig(bus : uint8; slot : uint8; func : uint8) : boolean;
function getDeviceInfo(class_code : uint8; subclass_code : uint8; prog_if : uint8; var count : uint32) : TdeviceArray;
procedure requestConfig(bus : uint8; slot : uint8; func : uint8; row : uint8);
procedure writeConfig(bus: uint8; slot : uint8; func : uint8; row : uint8; val : uint32);
procedure setBusMaster(bus : uint8; slot : uint8; func : uint8; master : boolean);
+

Types

+ + - -
TPCI_Device_Bridge = bitpacked record device_id : uint16; vendor_id : uint16; @@ -100,92 +100,92 @@ Driver->Bus->PCI - Peripheral Component Interconnect Driver. bridge_control : uint16; interrupt_pin : uint8; interrupt_line : uint8; - end;
-

Constants

- - - - - - - -
PCI_PORT_CONF_ADDR = $CF8;
PCI_PORT_CONF_DATA = $CFC;
-

Variables

- - - - - - - - - - - - - - - - -
devices: array[0..1024] of TPCI_Device;
busses: array[0..256] of TPCI_Device_Bridge;
device_count: uint16;
bus_count: uint8 = 1;
get_device_count: uint8;
-

Description

-

Functions and Procedures

- - - - - -
procedure init();
- - - - - -
procedure scanBus(bus : uint8);
- - - - - -
function loadDeviceConfig(bus : uint8; slot : uint8; func : uint8) : boolean;
- - - - - -
function getDeviceInfo(class_code : uint8; subclass_code : uint8; prog_if : uint8; var count : uint32) : TdeviceArray;
- - - - - -
procedure requestConfig(bus : uint8; slot : uint8; func : uint8; row : uint8);
-

-(Will in future)returns TPCI_DEVICE.vendor_id := 0xFFFF if no device found.

-
- - - - - -
procedure writeConfig(bus: uint8; slot : uint8; func : uint8; row : uint8; val : uint32);
- - - - - -
procedure setBusMaster(bus : uint8; slot : uint8; func : uint8; master : boolean);
-

Types

- - + end; + +
+

Constants

+ + + + + + + +
PCI_PORT_CONF_ADDR = $CF8;
PCI_PORT_CONF_DATA = $CFC;
+

Variables

+ + + + + + + + + + + + + + + + +
devices: array[0..1024] of TPCI_Device;
busses: array[0..256] of TPCI_Device_Bridge;
device_count: uint16;
bus_count: uint8 = 1;
get_device_count: uint8;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init();
+ + + + + +
procedure scanBus(bus : uint8);
+ + + + + +
function loadDeviceConfig(bus : uint8; slot : uint8; func : uint8) : boolean;
+ + + + + +
function getDeviceInfo(class_code : uint8; subclass_code : uint8; prog_if : uint8; var count : uint32) : TdeviceArray;
+ + + + + +
procedure requestConfig(bus : uint8; slot : uint8; func : uint8; row : uint8);
+

+(Will in future)returns TPCI_DEVICE.vendor_id := 0xFFFF if no device found.

+
+ + + + + +
procedure writeConfig(bus: uint8; slot : uint8; func : uint8; row : uint8; val : uint32);
+ + + + + +
procedure setBusMaster(bus : uint8; slot : uint8; func : uint8; master : boolean);
+

Types

+ + - - -
TPCI_Device_Bridge = bitpacked record device_id : uint16; vendor_id : uint16; @@ -223,67 +223,67 @@ Driver->Bus->PCI - Peripheral Component Interconnect Driver. bridge_control : uint16; interrupt_pin : uint8; interrupt_line : uint8; - end;
-

Constants

- - - - - -
PCI_PORT_CONF_ADDR = $CF8;
- - - - - -
PCI_PORT_CONF_DATA = $CFC;
-

Variables

- - - - - -
devices: array[0..1024] of TPCI_Device;
- - - - - -
busses: array[0..256] of TPCI_Device_Bridge;
- - - - - -
device_count: uint16;
- - - - - -
bus_count: uint8 = 1;
- - - - - -
get_device_count: uint8;
-

Authors

- -
Generated by PasDoc 0.15.0. - -
+ end;
+

Constants

+ + + + + +
PCI_PORT_CONF_ADDR = $CF8;
+ + + + + +
PCI_PORT_CONF_DATA = $CFC;
+

Variables

+ + + + + +
devices: array[0..1024] of TPCI_Device;
+ + + + + +
busses: array[0..256] of TPCI_Device_Bridge;
+ + + + + +
device_count: uint16;
+ + + + + +
bus_count: uint8 = 1;
+ + + + + +
get_device_count: uint8;
+

Authors

+ +
Generated by PasDoc 0.15.0. + + diff --git a/doc/PF.html b/doc/PF.html index e25ccbad..3e4a5963 100644 --- a/doc/PF.html +++ b/doc/PF.html @@ -1,60 +1,60 @@ - - - -Asuro: PF - - - - - - - - -
-

Unit PF

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->PF - Page Fault. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: PF + + + + + + + + +
+

Unit PF

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->PF - Page Fault. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/PS2_KEYBOARD_ISR.html b/doc/PS2_KEYBOARD_ISR.html index 3e019d93..a4583c31 100644 --- a/doc/PS2_KEYBOARD_ISR.html +++ b/doc/PS2_KEYBOARD_ISR.html @@ -1,81 +1,81 @@ - - - -Asuro: PS2_KEYBOARD_ISR - - - - - - - - -
-

Unit PS2_KEYBOARD_ISR

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Driver->HID->PS2_KEYBAORD_ISR - PS2 ISR Hook & Driver. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - - - - - - - -
procedure register();
procedure hook(hook_method : uint32);
procedure unhook(hook_method : uint32);
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
- - - - - -
procedure hook(hook_method : uint32);
- - - - - -
procedure unhook(hook_method : uint32);
-

Authors

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: PS2_KEYBOARD_ISR + + + + + + + + +
+

Unit PS2_KEYBOARD_ISR

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Driver->HID->PS2_KEYBAORD_ISR - PS2 ISR Hook & Driver. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + + + + + + + +
procedure register();
procedure hook(hook_method : uint32);
procedure unhook(hook_method : uint32);
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+ + + + + +
procedure hook(hook_method : uint32);
+ + + + + +
procedure unhook(hook_method : uint32);
+

Authors

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/RTC.TDateTime.html b/doc/RTC.TDateTime.html index 8212b494..c9b52bcb 100644 --- a/doc/RTC.TDateTime.html +++ b/doc/RTC.TDateTime.html @@ -1,127 +1,127 @@ - - - -Asuro: RTC: Record TDateTime - - - - - - - - -
-

Record TDateTime

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TDateTime = record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - - - - - - - - - - - - - -
Seconds: uint8;
Minutes: uint8;
Hours: uint8;
Weekday: uint8;
Day: uint8;
Month: uint8;
Year: uint8;
Century: uint8;
-

Description

-

Fields

- - - - - -
Seconds: uint8;
- - - - - -
Minutes: uint8;
- - - - - -
Hours: uint8;
- - - - - -
Weekday: uint8;
- - - - - -
Day: uint8;
- - - - - -
Month: uint8;
- - - - - -
Year: uint8;
- - - - - -
Century: uint8;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: RTC: Record TDateTime + + + + + + + + +
+

Record TDateTime

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TDateTime = record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + + + + + + + + + + + + + +
Seconds: uint8;
Minutes: uint8;
Hours: uint8;
Weekday: uint8;
Day: uint8;
Month: uint8;
Year: uint8;
Century: uint8;
+

Description

+

Fields

+ + + + + +
Seconds: uint8;
+ + + + + +
Minutes: uint8;
+ + + + + +
Hours: uint8;
+ + + + + +
Weekday: uint8;
+ + + + + +
Day: uint8;
+ + + + + +
Month: uint8;
+ + + + + +
Year: uint8;
+ + + + + +
Century: uint8;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/RTC.html b/doc/RTC.html index fae74ebc..c37ae286 100644 --- a/doc/RTC.html +++ b/doc/RTC.html @@ -1,91 +1,91 @@ - - - -Asuro: RTC - - - - - - - - -
-

Unit RTC

- -

Description

-

-Driver->Timers->RTC - Real Time Clock Driver. - -

-

Uses

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - -
NameDescription
Record TDateTime 
-

Functions and Procedures

- - - - - - - - - - -
procedure init;
function getDateTime : TDateTime;
function weekdayToString(Weekday : uint8) : pchar;
-

Description

-

Functions and Procedures

- - - - - -
procedure init;
- - - - - -
function getDateTime : TDateTime;
- - - - - -
function weekdayToString(Weekday : uint8) : pchar;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: RTC + + + + + + + + +
+

Unit RTC

+ +

Description

+

+Driver->Timers->RTC - Real Time Clock Driver. + +

+

Uses

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + +
NameDescription
Record TDateTime 
+

Functions and Procedures

+ + + + + + + + + + +
procedure init;
function getDateTime : TDateTime;
function weekdayToString(Weekday : uint8) : pchar;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init;
+ + + + + +
function getDateTime : TDateTime;
+ + + + + +
function weekdayToString(Weekday : uint8) : pchar;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/SFE.html b/doc/SFE.html index 148273ea..12172d9e 100644 --- a/doc/SFE.html +++ b/doc/SFE.html @@ -1,60 +1,60 @@ - - - -Asuro: SFE - - - - - - - - -
-

Unit SFE

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->SFE - Stack Fault Exception. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: SFE + + + + + + + + +
+

Unit SFE

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->SFE - Stack Fault Exception. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/SNPE.html b/doc/SNPE.html index 3030923e..2051dbc0 100644 --- a/doc/SNPE.html +++ b/doc/SNPE.html @@ -1,60 +1,60 @@ - - - -Asuro: SNPE - - - - - - - - -
-

Unit SNPE

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->SNPE - Segment Not Present Exception. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: SNPE + + + + + + + + +
+

Unit SNPE

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->SNPE - Segment Not Present Exception. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/TMR_0_ISR.html b/doc/TMR_0_ISR.html index 099e51ec..5d5c3d3a 100644 --- a/doc/TMR_0_ISR.html +++ b/doc/TMR_0_ISR.html @@ -1,80 +1,80 @@ - - - -Asuro: TMR_0_ISR - - - - - - - - -
-

Unit TMR_0_ISR

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Driver->Timer->TMR_0_ISR - 1024hz Timer Driver. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - - - - - - - -
procedure register();
procedure hook(hook_method : uint32);
procedure unhook(hook_method : uint32);
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
- - - - - -
procedure hook(hook_method : uint32);
- - - - - -
procedure unhook(hook_method : uint32);
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: TMR_0_ISR + + + + + + + + +
+

Unit TMR_0_ISR

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Driver->Timer->TMR_0_ISR - 1024hz Timer Driver. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + + + + + + + +
procedure register();
procedure hook(hook_method : uint32);
procedure unhook(hook_method : uint32);
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+ + + + + +
procedure hook(hook_method : uint32);
+ + + + + +
procedure unhook(hook_method : uint32);
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/TMR_1_ISR.html b/doc/TMR_1_ISR.html index c1e3e9a6..6bd63e64 100644 --- a/doc/TMR_1_ISR.html +++ b/doc/TMR_1_ISR.html @@ -1,80 +1,80 @@ - - - -Asuro: TMR_1_ISR - - - - - - - - -
-

Unit TMR_1_ISR

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Driver->Timer->TMR_1_ISR - 1024/s Timer Driver. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - - - - - - - -
procedure register();
procedure hook(hook_method : uint32);
procedure unhook(hook_method : uint32);
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
- - - - - -
procedure hook(hook_method : uint32);
- - - - - -
procedure unhook(hook_method : uint32);
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: TMR_1_ISR + + + + + + + + +
+

Unit TMR_1_ISR

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Driver->Timer->TMR_1_ISR - 1024/s Timer Driver. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + + + + + + + +
procedure register();
procedure hook(hook_method : uint32);
procedure unhook(hook_method : uint32);
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+ + + + + +
procedure hook(hook_method : uint32);
+ + + + + +
procedure unhook(hook_method : uint32);
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/UHCI.html b/doc/UHCI.html index 3229be06..12d606ba 100644 --- a/doc/UHCI.html +++ b/doc/UHCI.html @@ -1,60 +1,60 @@ - - - -Asuro: UHCI - - - - - - - - -
-

Unit UHCI

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Driver->Bus->UHCI - Universal Host Controller Interface Driver. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
function load : boolean;
-

Description

-

Functions and Procedures

- - - - - -
function load : boolean;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: UHCI + + + + + + + + +
+

Unit UHCI

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Driver->Bus->UHCI - Universal Host Controller Interface Driver. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
function load : boolean;
+

Description

+

Functions and Procedures

+ + + + + +
function load : boolean;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/UIE.html b/doc/UIE.html index f46702f2..1be79228 100644 --- a/doc/UIE.html +++ b/doc/UIE.html @@ -1,60 +1,60 @@ - - - -Asuro: UIE - - - - - - - - -
-

Unit UIE

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Fault->UIE - Unknown Interrupt Exception. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure register();
-

Description

-

Functions and Procedures

- - - - - -
procedure register();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: UIE + + + + + + + + +
+

Unit UIE

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Fault->UIE - Unknown Interrupt Exception. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure register();
+

Description

+

Functions and Procedures

+ + + + + +
procedure register();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/USB.html b/doc/USB.html index 68cc364e..ae02a07c 100644 --- a/doc/USB.html +++ b/doc/USB.html @@ -1,60 +1,60 @@ - - - -Asuro: USB - - - - - - - - -
-

Unit USB

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Driver->Bus->USB - Universal Serial Bus Driver/Interface. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure init;
-

Description

-

Functions and Procedures

- - - - - -
procedure init;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: USB + + + + + + + + +
+

Unit USB

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Driver->Bus->USB - Universal Serial Bus Driver/Interface. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure init;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/XHCI.html b/doc/XHCI.html index 9c8ec06a..01dc0999 100644 --- a/doc/XHCI.html +++ b/doc/XHCI.html @@ -1,60 +1,60 @@ - - - -Asuro: XHCI - - - - - - - - -
-

Unit XHCI

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Driver->Bus->XHCI - eXtensible Host Controller Interface Driver. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
function load : boolean;
-

Description

-

Functions and Procedures

- - - - - -
function load : boolean;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: XHCI + + + + + + + + +
+

Unit XHCI

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Driver->Bus->XHCI - eXtensible Host Controller Interface Driver. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
function load : boolean;
+

Description

+

Functions and Procedures

+ + + + + +
function load : boolean;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/_tipue_results.html b/doc/_tipue_results.html index a56f4981..1d4f3d74 100644 --- a/doc/_tipue_results.html +++ b/doc/_tipue_results.html @@ -1,48 +1,48 @@ - - - -Search Results - - - - - - - - - - - - - - - - - - -
- - -

Search results

- -
- -
- - - + + + +Search Results + + + + + + + + + + + + + + + + + + +
+ + +

Search results

+ +
+ +
+ + + diff --git a/doc/arp.TARPCacheRecord.html b/doc/arp.TARPCacheRecord.html index 6cef47d6..dc33ff25 100644 --- a/doc/arp.TARPCacheRecord.html +++ b/doc/arp.TARPCacheRecord.html @@ -1,67 +1,67 @@ - - - -Asuro: arp: Record TARPCacheRecord - - - - - - - - -
-

Record TARPCacheRecord

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TARPCacheRecord = record

-

Description

Overview

-

Fields

- - - - - - - -
MAC: TMACAddress;
IP: TIPv4Address;
-

Description

-

Fields

- - - - - -
MAC: TMACAddress;
- - - - - -
IP: TIPv4Address;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: arp: Record TARPCacheRecord + + + + + + + + +
+

Record TARPCacheRecord

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TARPCacheRecord = record

+

Description

Overview

+

Fields

+ + + + + + + +
MAC: TMACAddress;
IP: TIPv4Address;
+

Description

+

Fields

+ + + + + +
MAC: TMACAddress;
+ + + + + +
IP: TIPv4Address;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/arp.html b/doc/arp.html index 0a66977c..7071ba88 100644 --- a/doc/arp.html +++ b/doc/arp.html @@ -1,145 +1,145 @@ - - - -Asuro: arp - - - - - - - - -
-

Unit arp

- -

Description

-

-Driver->Net->L3->ARP - Address Resolution Protocol Driver. - -

-

Uses

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - -
NameDescription
Record TARPCacheRecord 
-

Functions and Procedures

- - - - - - - - - - - - - - - - - - - - - - -
procedure register;
function IPv4ToMAC(ip : puint8) : puint8;
function MACToIIPv4(mac : puint8) : puint8;
procedure sendGratuitous;
procedure sendRequest(ip : puint8);
procedure send(hType : uint16; pType : uint16; op : uint16; p_context : PPacketContext);
function resolveIP(ip : puint8) : puint8;
-

Types

- - - - -
PARPCacheRecord = ˆTARPCacheRecord;
-

Description

-

Functions and Procedures

- - - - - -
procedure register;
- - - - - -
function IPv4ToMAC(ip : puint8) : puint8;
- - - - - -
function MACToIIPv4(mac : puint8) : puint8;
- - - - - -
procedure sendGratuitous;
- - - - - -
procedure sendRequest(ip : puint8);
- - - - - -
procedure send(hType : uint16; pType : uint16; op : uint16; p_context : PPacketContext);
- - - - - -
function resolveIP(ip : puint8) : puint8;
-

Types

- - - - - -
PARPCacheRecord = ˆTARPCacheRecord;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: arp + + + + + + + + +
+

Unit arp

+ +

Description

+

+Driver->Net->L3->ARP - Address Resolution Protocol Driver. + +

+

Uses

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + +
NameDescription
Record TARPCacheRecord 
+

Functions and Procedures

+ + + + + + + + + + + + + + + + + + + + + + +
procedure register;
function IPv4ToMAC(ip : puint8) : puint8;
function MACToIIPv4(mac : puint8) : puint8;
procedure sendGratuitous;
procedure sendRequest(ip : puint8);
procedure send(hType : uint16; pType : uint16; op : uint16; p_context : PPacketContext);
function resolveIP(ip : puint8) : puint8;
+

Types

+ + + + +
PARPCacheRecord = ˆTARPCacheRecord;
+

Description

+

Functions and Procedures

+ + + + + +
procedure register;
+ + + + + +
function IPv4ToMAC(ip : puint8) : puint8;
+ + + + + +
function MACToIIPv4(mac : puint8) : puint8;
+ + + + + +
procedure sendGratuitous;
+ + + + + +
procedure sendRequest(ip : puint8);
+ + + + + +
procedure send(hType : uint16; pType : uint16; op : uint16; p_context : PPacketContext);
+ + + + + +
function resolveIP(ip : puint8) : puint8;
+

Types

+ + + + + +
PARPCacheRecord = ˆTARPCacheRecord;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/asuro.html b/doc/asuro.html index ae024308..196f3c2d 100644 --- a/doc/asuro.html +++ b/doc/asuro.html @@ -1,199 +1,199 @@ - - - -Asuro: asuro - - - - - - - - -
-

Unit asuro

-
-
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Variables
-

Description

-

-Include->Asuro - Auto-Generated Version & Compilation Information - -

-

Overview

-

Constants

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VERSION = '1.0.1-746ia';
VERSION_MAJOR = '1';
VERSION_MINOR = '0';
VERSION_SUB = '1';
REVISION = '746';
RELEASE = 'ia';
LINE_COUNT = 29505;
FILE_COUNT = 104;
DRIVER_COUNT = 32;
FPC_VERSION = '2.6.4';
NASM_VERSION = '2.10.09';
MAKE_VERSION = '3.81';
COMPILE_DATE = '29/09/18';
COMPILE_TIME = '15:30:53';
CHECKSUM = 'ceb05d7417d4c62b74f7c3c4c164cb15';
-

Description

-

Constants

- - - - - -
VERSION = '1.0.1-746ia';
- - - - - -
VERSION_MAJOR = '1';
- - - - - -
VERSION_MINOR = '0';
- - - - - -
VERSION_SUB = '1';
- - - - - -
REVISION = '746';
- - - - - -
RELEASE = 'ia';
- - - - - -
LINE_COUNT = 29505;
- - - - - -
FILE_COUNT = 104;
- - - - - -
DRIVER_COUNT = 32;
- - - - - -
FPC_VERSION = '2.6.4';
- - - - - -
NASM_VERSION = '2.10.09';
- - - - - -
MAKE_VERSION = '3.81';
- - - - - -
COMPILE_DATE = '29/09/18';
- - - - - -
COMPILE_TIME = '15:30:53';
- - - - - -
CHECKSUM = 'ceb05d7417d4c62b74f7c3c4c164cb15';
-

Author

-
    -
  • Asuro Compilation Script
  • -
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: asuro + + + + + + + + +
+

Unit asuro

+
+
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Variables
+

Description

+

+Include->Asuro - Auto-Generated Version & Compilation Information + +

+

Overview

+

Constants

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VERSION = '1.0.1-746ia';
VERSION_MAJOR = '1';
VERSION_MINOR = '0';
VERSION_SUB = '1';
REVISION = '746';
RELEASE = 'ia';
LINE_COUNT = 29505;
FILE_COUNT = 104;
DRIVER_COUNT = 32;
FPC_VERSION = '2.6.4';
NASM_VERSION = '2.10.09';
MAKE_VERSION = '3.81';
COMPILE_DATE = '29/09/18';
COMPILE_TIME = '15:30:53';
CHECKSUM = 'ceb05d7417d4c62b74f7c3c4c164cb15';
+

Description

+

Constants

+ + + + + +
VERSION = '1.0.1-746ia';
+ + + + + +
VERSION_MAJOR = '1';
+ + + + + +
VERSION_MINOR = '0';
+ + + + + +
VERSION_SUB = '1';
+ + + + + +
REVISION = '746';
+ + + + + +
RELEASE = 'ia';
+ + + + + +
LINE_COUNT = 29505;
+ + + + + +
FILE_COUNT = 104;
+ + + + + +
DRIVER_COUNT = 32;
+ + + + + +
FPC_VERSION = '2.6.4';
+ + + + + +
NASM_VERSION = '2.10.09';
+ + + + + +
MAKE_VERSION = '3.81';
+ + + + + +
COMPILE_DATE = '29/09/18';
+ + + + + +
COMPILE_TIME = '15:30:53';
+ + + + + +
CHECKSUM = 'ceb05d7417d4c62b74f7c3c4c164cb15';
+

Author

+
    +
  • Asuro Compilation Script
  • +
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/bios_data_area.TCounters.html b/doc/bios_data_area.TCounters.html index 64f49602..09aa50db 100644 --- a/doc/bios_data_area.TCounters.html +++ b/doc/bios_data_area.TCounters.html @@ -1,77 +1,77 @@ - - - -Asuro: bios_data_area: Record TCounters - - - - - - - - -
-

Record TCounters

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TCounters = record

-

Description

Overview

-

Fields

- - - - - - - - - - -
c16: uint16;
c32: uint32;
c64: uint64;
-

Description

-

Fields

- - - - - -
c16: uint16;
- - - - - -
c32: uint32;
- - - - - -
c64: uint64;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: bios_data_area: Record TCounters + + + + + + + + +
+

Record TCounters

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TCounters = record

+

Description

Overview

+

Fields

+ + + + + + + + + + +
c16: uint16;
c32: uint32;
c64: uint64;
+

Description

+

Fields

+ + + + + +
c16: uint16;
+ + + + + +
c32: uint32;
+ + + + + +
c64: uint64;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/bios_data_area.html b/doc/bios_data_area.html index 7bf66628..c83d97bc 100644 --- a/doc/bios_data_area.html +++ b/doc/bios_data_area.html @@ -1,60 +1,60 @@ - - - -Asuro: bios_data_area - - - - - - - - - + + +
-

Unit bios_data_area

- -

Description

-

-Include->BIOS_Data_Area - Data Structures Controlled by the BIOS. - -

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - -
NameDescription
Record TCounters 
-

Functions and Procedures

- - - - -
procedure tick_update(data : void);
-

Types

- - + + + +Asuro: bios_data_area + + + + + + + + +
+

Unit bios_data_area

+ +

Description

+

+Include->BIOS_Data_Area - Data Structures Controlled by the BIOS. + +

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + +
NameDescription
Record TCounters 
+

Functions and Procedures

+ + + + +
procedure tick_update(data : void);
+

Types

+ + - - - - - + end; + + + + + - - - - -
TBDA = bitpacked record COM1 : uint16; COM2 : uint16; @@ -74,12 +74,12 @@ Include->BIOS_Data_Area - Data Structures Controlled by the BIOS Keyboard_Start : uint16; Keyboard_End : uint16; Keyboard_State : uint8; - end;
PBDA = ˆTBDA;
PBDA = ˆTBDA;
TMCFG = bitpacked record Signature : Array[0..3] of Char; Table_Length : uint32; @@ -91,36 +91,36 @@ Include->BIOS_Data_Area - Data Structures Controlled by the BIOS Creator_ID : uint32; Creator_Revision : uint32; Reserved : uint64; - end;
PMCFG = ˆTMCFG;
-

Constants

- - - - -
BDA : PBDA = PBDA($C0000400);
-

Variables

- - - - -
Counters: TCounters;
-

Description

-

Functions and Procedures

- - - - - -
procedure tick_update(data : void);
-

Types

- - + end; + + + + +
PMCFG = ˆTMCFG;
+

Constants

+ + + + +
BDA : PBDA = PBDA($C0000400);
+

Variables

+ + + + +
Counters: TCounters;
+

Description

+

Functions and Procedures

+ + + + + +
procedure tick_update(data : void);
+

Types

+ + - - -
TBDA = bitpacked record COM1 : uint16; COM2 : uint16; @@ -140,20 +140,20 @@ Include->BIOS_Data_Area - Data Structures Controlled by the BIOS Keyboard_Start : uint16; Keyboard_End : uint16; Keyboard_State : uint8; - end;
- - - - - -
PBDA = ˆTBDA;
- - + end; + + +
+ + + + + +
PBDA = ˆTBDA;
+ + - - -
TMCFG = bitpacked record Signature : Array[0..3] of Char; Table_Length : uint32; @@ -165,38 +165,38 @@ Include->BIOS_Data_Area - Data Structures Controlled by the BIOS Creator_ID : uint32; Creator_Revision : uint32; Reserved : uint64; - end;
- - - - - -
PMCFG = ˆTMCFG;
-

Constants

- - - - - -
BDA : PBDA = PBDA($C0000400);
-

Variables

- - - - - -
Counters: TCounters;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ end;
+ + + + + +
PMCFG = ˆTMCFG;
+

Constants

+ + + + + +
BDA : PBDA = PBDA($C0000400);
+

Variables

+ + + + + +
Counters: TCounters;
+

Author

+ +
Generated by PasDoc 0.15.0. + + diff --git a/doc/console.html b/doc/console.html index f51a8b0e..aa2725ef 100644 --- a/doc/console.html +++ b/doc/console.html @@ -1,2164 +1,2164 @@ - - - -Asuro: console - - - - - - - - -
-

Unit console

-
-
Classes, Interfaces, Objects and Records
Variables
-

Description

-

-Console - Provides Screen/Window management & drawing. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
procedure init();
procedure clear();
procedure setdefaultattribute(attribute : uint32);
procedure disable_cursor;
procedure writechar(character : char);
procedure writecharln(character : char);
procedure writecharex(character : char; attributes: uint32);
procedure writecharlnex(character : char; attributes: uint32);
procedure Output(identifier : PChar; str : PChar);
procedure Outputln(identifier : PChar; str : PChar);
procedure writestring(str: PChar);
procedure writestringln(str: PChar);
procedure writestringex(str: PChar; attributes: uint32);
procedure writestringlnex(str: PChar; attributes: uint32);
procedure writeint(i: Integer);
procedure writeintln(i: Integer);
procedure writeintex(i: Integer; attributes: uint32);
procedure writeintlnex(i: Integer; attributes: uint32);
procedure writehexpair(b : uint8);
procedure writehex(i: DWORD);
procedure writehexln(i: DWORD);
procedure writehexex(i : DWORD; attributes: uint32);
procedure writehexlnex(i: DWORD; attributes: uint32);
procedure writebin8(b : uint8);
procedure writebin8ln(b : uint8);
procedure writebin8ex(b : uint8; attributes: uint32);
procedure writebin8lnex(b : uint8; attributes: uint32);
procedure writebin16(b : uint16);
procedure writebin16ln(b : uint16);
procedure writebin16ex(b : uint16; attributes: uint32);
procedure writebin16lnex(b : uint16; attributes: uint32);
procedure writebin32(b : uint32);
procedure writebin32ln(b : uint32);
procedure writebin32ex(b : uint32; attributes: uint32);
procedure writebin32lnex(b : uint32; attributes: uint32);
procedure backspace;
function combinecolors(Foreground, Background : uint16) : uint32;
procedure _increment_x();
procedure _increment_y();
procedure _safeincrement_x();
procedure _safeincrement_y();
procedure _newline();
procedure clearWND(WND : uint32);
procedure clearWNDEx(WND : uint32; attributes : uint32);
procedure writecharWND(character : char; WND : uint32);
procedure writecharlnWND(character : char; WND : uint32);
procedure writecharexWND(character : char; attributes: uint32; WND : uint32);
procedure writecharlnexWND(character : char; attributes: uint32; WND : uint32);
procedure OutputWND(identifier : PChar; str : PChar; WND : uint32);
procedure OutputlnWND(identifier : PChar; str : PChar; WND : uint32);
procedure writestringWND(str: PChar; WND : uint32);
procedure writestringlnWND(str: PChar; WND : uint32);
procedure writestringexWND(str: PChar; attributes: uint32; WND : uint32);
procedure writestringlnexWND(str: PChar; attributes: uint32; WND : uint32);
procedure writeintWND(i: Integer; WND : uint32);
procedure writeintlnWND(i: Integer; WND : uint32);
procedure writeintexWND(i: Integer; attributes: uint32; WND : uint32);
procedure writeintlnexWND(i: Integer; attributes: uint32; WND : uint32);
procedure writehexpairWND(b : uint8; WND : uint32);
procedure writehexpairExWND(b : uint8; Attributes : uint32; WND : uint32);
procedure writehexWND(i: DWORD; WND : uint32);
procedure writehexlnWND(i: DWORD; WND : uint32);
procedure writehexexWND(i : DWORD; attributes: uint32; WND : uint32);
procedure writehexlnexWND(i: DWORD; attributes: uint32; WND : uint32);
procedure writebin8WND(b : uint8; WND : uint32);
procedure writebin8lnWND(b : uint8; WND : uint32);
procedure writebin8exWND(b : uint8; attributes: uint32; WND : uint32);
procedure writebin8lnexWND(b : uint8; attributes: uint32; WND : uint32);
procedure writebin16WND(b : uint16; WND : uint32);
procedure writebin16lnWND(b : uint16; WND : uint32);
procedure writebin16exWND(b : uint16; attributes: uint32; WND : uint32);
procedure writebin16lnexWND(b : uint16; attributes: uint32; WND : uint32);
procedure writebin32WND(b : uint32; WND : uint32);
procedure writebin32lnWND(b : uint32; WND : uint32);
procedure writebin32exWND(b : uint32; attributes: uint32; WND : uint32);
procedure writebin32lnexWND(b : uint32; attributes: uint32; WND : uint32);
procedure backspaceWND(WND : uint32);
procedure setCursorPosWND(x : uint32; y : uint32; WND : HWND);
procedure _increment_x_WND(WND : uint32);
procedure _increment_y_WND(WND : uint32);
procedure _safeincrement_y_WND(WND : uint32);
procedure _safeincrement_x_WND(WND : uint32);
procedure _newlineWND(WND : uint32);
procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16);
procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16);
procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16);
function getPixel(x : uint32; y : uint32) : uint16;
procedure drawPixel(x : uint32; y : uint32; color : uint16);
function getPixel32(x : uint32; y : uint32) : uint32;
procedure drawPixel32(x : uint32; y : uint32; pixel : uint32);
function getPixel64(x : uint32; y : uint32) : uint64;
procedure drawPixel64(x : uint32; y : uint32; pixel : uint64);
procedure setMousePosition(x : uint32; y : uint32);
procedure redrawWindows;
procedure toggleWNDVisible(WND : uint32);
procedure setWNDVisible(WND : uint32; visible : boolean);
procedure closeAllWindows;
function newWindow(x : uint32; y : uint32; Width : uint32; Height : uint32; Title : PChar) : HWND;
function registerEventHandler(WND : HWND; Event : TEventType; Handler : void) : boolean;
procedure forceQuitAll;
procedure closeWindow(WND : HWND);
procedure bordersEnabled(WND : HWND; enabled : boolean);
procedure SetShellWindow(WND : HWND; b : boolean);
function getWindowName(WND : HWND) : pchar;
procedure mouseEnabled(b : boolean);
procedure _MouseDown();
procedure _MouseUp();
procedure _MouseClick(left : boolean);
procedure setWindowColors(colors : uint32);
function getWindowColorPtr : puint32;
-

Types

- - - - - - - -
TColor = (...);
TEventType = (...);
-

Constants

- - - - - - - -
MAX_WINDOWS = 255;
DefaultWND = 0;
-

Description

-

Functions and Procedures

- - - - - -
procedure init();
-

-Initialize the Frame Buffer & Window Manager ready for use.

-
- - - - - -
procedure clear();
-

-Clear the Frame Buffer.

-
- - - - - -
procedure setdefaultattribute(attribute : uint32);
-

-Set the default set of attributes to be used when drawing to the screen.

-
Parameters
-
-
attribute
-
A 32-bit value representing the Foreground & Background colors.
-
-
- - - - - -
procedure disable_cursor;
-

Warning: this symbol is deprecated.

-Text mode only! - Disable the cursor/text-caret.

-
- - - - - -
procedure writechar(character : char);
-

-Write a single 8-bit character to the screen.

-
Parameters
-
-
character
-
An 8-bit value representing an ASCII character.
-
-
- - - - - -
procedure writecharln(character : char);
-

-Write a single 8-bit character to the screen, followed by starting a new line.

-
Parameters
-
-
character
-
An 8-bit value representing an ASCII character.
-
-
- - - - - -
procedure writecharex(character : char; attributes: uint32);
-

-Write a single 8-bit character to the screen, specifying custom color attributes.

-
Parameters
-
-
character
-
An 8-bit value representing an ASCII character.
-
attributes
-
A 32-bit value representing the colors for the background and foreground.
-
-
- - - - - -
procedure writecharlnex(character : char; attributes: uint32);
-

-Write a single 8-bit character to the screen, followed by starting a new line, specifying custom color attributes.

-
Parameters
-
-
character
-
An 8-bit value representing an ASCII character.
-
attributes
-
A 32-bit value representing the colors for the background and foreground.
-
-
- - - - - -
procedure Output(identifier : PChar; str : PChar);
-

-Simple console write for debugging.

-
Parameters
-
-
identifier
-
A NULL terminated string with the name of the module printing the output.
-
str
-
A NULL terminated string with the debug message.
-
-
- - - - - -
procedure Outputln(identifier : PChar; str : PChar);
-

-Simple console writeln for debugging.

-
Parameters
-
-
identifier
-
A NULL terminated string with the name of the module printing the output.
-
str
-
A NULL terminated string with the debug message.
-
-
- - - - - -
procedure writestring(str: PChar);
-

-Write a NULL terminated string to the console.

-
Parameters
-
-
str
-
A NULL terminated string with the debug message.
-
-
- - - - - -
procedure writestringln(str: PChar);
-

-Write a NULL terminated string to the console, followed by a new-line.

-
Parameters
-
-
str
-
A NULL terminated string with the debug message.
-
-
- - - - - -
procedure writestringex(str: PChar; attributes: uint32);
-

-Write a NULL terminated string to the console, with the specified attributes.

-
Parameters
-
-
str
-
A NULL terminated string with the debug message.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
-
- - - - - -
procedure writestringlnex(str: PChar; attributes: uint32);
-

-Write a NULL terminated string + new-line to the console, with the specified attributes.

-
Parameters
-
-
str
-
A NULL terminated string with the debug message.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
-
- - - - - -
procedure writeint(i: Integer);
-

-Write a 32-bit value to the console.

-
Parameters
-
-
i
-
A 32-bit value.
-
-
- - - - - -
procedure writeintln(i: Integer);
-

-Write a 32-bit value to the console followed by a new-line.

-
Parameters
-
-
i
-
A 32-bit value.
-
-
- - - - - -
procedure writeintex(i: Integer; attributes: uint32);
-

-Write a 32-bit value to the console, with the specified attributes.

-
Parameters
-
-
i
-
A 32-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
-
- - - - - -
procedure writeintlnex(i: Integer; attributes: uint32);
-

-Write a 32-bit value + new-line to the console, with the specified attributes.

-
Parameters
-
-
i
-
A 32-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
-
- - - - - -
procedure writehexpair(b : uint8);
-

-Write an 8-bit Hex Pair to the console.

-
Parameters
-
-
b
-
An 8-bit value.
-
-
- - - - - -
procedure writehex(i: DWORD);
-

-Write a 32-bit value as Hex Pairs to the console.

-
Parameters
-
-
i
-
A 32-bit value.
-
-
- - - - - -
procedure writehexln(i: DWORD);
-

-Write a 32-bit value as Hex Pairs to the console, followed by a new-line.

-
Parameters
-
-
i
-
A 32-bit value.
-
-
- - - - - -
procedure writehexex(i : DWORD; attributes: uint32);
-

-Write a 32-bit value as Hex Pairs to the console, with the specified attributes.

-
Parameters
-
-
b
-
A 32-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
-
- - - - - -
procedure writehexlnex(i: DWORD; attributes: uint32);
-

-Write a 32-bit value as Hex Pairs + new-line to the console, with the specified attributes.

-
Parameters
-
-
b
-
A 32-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
-
- - - - - -
procedure writebin8(b : uint8);
-

-Write an 8-bit value as binary to the console.

-
Parameters
-
-
b
-
An 8-bit value.
-
-
- - - - - -
procedure writebin8ln(b : uint8);
-

-Write an 8-bit value as binary to the console, followed by a new-line.

-
Parameters
-
-
b
-
An 8-bit value.
-
-
- - - - - -
procedure writebin8ex(b : uint8; attributes: uint32);
-

-Write an 8-bit value as binary to the console, with the specified attributes.

-
Parameters
-
-
b
-
An 8-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
-
- - - - - -
procedure writebin8lnex(b : uint8; attributes: uint32);
-

-Write an 8-bit value as binary + new-line to the console, with the specified attributes.

-
Parameters
-
-
b
-
An 8-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
-
- - - - - -
procedure writebin16(b : uint16);
-

-Write a 16-bit value as binary to the console.

-
Parameters
-
-
b
-
A 16-bit value.
-
-
- - - - - -
procedure writebin16ln(b : uint16);
-

-Write an 16-bit value as binary to the console, followed by a new-line.

-
Parameters
-
-
b
-
A 16-bit value.
-
-
- - - - - -
procedure writebin16ex(b : uint16; attributes: uint32);
-

-Write a 16-bit value as binary to the console, with the specified attributes.

-
Parameters
-
-
b
-
A 16-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
-
- - - - - -
procedure writebin16lnex(b : uint16; attributes: uint32);
-

-Write a 16-bit value as binary + new-line to the console, with the specified attributes.

-
Parameters
-
-
b
-
A 16-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
-
- - - - - -
procedure writebin32(b : uint32);
-

-Write a 32-bit value as binary to the console.

-
Parameters
-
-
b
-
A 32-bit value.
-
-
- - - - - -
procedure writebin32ln(b : uint32);
-

-Write an 32-bit value as binary to the console, followed by a new-line.

-
Parameters
-
-
b
-
A 32-bit value.
-
-
- - - - - -
procedure writebin32ex(b : uint32; attributes: uint32);
-

-Write a 32-bit value as binary to the console, with the specified attributes.

-
Parameters
-
-
b
-
A 32-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
-
- - - - - -
procedure writebin32lnex(b : uint32; attributes: uint32);
-

-Write a 32-bit value as binary + new-line to the console, with the specified attributes.

-
Parameters
-
-
b
-
A 32-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
-
- - - - - -
procedure backspace;
-

-Move the caret back 1 position and remove the character within the cell the caret occupies.

-
- - - - - -
function combinecolors(Foreground, Background : uint16) : uint32;
-

-Combine two 16-bit values representing Foreground and Background respectively, into a 32-bit value representing an attribute.

-
Parameters
-
-
Foreground
-
A 16-bit value representing the foreground color.
-
Background
-
A 16-bit value representing the background color.
-
-
Returns
-

A 32-bit value representing an attribute set. (uint32)

- - - - - -
procedure _increment_x();
-

-Increment the cursor one cell to the right (x+1).

-
- - - - - -
procedure _increment_y();
-

-Increment the cursor one cell down (y+1).

-
- - - - - -
procedure _safeincrement_x();
-

-Increment the cursor one cell to the right (x+1), wrapping to the next line and performing a Y-Axis scroll when when needed.

-
- - - - - -
procedure _safeincrement_y();
-

-Increment the cursor one cell down (y+1), performing a Y-Axis roll when when needed.

-
- - - - - -
procedure _newline();
-

-Increment the cursor one cell down and reposition it at the first X Cell (y+1, x=0),performing a Y-Axis scroll when needed.

-
- - - - - -
procedure clearWND(WND : uint32);
-

-Clear a Window Canvas.

-
Parameters
-
-
WND
-
A Window Handle.
-
-
- - - - - -
procedure clearWNDEx(WND : uint32; attributes : uint32);
-

-Clear a Window Canvas, with the specified attributes.

-
Parameters
-
-
WND
-
A Window Handle.
-
Attributes
-
A 32-bit value representing an attribute set.
-
-
- - - - - -
procedure writecharWND(character : char; WND : uint32);
-

-Write an ASCII character to a specified Window.

-
Parameters
-
-
Character
-
An 8-bit value representing an ASCII character.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writecharlnWND(character : char; WND : uint32);
-

-Write a single 8-bit character to a Window, followed by starting a new line.

-
Parameters
-
-
character
-
An 8-bit value representing an ASCII character.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writecharexWND(character : char; attributes: uint32; WND : uint32);
-

-Write a single 8-bit character to a Window, specifying custom color attributes.

-
Parameters
-
-
character
-
An 8-bit value representing an ASCII character.
-
attributes
-
A 32-bit value representing the colors for the background and foreground.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writecharlnexWND(character : char; attributes: uint32; WND : uint32);
-

-Write a single 8-bit character to a Window, followed by starting a new line, specifying custom color attributes.

-
Parameters
-
-
character
-
An 8-bit value representing an ASCII character.
-
attributes
-
A 32-bit value representing the colors for the background and foreground.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure OutputWND(identifier : PChar; str : PChar; WND : uint32);
-

-Simple console write for debugging to a Window.

-
Parameters
-
-
identifier
-
A NULL terminated string with the name of the module printing the output.
-
str
-
A NULL terminated string with the debug message.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure OutputlnWND(identifier : PChar; str : PChar; WND : uint32);
-

-Simple console writeln for debugging to a Window.

-
Parameters
-
-
identifier
-
A NULL terminated string with the name of the module printing the output.
-
str
-
A NULL terminated string with the debug message.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writestringWND(str: PChar; WND : uint32);
-

-Write a NULL terminated string to a Window.

-
Parameters
-
-
str
-
A NULL terminated string with the debug message.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writestringlnWND(str: PChar; WND : uint32);
-

-Write a NULL terminated string to a Window, followed by a new-line.

-
Parameters
-
-
str
-
A NULL terminated string with the debug message.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writestringexWND(str: PChar; attributes: uint32; WND : uint32);
-

-Write a NULL terminated string to a Window, with the specified attributes.

-
Parameters
-
-
str
-
A NULL terminated string with the debug message.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writestringlnexWND(str: PChar; attributes: uint32; WND : uint32);
-

-Write a NULL terminated string + new-line to a Window, with the specified attributes.

-
Parameters
-
-
str
-
A NULL terminated string with the debug message.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writeintWND(i: Integer; WND : uint32);
-

-Write a 32-bit value to a Window.

-
Parameters
-
-
i
-
A 32-bit value.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writeintlnWND(i: Integer; WND : uint32);
-

-Write a 32-bit value to a Window followed by a new-line.

-
Parameters
-
-
i
-
A 32-bit value.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writeintexWND(i: Integer; attributes: uint32; WND : uint32);
-

-Write a 32-bit value to a Window, with the specified attributes.

-
Parameters
-
-
i
-
A 32-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writeintlnexWND(i: Integer; attributes: uint32; WND : uint32);
-

-Write a 32-bit value + new-line to a Window, with the specified attributes.

-
Parameters
-
-
i
-
A 32-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writehexpairWND(b : uint8; WND : uint32);
-

-Write an 8-bit Hex Pair to a Window.

-
Parameters
-
-
b
-
An 8-bit value.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writehexpairExWND(b : uint8; Attributes : uint32; WND : uint32);
-

-Write an 8-bit Hex Pair to a Window, with the specified attributes.

-
Parameters
-
-
b
-
An 8-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writehexWND(i: DWORD; WND : uint32);
-

-Write a 32-bit value as Hex Pairs to a Window.

-
Parameters
-
-
i
-
A 32-bit value.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writehexlnWND(i: DWORD; WND : uint32);
-

-Write a 32-bit value as Hex Pairs to a Window, followed by a new-line.

-
Parameters
-
-
i
-
A 32-bit value.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writehexexWND(i : DWORD; attributes: uint32; WND : uint32);
-

-Write a 32-bit value as Hex Pairs to a Window, with the specified attributes.

-
Parameters
-
-
b
-
A 32-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writehexlnexWND(i: DWORD; attributes: uint32; WND : uint32);
-

-Write a 32-bit value as Hex Pairs + new-line to a Window, with the specified attributes.

-
Parameters
-
-
b
-
A 32-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writebin8WND(b : uint8; WND : uint32);
-

-Write an 8-bit value as binary to a Window.

-
Parameters
-
-
b
-
An 8-bit value.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writebin8lnWND(b : uint8; WND : uint32);
-

-Write an 8-bit value as binary to a Window, followed by a new-line.

-
Parameters
-
-
b
-
An 8-bit value.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writebin8exWND(b : uint8; attributes: uint32; WND : uint32);
-

-Write an 8-bit value as binary to a Window, with the specified attributes.

-
Parameters
-
-
b
-
An 8-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writebin8lnexWND(b : uint8; attributes: uint32; WND : uint32);
-

-Write an 8-bit value as binary + new-line to a Window, with the specified attributes.

-
Parameters
-
-
b
-
An 8-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writebin16WND(b : uint16; WND : uint32);
-

-Write a 16-bit value as binary to a Window.

-
Parameters
-
-
b
-
A 16-bit value.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writebin16lnWND(b : uint16; WND : uint32);
-

-Write an 16-bit value as binary to a Window, followed by a new-line.

-
Parameters
-
-
b
-
A 16-bit value.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writebin16exWND(b : uint16; attributes: uint32; WND : uint32);
-

-Write a 16-bit value as binary to a Window, with the specified attributes.

-
Parameters
-
-
b
-
A 16-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writebin16lnexWND(b : uint16; attributes: uint32; WND : uint32);
-

-Write a 16-bit value as binary + new-line to a Window, with the specified attributes.

-
Parameters
-
-
b
-
A 16-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writebin32WND(b : uint32; WND : uint32);
-

-Write a 32-bit value as binary to a Window.

-
Parameters
-
-
b
-
A 32-bit value.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writebin32lnWND(b : uint32; WND : uint32);
-

-Write an 32-bit value as binary to a Window, followed by a new-line.

-
Parameters
-
-
b
-
A 32-bit value.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writebin32exWND(b : uint32; attributes: uint32; WND : uint32);
-

-Write a 32-bit value as binary to a Window, with the specified attributes.

-
Parameters
-
-
b
-
A 32-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure writebin32lnexWND(b : uint32; attributes: uint32; WND : uint32);
-

-Write a 32-bit value as binary + new-line to a Window, with the specified attributes.

-
Parameters
-
-
b
-
A 32-bit value.
-
attributes
-
A 32-bit representation of the background/foreground colors.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure backspaceWND(WND : uint32);
-

-Move a caret belonging to a Window back 1 position and remove the character within the cell the caret occupies.

-
Parameters
-
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure setCursorPosWND(x : uint32; y : uint32; WND : HWND);
-

-Set the caret belonging to a Window to a specified position.

-
Parameters
-
-
X
-
The new Horizontal position.
-
Y
-
The new Vertical postion.
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure _increment_x_WND(WND : uint32);
-

-Increment the cursor within a Window one cell to the right (x+1).

-
Parameters
-
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure _increment_y_WND(WND : uint32);
-

-Increment the cursor within a Window one cell down (y+1).

-
Parameters
-
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure _safeincrement_y_WND(WND : uint32);
-

-Increment the cursor one cell down (y+1), performing a Y-Axis roll when when needed.

-
Parameters
-
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure _safeincrement_x_WND(WND : uint32);
-

-Increment the cursor within a Window one cell to the right (x+1), wrapping to the next line and performing a Y-Axis scroll when when needed.

-
Parameters
-
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure _newlineWND(WND : uint32);
-

-Increment the cursor within a Window one cell down and reposition it at the first X Cell (y+1, x=0),performing a Y-Axis scroll when needed.

-
Parameters
-
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16);
-

-Draw an ASCII char to raw screen space conforming to cell constraints.

-
Parameters
-
-
C
-
An 8-bit ASCII Character.
-
X
-
An 8-bit Horizontal Cell position.
-
Y
-
An 8-bit Vertical Cell Position.
-
fgcolor
-
The 16-bit color of the Character.
-
bgcolor
-
The 16-bit background color of the cell.
-
-
- - - - - -
procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16);
-

-Draw an ASCII char to raw screen space.

-
Parameters
-
-
C
-
An 8-bit ASCII Character.
-
X
-
A 32-bit Horizontal Screen position.
-
Y
-
A 32-bit Vertical Screen Position.
-
fgcolor
-
The 16-bit color of the Character.
-
bgcolor
-
The 16-bit background color of the cell.
-
-
- - - - - -
procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16);
-

-Draw an ASCII char without a background to raw screen space conforming to cell constraints.

-
Parameters
-
-
C
-
An 8-bit ASCII Character.
-
X
-
An 8-bit Horizontal Cell position.
-
Y
-
An 8-bit Vertical Cell Position.
-
fgcolor
-
The 16-bit color of the Character.
-
-
- - - - - -
function getPixel(x : uint32; y : uint32) : uint16;
-

-Get 16-bits of pixel information from the screen position(x,y).

-
Parameters
-
-
X
-
A 32-bit Horizontal Screen position.
-
Y
-
A 32-bit Vertical Screen Position.
-
-
Returns
-

16-bits of Pixel Information

- - - - - -
procedure drawPixel(x : uint32; y : uint32; color : uint16);
-

-Draw 16-bits of pixel information at the screen position(x,y).

-
Parameters
-
-
X
-
A 32-bit Horizontal Screen position.
-
Y
-
A 32-bit Vertical Screen Position.
-
color
-
16-bits of Pixel Information
-
-
- - - - - -
function getPixel32(x : uint32; y : uint32) : uint32;
-

-Get 32-bits of pixel information from the screen position(x,y).

-
Parameters
-
-
X
-
A 32-bit Horizontal Screen position.
-
Y
-
A 32-bit Vertical Screen Position.
-
-
Returns
-

32-bits of Pixel Information

- - - - - -
procedure drawPixel32(x : uint32; y : uint32; pixel : uint32);
-

-Draw 32-bits of pixel information at the screen position(x,y).

-
Parameters
-
-
X
-
A 32-bit Horizontal Screen position.
-
Y
-
A 32-bit Vertical Screen Position.
-
color
-
32-bits of Pixel Information
-
-
- - - - - -
function getPixel64(x : uint32; y : uint32) : uint64;
-

-Get 64-bits of pixel information from the screen position(x,y).

-
Parameters
-
-
X
-
A 32-bit Horizontal Screen position.
-
Y
-
A 32-bit Vertical Screen Position.
-
-
Returns
-

64-bits of Pixel Information

- - - - - -
procedure drawPixel64(x : uint32; y : uint32; pixel : uint64);
-

-Draw 64-bits of pixel information at the screen position(x,y).

-
Parameters
-
-
X
-
A 32-bit Horizontal Screen position.
-
Y
-
A 32-bit Vertical Screen Position.
-
color
-
64-bits of Pixel Information
-
-
- - - - - -
procedure setMousePosition(x : uint32; y : uint32);
-

-Set the position of the mouse cursor relative to screen space.

-
Parameters
-
-
X
-
A 32-bit Horizontal Screen Position.
-
Y
-
A 32-bit Vertical Screen Position.
-
-
- - - - - -
procedure redrawWindows;
-

-Redraw all of the Window adhearing to Z-Order.

-
- - - - - -
procedure toggleWNDVisible(WND : uint32);
-

-Toggle the visibility of a Window.

-
Parameters
-
-
WND
-
A 32-bit handle to a Window.
-
-
- - - - - -
procedure setWNDVisible(WND : uint32; visible : boolean);
-

-Change a Windows visibility.

-
Parameters
-
-
WND
-
A 32-bit handle to a Window.
-
Visible
-
True or False.
-
-
- - - - - -
procedure closeAllWindows;
-

-Close all open Windows and release handles.

-
- - - - - -
function newWindow(x : uint32; y : uint32; Width : uint32; Height : uint32; Title : PChar) : HWND;
-

-Spawn a new Window at cell(x,y) with specified Width, Height and Title. @retruns(A 32-bit Handle for the new Window.)

-
Parameters
-
-
X
-
32-bit Horizontal Cell for the top-left corner of the Window.
-
Y
-
32-bit Vertical Cell for the top-left corner of the Window.
-
Width
-
32-bit Width of the Window in Cells.
-
Height
-
32-bit Height of the Window in Cells.
-
Title
-
NULL Terminated String used as the Title for the Window.
-
-
- - - - - -
function registerEventHandler(WND : HWND; Event : TEventType; Handler : void) : boolean;
-

-Register an Event Handler to a Window

-
Parameters
-
-
WND
-
Handle for the Window the event should be registered against.
-
Event
-
Type of event to register.
-
Handler
-
Procedure to be called upon the event firing.
-
-
Returns
-

True for success False for failure.

- - - - - -
procedure forceQuitAll;
-

-Forcefully close all Windows

-
- - - - - -
procedure closeWindow(WND : HWND);
-

-Close a Window specified by its Handle

-
Parameters
-
-
WND
-
The handle to the target Window.
-
-
- - - - - -
procedure bordersEnabled(WND : HWND; enabled : boolean);
-

-Enable or disable the drawing of the borders surrounding a Window.

-
Parameters
-
-
WND
-
A 32-bit Handle to the target Window.
-
Enabled
-
True for borders to be shown, False for borders to be hidden.
-
-
- - - - - -
procedure SetShellWindow(WND : HWND; b : boolean);
-

-Set a specified Window as a Shell Window (Window cannot be moved or closed).

-
Parameters
-
-
WND
-
32-bit Handle for the target Window.
-
b
-
True to set Target as a Shell Window, False to set Target as a normal Window.
-
-
- - - - - -
function getWindowName(WND : HWND) : pchar;
-

-Get the title of a specified Window.

-
Parameters
-
-
WND
-
32-bit Handle for the target Window.
-
-
Returns
-

NULL Terminated PChar.

- - - - - -
procedure mouseEnabled(b : boolean);
-

-Enable or disable the mouse.

-
Parameters
-
-
b
-
True for mouse enabled, False for mouse disabled.
-
-
- - - - - -
procedure _MouseDown();
-

-Callback for a MouseDown event.

-
- - - - - -
procedure _MouseUp();
-

-Callback for a MouseUp event.

-
- - - - - -
procedure _MouseClick(left : boolean);
-

-Callback for a MouseClick event.

-
Parameters
-
-
Left
-
True for a Left-Click, False for a Right-Click.
-
-
- - - - - -
procedure setWindowColors(colors : uint32);
-

-Set the attributes used for drawing the border around Windows.

-
Parameters
-
-
Colors
-
A 32-bit value representing the attributes (background/foreground).
-
-
- - - - - -
function getWindowColorPtr : puint32;
-

-Get a Pointer to the attribute used for Window Borders.

-
Returns
-

A 32-bit pointer to the Borders Attribute.

-

Types

- - - - - -
TColor = (...);
-

-4-bit nibble representing a color.

-
Values
-
    -
  • -Black = $0
  • -
  • -Blue = $1
  • -
  • -Green = $2
  • -
  • -Aqua = $3
  • -
  • -Red = $4
  • -
  • -Purple = $5
  • -
  • -Yellow = $6
  • -
  • -White = $7
  • -
  • -Gray = $8
  • -
  • -lBlue = $9
  • -
  • -lGreen = $A
  • -
  • -lAqua = $B
  • -
  • -lRed = $C
  • -
  • -lPurple = $D
  • -
  • -lYellow = $E
  • -
  • -lWhite = $F
  • -
-
- - - - - -
TEventType = (...);
-

-Window Manager Events.

-
Values
-
    -
  • -EVENT_DRAW
  • -
  • -EVENT_MOUSE_CLICK
  • -
  • -EVENT_MOUSE_MOVE
  • -
  • -EVENT_MOUSE_DOWN
  • -
  • -EVENT_MOUSE_UP
  • -
  • -EVENT_KEY_PRESSED
  • -
  • -EVENT_CLOSE
  • -
  • -EVENT_MINIMIZE
  • -
  • -EVENT_FOCUS
  • -
  • -EVENT_LOSE_FOCUS
  • -
-
-

Constants

- - - - - -
MAX_WINDOWS = 255;
-

-Maximum number of Windows open.

-
- - - - - -
DefaultWND = 0;
-

-The Window assigned for output when no Window is specified. (Default).

-
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: console + + + + + + + + +
+

Unit console

+
+
Classes, Interfaces, Objects and Records
Variables
+

Description

+

+Console - Provides Screen/Window management & drawing. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
procedure init();
procedure clear();
procedure setdefaultattribute(attribute : uint32);
procedure disable_cursor;
procedure writechar(character : char);
procedure writecharln(character : char);
procedure writecharex(character : char; attributes: uint32);
procedure writecharlnex(character : char; attributes: uint32);
procedure Output(identifier : PChar; str : PChar);
procedure Outputln(identifier : PChar; str : PChar);
procedure writestring(str: PChar);
procedure writestringln(str: PChar);
procedure writestringex(str: PChar; attributes: uint32);
procedure writestringlnex(str: PChar; attributes: uint32);
procedure writeint(i: Integer);
procedure writeintln(i: Integer);
procedure writeintex(i: Integer; attributes: uint32);
procedure writeintlnex(i: Integer; attributes: uint32);
procedure writehexpair(b : uint8);
procedure writehex(i: DWORD);
procedure writehexln(i: DWORD);
procedure writehexex(i : DWORD; attributes: uint32);
procedure writehexlnex(i: DWORD; attributes: uint32);
procedure writebin8(b : uint8);
procedure writebin8ln(b : uint8);
procedure writebin8ex(b : uint8; attributes: uint32);
procedure writebin8lnex(b : uint8; attributes: uint32);
procedure writebin16(b : uint16);
procedure writebin16ln(b : uint16);
procedure writebin16ex(b : uint16; attributes: uint32);
procedure writebin16lnex(b : uint16; attributes: uint32);
procedure writebin32(b : uint32);
procedure writebin32ln(b : uint32);
procedure writebin32ex(b : uint32; attributes: uint32);
procedure writebin32lnex(b : uint32; attributes: uint32);
procedure backspace;
function combinecolors(Foreground, Background : uint16) : uint32;
procedure _increment_x();
procedure _increment_y();
procedure _safeincrement_x();
procedure _safeincrement_y();
procedure _newline();
procedure clearWND(WND : uint32);
procedure clearWNDEx(WND : uint32; attributes : uint32);
procedure writecharWND(character : char; WND : uint32);
procedure writecharlnWND(character : char; WND : uint32);
procedure writecharexWND(character : char; attributes: uint32; WND : uint32);
procedure writecharlnexWND(character : char; attributes: uint32; WND : uint32);
procedure OutputWND(identifier : PChar; str : PChar; WND : uint32);
procedure OutputlnWND(identifier : PChar; str : PChar; WND : uint32);
procedure writestringWND(str: PChar; WND : uint32);
procedure writestringlnWND(str: PChar; WND : uint32);
procedure writestringexWND(str: PChar; attributes: uint32; WND : uint32);
procedure writestringlnexWND(str: PChar; attributes: uint32; WND : uint32);
procedure writeintWND(i: Integer; WND : uint32);
procedure writeintlnWND(i: Integer; WND : uint32);
procedure writeintexWND(i: Integer; attributes: uint32; WND : uint32);
procedure writeintlnexWND(i: Integer; attributes: uint32; WND : uint32);
procedure writehexpairWND(b : uint8; WND : uint32);
procedure writehexpairExWND(b : uint8; Attributes : uint32; WND : uint32);
procedure writehexWND(i: DWORD; WND : uint32);
procedure writehexlnWND(i: DWORD; WND : uint32);
procedure writehexexWND(i : DWORD; attributes: uint32; WND : uint32);
procedure writehexlnexWND(i: DWORD; attributes: uint32; WND : uint32);
procedure writebin8WND(b : uint8; WND : uint32);
procedure writebin8lnWND(b : uint8; WND : uint32);
procedure writebin8exWND(b : uint8; attributes: uint32; WND : uint32);
procedure writebin8lnexWND(b : uint8; attributes: uint32; WND : uint32);
procedure writebin16WND(b : uint16; WND : uint32);
procedure writebin16lnWND(b : uint16; WND : uint32);
procedure writebin16exWND(b : uint16; attributes: uint32; WND : uint32);
procedure writebin16lnexWND(b : uint16; attributes: uint32; WND : uint32);
procedure writebin32WND(b : uint32; WND : uint32);
procedure writebin32lnWND(b : uint32; WND : uint32);
procedure writebin32exWND(b : uint32; attributes: uint32; WND : uint32);
procedure writebin32lnexWND(b : uint32; attributes: uint32; WND : uint32);
procedure backspaceWND(WND : uint32);
procedure setCursorPosWND(x : uint32; y : uint32; WND : HWND);
procedure _increment_x_WND(WND : uint32);
procedure _increment_y_WND(WND : uint32);
procedure _safeincrement_y_WND(WND : uint32);
procedure _safeincrement_x_WND(WND : uint32);
procedure _newlineWND(WND : uint32);
procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16);
procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16);
procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16);
function getPixel(x : uint32; y : uint32) : uint16;
procedure drawPixel(x : uint32; y : uint32; color : uint16);
function getPixel32(x : uint32; y : uint32) : uint32;
procedure drawPixel32(x : uint32; y : uint32; pixel : uint32);
function getPixel64(x : uint32; y : uint32) : uint64;
procedure drawPixel64(x : uint32; y : uint32; pixel : uint64);
procedure setMousePosition(x : uint32; y : uint32);
procedure redrawWindows;
procedure toggleWNDVisible(WND : uint32);
procedure setWNDVisible(WND : uint32; visible : boolean);
procedure closeAllWindows;
function newWindow(x : uint32; y : uint32; Width : uint32; Height : uint32; Title : PChar) : HWND;
function registerEventHandler(WND : HWND; Event : TEventType; Handler : void) : boolean;
procedure forceQuitAll;
procedure closeWindow(WND : HWND);
procedure bordersEnabled(WND : HWND; enabled : boolean);
procedure SetShellWindow(WND : HWND; b : boolean);
function getWindowName(WND : HWND) : pchar;
procedure mouseEnabled(b : boolean);
procedure _MouseDown();
procedure _MouseUp();
procedure _MouseClick(left : boolean);
procedure setWindowColors(colors : uint32);
function getWindowColorPtr : puint32;
+

Types

+ + + + + + + +
TColor = (...);
TEventType = (...);
+

Constants

+ + + + + + + +
MAX_WINDOWS = 255;
DefaultWND = 0;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init();
+

+Initialize the Frame Buffer & Window Manager ready for use.

+
+ + + + + +
procedure clear();
+

+Clear the Frame Buffer.

+
+ + + + + +
procedure setdefaultattribute(attribute : uint32);
+

+Set the default set of attributes to be used when drawing to the screen.

+
Parameters
+
+
attribute
+
A 32-bit value representing the Foreground & Background colors.
+
+
+ + + + + +
procedure disable_cursor;
+

Warning: this symbol is deprecated.

+Text mode only! - Disable the cursor/text-caret.

+
+ + + + + +
procedure writechar(character : char);
+

+Write a single 8-bit character to the screen.

+
Parameters
+
+
character
+
An 8-bit value representing an ASCII character.
+
+
+ + + + + +
procedure writecharln(character : char);
+

+Write a single 8-bit character to the screen, followed by starting a new line.

+
Parameters
+
+
character
+
An 8-bit value representing an ASCII character.
+
+
+ + + + + +
procedure writecharex(character : char; attributes: uint32);
+

+Write a single 8-bit character to the screen, specifying custom color attributes.

+
Parameters
+
+
character
+
An 8-bit value representing an ASCII character.
+
attributes
+
A 32-bit value representing the colors for the background and foreground.
+
+
+ + + + + +
procedure writecharlnex(character : char; attributes: uint32);
+

+Write a single 8-bit character to the screen, followed by starting a new line, specifying custom color attributes.

+
Parameters
+
+
character
+
An 8-bit value representing an ASCII character.
+
attributes
+
A 32-bit value representing the colors for the background and foreground.
+
+
+ + + + + +
procedure Output(identifier : PChar; str : PChar);
+

+Simple console write for debugging.

+
Parameters
+
+
identifier
+
A NULL terminated string with the name of the module printing the output.
+
str
+
A NULL terminated string with the debug message.
+
+
+ + + + + +
procedure Outputln(identifier : PChar; str : PChar);
+

+Simple console writeln for debugging.

+
Parameters
+
+
identifier
+
A NULL terminated string with the name of the module printing the output.
+
str
+
A NULL terminated string with the debug message.
+
+
+ + + + + +
procedure writestring(str: PChar);
+

+Write a NULL terminated string to the console.

+
Parameters
+
+
str
+
A NULL terminated string with the debug message.
+
+
+ + + + + +
procedure writestringln(str: PChar);
+

+Write a NULL terminated string to the console, followed by a new-line.

+
Parameters
+
+
str
+
A NULL terminated string with the debug message.
+
+
+ + + + + +
procedure writestringex(str: PChar; attributes: uint32);
+

+Write a NULL terminated string to the console, with the specified attributes.

+
Parameters
+
+
str
+
A NULL terminated string with the debug message.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
+
+ + + + + +
procedure writestringlnex(str: PChar; attributes: uint32);
+

+Write a NULL terminated string + new-line to the console, with the specified attributes.

+
Parameters
+
+
str
+
A NULL terminated string with the debug message.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
+
+ + + + + +
procedure writeint(i: Integer);
+

+Write a 32-bit value to the console.

+
Parameters
+
+
i
+
A 32-bit value.
+
+
+ + + + + +
procedure writeintln(i: Integer);
+

+Write a 32-bit value to the console followed by a new-line.

+
Parameters
+
+
i
+
A 32-bit value.
+
+
+ + + + + +
procedure writeintex(i: Integer; attributes: uint32);
+

+Write a 32-bit value to the console, with the specified attributes.

+
Parameters
+
+
i
+
A 32-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
+
+ + + + + +
procedure writeintlnex(i: Integer; attributes: uint32);
+

+Write a 32-bit value + new-line to the console, with the specified attributes.

+
Parameters
+
+
i
+
A 32-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
+
+ + + + + +
procedure writehexpair(b : uint8);
+

+Write an 8-bit Hex Pair to the console.

+
Parameters
+
+
b
+
An 8-bit value.
+
+
+ + + + + +
procedure writehex(i: DWORD);
+

+Write a 32-bit value as Hex Pairs to the console.

+
Parameters
+
+
i
+
A 32-bit value.
+
+
+ + + + + +
procedure writehexln(i: DWORD);
+

+Write a 32-bit value as Hex Pairs to the console, followed by a new-line.

+
Parameters
+
+
i
+
A 32-bit value.
+
+
+ + + + + +
procedure writehexex(i : DWORD; attributes: uint32);
+

+Write a 32-bit value as Hex Pairs to the console, with the specified attributes.

+
Parameters
+
+
b
+
A 32-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
+
+ + + + + +
procedure writehexlnex(i: DWORD; attributes: uint32);
+

+Write a 32-bit value as Hex Pairs + new-line to the console, with the specified attributes.

+
Parameters
+
+
b
+
A 32-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
+
+ + + + + +
procedure writebin8(b : uint8);
+

+Write an 8-bit value as binary to the console.

+
Parameters
+
+
b
+
An 8-bit value.
+
+
+ + + + + +
procedure writebin8ln(b : uint8);
+

+Write an 8-bit value as binary to the console, followed by a new-line.

+
Parameters
+
+
b
+
An 8-bit value.
+
+
+ + + + + +
procedure writebin8ex(b : uint8; attributes: uint32);
+

+Write an 8-bit value as binary to the console, with the specified attributes.

+
Parameters
+
+
b
+
An 8-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
+
+ + + + + +
procedure writebin8lnex(b : uint8; attributes: uint32);
+

+Write an 8-bit value as binary + new-line to the console, with the specified attributes.

+
Parameters
+
+
b
+
An 8-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
+
+ + + + + +
procedure writebin16(b : uint16);
+

+Write a 16-bit value as binary to the console.

+
Parameters
+
+
b
+
A 16-bit value.
+
+
+ + + + + +
procedure writebin16ln(b : uint16);
+

+Write an 16-bit value as binary to the console, followed by a new-line.

+
Parameters
+
+
b
+
A 16-bit value.
+
+
+ + + + + +
procedure writebin16ex(b : uint16; attributes: uint32);
+

+Write a 16-bit value as binary to the console, with the specified attributes.

+
Parameters
+
+
b
+
A 16-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
+
+ + + + + +
procedure writebin16lnex(b : uint16; attributes: uint32);
+

+Write a 16-bit value as binary + new-line to the console, with the specified attributes.

+
Parameters
+
+
b
+
A 16-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
+
+ + + + + +
procedure writebin32(b : uint32);
+

+Write a 32-bit value as binary to the console.

+
Parameters
+
+
b
+
A 32-bit value.
+
+
+ + + + + +
procedure writebin32ln(b : uint32);
+

+Write an 32-bit value as binary to the console, followed by a new-line.

+
Parameters
+
+
b
+
A 32-bit value.
+
+
+ + + + + +
procedure writebin32ex(b : uint32; attributes: uint32);
+

+Write a 32-bit value as binary to the console, with the specified attributes.

+
Parameters
+
+
b
+
A 32-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
+
+ + + + + +
procedure writebin32lnex(b : uint32; attributes: uint32);
+

+Write a 32-bit value as binary + new-line to the console, with the specified attributes.

+
Parameters
+
+
b
+
A 32-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
+
+ + + + + +
procedure backspace;
+

+Move the caret back 1 position and remove the character within the cell the caret occupies.

+
+ + + + + +
function combinecolors(Foreground, Background : uint16) : uint32;
+

+Combine two 16-bit values representing Foreground and Background respectively, into a 32-bit value representing an attribute.

+
Parameters
+
+
Foreground
+
A 16-bit value representing the foreground color.
+
Background
+
A 16-bit value representing the background color.
+
+
Returns
+

A 32-bit value representing an attribute set. (uint32)

+ + + + + +
procedure _increment_x();
+

+Increment the cursor one cell to the right (x+1).

+
+ + + + + +
procedure _increment_y();
+

+Increment the cursor one cell down (y+1).

+
+ + + + + +
procedure _safeincrement_x();
+

+Increment the cursor one cell to the right (x+1), wrapping to the next line and performing a Y-Axis scroll when when needed.

+
+ + + + + +
procedure _safeincrement_y();
+

+Increment the cursor one cell down (y+1), performing a Y-Axis roll when when needed.

+
+ + + + + +
procedure _newline();
+

+Increment the cursor one cell down and reposition it at the first X Cell (y+1, x=0),performing a Y-Axis scroll when needed.

+
+ + + + + +
procedure clearWND(WND : uint32);
+

+Clear a Window Canvas.

+
Parameters
+
+
WND
+
A Window Handle.
+
+
+ + + + + +
procedure clearWNDEx(WND : uint32; attributes : uint32);
+

+Clear a Window Canvas, with the specified attributes.

+
Parameters
+
+
WND
+
A Window Handle.
+
Attributes
+
A 32-bit value representing an attribute set.
+
+
+ + + + + +
procedure writecharWND(character : char; WND : uint32);
+

+Write an ASCII character to a specified Window.

+
Parameters
+
+
Character
+
An 8-bit value representing an ASCII character.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writecharlnWND(character : char; WND : uint32);
+

+Write a single 8-bit character to a Window, followed by starting a new line.

+
Parameters
+
+
character
+
An 8-bit value representing an ASCII character.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writecharexWND(character : char; attributes: uint32; WND : uint32);
+

+Write a single 8-bit character to a Window, specifying custom color attributes.

+
Parameters
+
+
character
+
An 8-bit value representing an ASCII character.
+
attributes
+
A 32-bit value representing the colors for the background and foreground.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writecharlnexWND(character : char; attributes: uint32; WND : uint32);
+

+Write a single 8-bit character to a Window, followed by starting a new line, specifying custom color attributes.

+
Parameters
+
+
character
+
An 8-bit value representing an ASCII character.
+
attributes
+
A 32-bit value representing the colors for the background and foreground.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure OutputWND(identifier : PChar; str : PChar; WND : uint32);
+

+Simple console write for debugging to a Window.

+
Parameters
+
+
identifier
+
A NULL terminated string with the name of the module printing the output.
+
str
+
A NULL terminated string with the debug message.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure OutputlnWND(identifier : PChar; str : PChar; WND : uint32);
+

+Simple console writeln for debugging to a Window.

+
Parameters
+
+
identifier
+
A NULL terminated string with the name of the module printing the output.
+
str
+
A NULL terminated string with the debug message.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writestringWND(str: PChar; WND : uint32);
+

+Write a NULL terminated string to a Window.

+
Parameters
+
+
str
+
A NULL terminated string with the debug message.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writestringlnWND(str: PChar; WND : uint32);
+

+Write a NULL terminated string to a Window, followed by a new-line.

+
Parameters
+
+
str
+
A NULL terminated string with the debug message.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writestringexWND(str: PChar; attributes: uint32; WND : uint32);
+

+Write a NULL terminated string to a Window, with the specified attributes.

+
Parameters
+
+
str
+
A NULL terminated string with the debug message.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writestringlnexWND(str: PChar; attributes: uint32; WND : uint32);
+

+Write a NULL terminated string + new-line to a Window, with the specified attributes.

+
Parameters
+
+
str
+
A NULL terminated string with the debug message.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writeintWND(i: Integer; WND : uint32);
+

+Write a 32-bit value to a Window.

+
Parameters
+
+
i
+
A 32-bit value.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writeintlnWND(i: Integer; WND : uint32);
+

+Write a 32-bit value to a Window followed by a new-line.

+
Parameters
+
+
i
+
A 32-bit value.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writeintexWND(i: Integer; attributes: uint32; WND : uint32);
+

+Write a 32-bit value to a Window, with the specified attributes.

+
Parameters
+
+
i
+
A 32-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writeintlnexWND(i: Integer; attributes: uint32; WND : uint32);
+

+Write a 32-bit value + new-line to a Window, with the specified attributes.

+
Parameters
+
+
i
+
A 32-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writehexpairWND(b : uint8; WND : uint32);
+

+Write an 8-bit Hex Pair to a Window.

+
Parameters
+
+
b
+
An 8-bit value.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writehexpairExWND(b : uint8; Attributes : uint32; WND : uint32);
+

+Write an 8-bit Hex Pair to a Window, with the specified attributes.

+
Parameters
+
+
b
+
An 8-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writehexWND(i: DWORD; WND : uint32);
+

+Write a 32-bit value as Hex Pairs to a Window.

+
Parameters
+
+
i
+
A 32-bit value.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writehexlnWND(i: DWORD; WND : uint32);
+

+Write a 32-bit value as Hex Pairs to a Window, followed by a new-line.

+
Parameters
+
+
i
+
A 32-bit value.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writehexexWND(i : DWORD; attributes: uint32; WND : uint32);
+

+Write a 32-bit value as Hex Pairs to a Window, with the specified attributes.

+
Parameters
+
+
b
+
A 32-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writehexlnexWND(i: DWORD; attributes: uint32; WND : uint32);
+

+Write a 32-bit value as Hex Pairs + new-line to a Window, with the specified attributes.

+
Parameters
+
+
b
+
A 32-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writebin8WND(b : uint8; WND : uint32);
+

+Write an 8-bit value as binary to a Window.

+
Parameters
+
+
b
+
An 8-bit value.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writebin8lnWND(b : uint8; WND : uint32);
+

+Write an 8-bit value as binary to a Window, followed by a new-line.

+
Parameters
+
+
b
+
An 8-bit value.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writebin8exWND(b : uint8; attributes: uint32; WND : uint32);
+

+Write an 8-bit value as binary to a Window, with the specified attributes.

+
Parameters
+
+
b
+
An 8-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writebin8lnexWND(b : uint8; attributes: uint32; WND : uint32);
+

+Write an 8-bit value as binary + new-line to a Window, with the specified attributes.

+
Parameters
+
+
b
+
An 8-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writebin16WND(b : uint16; WND : uint32);
+

+Write a 16-bit value as binary to a Window.

+
Parameters
+
+
b
+
A 16-bit value.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writebin16lnWND(b : uint16; WND : uint32);
+

+Write an 16-bit value as binary to a Window, followed by a new-line.

+
Parameters
+
+
b
+
A 16-bit value.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writebin16exWND(b : uint16; attributes: uint32; WND : uint32);
+

+Write a 16-bit value as binary to a Window, with the specified attributes.

+
Parameters
+
+
b
+
A 16-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writebin16lnexWND(b : uint16; attributes: uint32; WND : uint32);
+

+Write a 16-bit value as binary + new-line to a Window, with the specified attributes.

+
Parameters
+
+
b
+
A 16-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writebin32WND(b : uint32; WND : uint32);
+

+Write a 32-bit value as binary to a Window.

+
Parameters
+
+
b
+
A 32-bit value.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writebin32lnWND(b : uint32; WND : uint32);
+

+Write an 32-bit value as binary to a Window, followed by a new-line.

+
Parameters
+
+
b
+
A 32-bit value.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writebin32exWND(b : uint32; attributes: uint32; WND : uint32);
+

+Write a 32-bit value as binary to a Window, with the specified attributes.

+
Parameters
+
+
b
+
A 32-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure writebin32lnexWND(b : uint32; attributes: uint32; WND : uint32);
+

+Write a 32-bit value as binary + new-line to a Window, with the specified attributes.

+
Parameters
+
+
b
+
A 32-bit value.
+
attributes
+
A 32-bit representation of the background/foreground colors.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure backspaceWND(WND : uint32);
+

+Move a caret belonging to a Window back 1 position and remove the character within the cell the caret occupies.

+
Parameters
+
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure setCursorPosWND(x : uint32; y : uint32; WND : HWND);
+

+Set the caret belonging to a Window to a specified position.

+
Parameters
+
+
X
+
The new Horizontal position.
+
Y
+
The new Vertical postion.
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure _increment_x_WND(WND : uint32);
+

+Increment the cursor within a Window one cell to the right (x+1).

+
Parameters
+
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure _increment_y_WND(WND : uint32);
+

+Increment the cursor within a Window one cell down (y+1).

+
Parameters
+
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure _safeincrement_y_WND(WND : uint32);
+

+Increment the cursor one cell down (y+1), performing a Y-Axis roll when when needed.

+
Parameters
+
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure _safeincrement_x_WND(WND : uint32);
+

+Increment the cursor within a Window one cell to the right (x+1), wrapping to the next line and performing a Y-Axis scroll when when needed.

+
Parameters
+
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure _newlineWND(WND : uint32);
+

+Increment the cursor within a Window one cell down and reposition it at the first X Cell (y+1, x=0),performing a Y-Axis scroll when needed.

+
Parameters
+
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16);
+

+Draw an ASCII char to raw screen space conforming to cell constraints.

+
Parameters
+
+
C
+
An 8-bit ASCII Character.
+
X
+
An 8-bit Horizontal Cell position.
+
Y
+
An 8-bit Vertical Cell Position.
+
fgcolor
+
The 16-bit color of the Character.
+
bgcolor
+
The 16-bit background color of the cell.
+
+
+ + + + + +
procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16);
+

+Draw an ASCII char to raw screen space.

+
Parameters
+
+
C
+
An 8-bit ASCII Character.
+
X
+
A 32-bit Horizontal Screen position.
+
Y
+
A 32-bit Vertical Screen Position.
+
fgcolor
+
The 16-bit color of the Character.
+
bgcolor
+
The 16-bit background color of the cell.
+
+
+ + + + + +
procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16);
+

+Draw an ASCII char without a background to raw screen space conforming to cell constraints.

+
Parameters
+
+
C
+
An 8-bit ASCII Character.
+
X
+
An 8-bit Horizontal Cell position.
+
Y
+
An 8-bit Vertical Cell Position.
+
fgcolor
+
The 16-bit color of the Character.
+
+
+ + + + + +
function getPixel(x : uint32; y : uint32) : uint16;
+

+Get 16-bits of pixel information from the screen position(x,y).

+
Parameters
+
+
X
+
A 32-bit Horizontal Screen position.
+
Y
+
A 32-bit Vertical Screen Position.
+
+
Returns
+

16-bits of Pixel Information

+ + + + + +
procedure drawPixel(x : uint32; y : uint32; color : uint16);
+

+Draw 16-bits of pixel information at the screen position(x,y).

+
Parameters
+
+
X
+
A 32-bit Horizontal Screen position.
+
Y
+
A 32-bit Vertical Screen Position.
+
color
+
16-bits of Pixel Information
+
+
+ + + + + +
function getPixel32(x : uint32; y : uint32) : uint32;
+

+Get 32-bits of pixel information from the screen position(x,y).

+
Parameters
+
+
X
+
A 32-bit Horizontal Screen position.
+
Y
+
A 32-bit Vertical Screen Position.
+
+
Returns
+

32-bits of Pixel Information

+ + + + + +
procedure drawPixel32(x : uint32; y : uint32; pixel : uint32);
+

+Draw 32-bits of pixel information at the screen position(x,y).

+
Parameters
+
+
X
+
A 32-bit Horizontal Screen position.
+
Y
+
A 32-bit Vertical Screen Position.
+
color
+
32-bits of Pixel Information
+
+
+ + + + + +
function getPixel64(x : uint32; y : uint32) : uint64;
+

+Get 64-bits of pixel information from the screen position(x,y).

+
Parameters
+
+
X
+
A 32-bit Horizontal Screen position.
+
Y
+
A 32-bit Vertical Screen Position.
+
+
Returns
+

64-bits of Pixel Information

+ + + + + +
procedure drawPixel64(x : uint32; y : uint32; pixel : uint64);
+

+Draw 64-bits of pixel information at the screen position(x,y).

+
Parameters
+
+
X
+
A 32-bit Horizontal Screen position.
+
Y
+
A 32-bit Vertical Screen Position.
+
color
+
64-bits of Pixel Information
+
+
+ + + + + +
procedure setMousePosition(x : uint32; y : uint32);
+

+Set the position of the mouse cursor relative to screen space.

+
Parameters
+
+
X
+
A 32-bit Horizontal Screen Position.
+
Y
+
A 32-bit Vertical Screen Position.
+
+
+ + + + + +
procedure redrawWindows;
+

+Redraw all of the Window adhearing to Z-Order.

+
+ + + + + +
procedure toggleWNDVisible(WND : uint32);
+

+Toggle the visibility of a Window.

+
Parameters
+
+
WND
+
A 32-bit handle to a Window.
+
+
+ + + + + +
procedure setWNDVisible(WND : uint32; visible : boolean);
+

+Change a Windows visibility.

+
Parameters
+
+
WND
+
A 32-bit handle to a Window.
+
Visible
+
True or False.
+
+
+ + + + + +
procedure closeAllWindows;
+

+Close all open Windows and release handles.

+
+ + + + + +
function newWindow(x : uint32; y : uint32; Width : uint32; Height : uint32; Title : PChar) : HWND;
+

+Spawn a new Window at cell(x,y) with specified Width, Height and Title. @retruns(A 32-bit Handle for the new Window.)

+
Parameters
+
+
X
+
32-bit Horizontal Cell for the top-left corner of the Window.
+
Y
+
32-bit Vertical Cell for the top-left corner of the Window.
+
Width
+
32-bit Width of the Window in Cells.
+
Height
+
32-bit Height of the Window in Cells.
+
Title
+
NULL Terminated String used as the Title for the Window.
+
+
+ + + + + +
function registerEventHandler(WND : HWND; Event : TEventType; Handler : void) : boolean;
+

+Register an Event Handler to a Window

+
Parameters
+
+
WND
+
Handle for the Window the event should be registered against.
+
Event
+
Type of event to register.
+
Handler
+
Procedure to be called upon the event firing.
+
+
Returns
+

True for success False for failure.

+ + + + + +
procedure forceQuitAll;
+

+Forcefully close all Windows

+
+ + + + + +
procedure closeWindow(WND : HWND);
+

+Close a Window specified by its Handle

+
Parameters
+
+
WND
+
The handle to the target Window.
+
+
+ + + + + +
procedure bordersEnabled(WND : HWND; enabled : boolean);
+

+Enable or disable the drawing of the borders surrounding a Window.

+
Parameters
+
+
WND
+
A 32-bit Handle to the target Window.
+
Enabled
+
True for borders to be shown, False for borders to be hidden.
+
+
+ + + + + +
procedure SetShellWindow(WND : HWND; b : boolean);
+

+Set a specified Window as a Shell Window (Window cannot be moved or closed).

+
Parameters
+
+
WND
+
32-bit Handle for the target Window.
+
b
+
True to set Target as a Shell Window, False to set Target as a normal Window.
+
+
+ + + + + +
function getWindowName(WND : HWND) : pchar;
+

+Get the title of a specified Window.

+
Parameters
+
+
WND
+
32-bit Handle for the target Window.
+
+
Returns
+

NULL Terminated PChar.

+ + + + + +
procedure mouseEnabled(b : boolean);
+

+Enable or disable the mouse.

+
Parameters
+
+
b
+
True for mouse enabled, False for mouse disabled.
+
+
+ + + + + +
procedure _MouseDown();
+

+Callback for a MouseDown event.

+
+ + + + + +
procedure _MouseUp();
+

+Callback for a MouseUp event.

+
+ + + + + +
procedure _MouseClick(left : boolean);
+

+Callback for a MouseClick event.

+
Parameters
+
+
Left
+
True for a Left-Click, False for a Right-Click.
+
+
+ + + + + +
procedure setWindowColors(colors : uint32);
+

+Set the attributes used for drawing the border around Windows.

+
Parameters
+
+
Colors
+
A 32-bit value representing the attributes (background/foreground).
+
+
+ + + + + +
function getWindowColorPtr : puint32;
+

+Get a Pointer to the attribute used for Window Borders.

+
Returns
+

A 32-bit pointer to the Borders Attribute.

+

Types

+ + + + + +
TColor = (...);
+

+4-bit nibble representing a color.

+
Values
+
    +
  • +Black = $0
  • +
  • +Blue = $1
  • +
  • +Green = $2
  • +
  • +Aqua = $3
  • +
  • +Red = $4
  • +
  • +Purple = $5
  • +
  • +Yellow = $6
  • +
  • +White = $7
  • +
  • +Gray = $8
  • +
  • +lBlue = $9
  • +
  • +lGreen = $A
  • +
  • +lAqua = $B
  • +
  • +lRed = $C
  • +
  • +lPurple = $D
  • +
  • +lYellow = $E
  • +
  • +lWhite = $F
  • +
+
+ + + + + +
TEventType = (...);
+

+Window Manager Events.

+
Values
+
    +
  • +EVENT_DRAW
  • +
  • +EVENT_MOUSE_CLICK
  • +
  • +EVENT_MOUSE_MOVE
  • +
  • +EVENT_MOUSE_DOWN
  • +
  • +EVENT_MOUSE_UP
  • +
  • +EVENT_KEY_PRESSED
  • +
  • +EVENT_CLOSE
  • +
  • +EVENT_MINIMIZE
  • +
  • +EVENT_FOCUS
  • +
  • +EVENT_LOSE_FOCUS
  • +
+
+

Constants

+ + + + + +
MAX_WINDOWS = 255;
+

+Maximum number of Windows open.

+
+ + + + + +
DefaultWND = 0;
+

+The Window assigned for output when no Window is specified. (Default).

+
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/contextswitcher.html b/doc/contextswitcher.html index 29558a7d..c47a6126 100644 --- a/doc/contextswitcher.html +++ b/doc/contextswitcher.html @@ -1,43 +1,43 @@ - - - -Asuro: contextswitcher - - - - - - - - -
-

Unit contextswitcher

-
-
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Constants
Variables
-

Description

-

-ContextSwitcher - Switch Process Contexts when preempted. - -

-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: contextswitcher + + + + + + + + +
+

Unit contextswitcher

+
+
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Constants
Variables
+

Description

+

+ContextSwitcher - Switch Process Contexts when preempted. + +

+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/cpu.TCPUID.html b/doc/cpu.TCPUID.html index 0236a90c..af5da960 100644 --- a/doc/cpu.TCPUID.html +++ b/doc/cpu.TCPUID.html @@ -1,87 +1,87 @@ - - - -Asuro: cpu: Record TCPUID - - - - - - - - -
-

Record TCPUID

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TCPUID = record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - -
ClockSpeed: TClockSpeed;
Identifier: Array[0..12] of Char;
Capabilities0: PCapabilities_Old;
Capabilities1: PCapabilities_New;
-

Description

-

Fields

- - - - - -
ClockSpeed: TClockSpeed;
- - - - - -
Identifier: Array[0..12] of Char;
- - - - - -
Capabilities0: PCapabilities_Old;
- - - - - -
Capabilities1: PCapabilities_New;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: cpu: Record TCPUID + + + + + + + + +
+

Record TCPUID

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TCPUID = record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + +
ClockSpeed: TClockSpeed;
Identifier: Array[0..12] of Char;
Capabilities0: PCapabilities_Old;
Capabilities1: PCapabilities_New;
+

Description

+

Fields

+ + + + + +
ClockSpeed: TClockSpeed;
+ + + + + +
Identifier: Array[0..12] of Char;
+ + + + + +
Capabilities0: PCapabilities_Old;
+ + + + + +
Capabilities1: PCapabilities_New;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/cpu.TClockSpeed.html b/doc/cpu.TClockSpeed.html index 06b92dcc..ab237974 100644 --- a/doc/cpu.TClockSpeed.html +++ b/doc/cpu.TClockSpeed.html @@ -1,87 +1,87 @@ - - - -Asuro: cpu: Record TClockSpeed - - - - - - - - -
-

Record TClockSpeed

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TClockSpeed = record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - -
Hz: uint32;
KHz: uint32;
MHz: uint32;
GHz: uint32;
-

Description

-

Fields

- - - - - -
Hz: uint32;
- - - - - -
KHz: uint32;
- - - - - -
MHz: uint32;
- - - - - -
GHz: uint32;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: cpu: Record TClockSpeed + + + + + + + + +
+

Record TClockSpeed

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TClockSpeed = record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + +
Hz: uint32;
KHz: uint32;
MHz: uint32;
GHz: uint32;
+

Description

+

Fields

+ + + + + +
Hz: uint32;
+ + + + + +
KHz: uint32;
+ + + + + +
MHz: uint32;
+ + + + + +
GHz: uint32;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/cpu.html b/doc/cpu.html index d16f220e..1a9b0e63 100644 --- a/doc/cpu.html +++ b/doc/cpu.html @@ -1,68 +1,68 @@ - - - -Asuro: cpu - - - - - - - - - + + +
-

Unit cpu

- -

Description

-

-CPU - CPU Structures & Utility/Capabilities Functions. - -

-

Uses

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - - - - - -
NameDescription
Record TClockSpeed 
Record TCPUID 
-

Functions and Procedures

- - - - -
procedure init();
-

Types

- - - - - + + + +Asuro: cpu + + + + + + + + +
PCapabilities_Old = ˆTCapabilities_Old;
+

Unit cpu

+ +

Description

+

+CPU - CPU Structures & Utility/Capabilities Functions. + +

+

Uses

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + + + + + +
NameDescription
Record TClockSpeed 
Record TCPUID 
+

Functions and Procedures

+ + + + +
procedure init();
+

Types

+ + + + + - - - - - + end; + + + + + - -
PCapabilities_Old = ˆTCapabilities_Old;
TCapabilities_Old = bitpacked record FPU : Boolean; VME : Boolean; @@ -96,12 +96,12 @@ $(document).ready(function() { TM1 : Boolean; IA64 : Boolean; PBE : Boolean; - end;
PCapabilities_New = ˆTCapabilities_New;
PCapabilities_New = ˆTCapabilities_New;
TCapabilities_New = bitpacked record SSE3 : Boolean; PCLMUL : Boolean; @@ -135,40 +135,40 @@ $(document).ready(function() { RESV3 : Boolean; RESV4 : Boolean; RESV5 : Boolean; - end;
-

Variables

- - - - - - - - - - -
CPUID: TCPUID;
CAP_OLD: uint32;
CAP_NEW: uint32;
-

Description

-

Functions and Procedures

- - - - - -
procedure init();
-

Types

- - - - - -
PCapabilities_Old = ˆTCapabilities_Old;
- - + end; + +
+

Variables

+ + + + + + + + + + +
CPUID: TCPUID;
CAP_OLD: uint32;
CAP_NEW: uint32;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init();
+

Types

+ + + + + +
PCapabilities_Old = ˆTCapabilities_Old;
+ + - - -
TCapabilities_Old = bitpacked record FPU : Boolean; VME : Boolean; @@ -202,20 +202,20 @@ $(document).ready(function() { TM1 : Boolean; IA64 : Boolean; PBE : Boolean; - end;
- - - - - -
PCapabilities_New = ˆTCapabilities_New;
- - + end; + + +
+ + + + + +
PCapabilities_New = ˆTCapabilities_New;
+ + - - -
TCapabilities_New = bitpacked record SSE3 : Boolean; PCLMUL : Boolean; @@ -249,37 +249,37 @@ $(document).ready(function() { RESV3 : Boolean; RESV4 : Boolean; RESV5 : Boolean; - end;
-

Variables

- - - - - -
CPUID: TCPUID;
- - - - - -
CAP_OLD: uint32;
- - - - - -
CAP_NEW: uint32;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ end;
+

Variables

+ + + + + +
CPUID: TCPUID;
+ + + + + +
CAP_OLD: uint32;
+ + + + + +
CAP_NEW: uint32;
+

Author

+ +
Generated by PasDoc 0.15.0. + + diff --git a/doc/crc.html b/doc/crc.html index f14009c4..049b896d 100644 --- a/doc/crc.html +++ b/doc/crc.html @@ -1,59 +1,59 @@ - - - -Asuro: crc - - - - - - - - -
-

Unit crc

-
-
Uses
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Include->CRC - CRC32 Implementation. - -

-

Overview

-

Functions and Procedures

- - - - -
function CRC32(p : puint8; size : uint32) : uint32;
-

Description

-

Functions and Procedures

- - - - - -
function CRC32(p : puint8; size : uint32) : uint32;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: crc + + + + + + + + +
+

Unit crc

+
+
Uses
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Include->CRC - CRC32 Implementation. + +

+

Overview

+

Functions and Procedures

+ + + + +
function CRC32(p : puint8; size : uint32) : uint32;
+

Description

+

Functions and Procedures

+ + + + + +
function CRC32(p : puint8; size : uint32) : uint32;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/drivermanagement.TDevEx.html b/doc/drivermanagement.TDevEx.html index 0a949be0..5717533c 100644 --- a/doc/drivermanagement.TDevEx.html +++ b/doc/drivermanagement.TDevEx.html @@ -1,67 +1,67 @@ - - - -Asuro: drivermanagement: Record TDevEx - - - - - - - - -
-

Record TDevEx

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TDevEx = record

-

Description

Overview

-

Fields

- - - - - - - -
idN: uInt32;
ex: PDevEx;
-

Description

-

Fields

- - - - - -
idN: uInt32;
- - - - - -
ex: PDevEx;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: drivermanagement: Record TDevEx + + + + + + + + +
+

Record TDevEx

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TDevEx = record

+

Description

Overview

+

Fields

+ + + + + + + +
idN: uInt32;
ex: PDevEx;
+

Description

+

Fields

+ + + + + +
idN: uInt32;
+ + + + + +
ex: PDevEx;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/drivermanagement.TDeviceIdentifier.html b/doc/drivermanagement.TDeviceIdentifier.html index aa8486ad..b9982210 100644 --- a/doc/drivermanagement.TDeviceIdentifier.html +++ b/doc/drivermanagement.TDeviceIdentifier.html @@ -1,117 +1,117 @@ - - - -Asuro: drivermanagement: Record TDeviceIdentifier - - - - - - - - -
-

Record TDeviceIdentifier

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TDeviceIdentifier = record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - - - - - - - - - - -
Bus: TBusIdentifier;
id0: uInt32;
id1: uInt32;
id2: uInt32;
id3: uint32;
id4: uint32;
ex: PDevEx;
-

Description

-

Fields

- - - - - -
Bus: TBusIdentifier;
- - - - - -
id0: uInt32;
- - - - - -
id1: uInt32;
- - - - - -
id2: uInt32;
- - - - - -
id3: uint32;
- - - - - -
id4: uint32;
- - - - - -
ex: PDevEx;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: drivermanagement: Record TDeviceIdentifier + + + + + + + + +
+

Record TDeviceIdentifier

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TDeviceIdentifier = record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + + + + + + + + + + +
Bus: TBusIdentifier;
id0: uInt32;
id1: uInt32;
id2: uInt32;
id3: uint32;
id4: uint32;
ex: PDevEx;
+

Description

+

Fields

+ + + + + +
Bus: TBusIdentifier;
+ + + + + +
id0: uInt32;
+ + + + + +
id1: uInt32;
+ + + + + +
id2: uInt32;
+ + + + + +
id3: uint32;
+ + + + + +
id4: uint32;
+ + + + + +
ex: PDevEx;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/drivermanagement.TDeviceRegistration.html b/doc/drivermanagement.TDeviceRegistration.html index 37e3dfca..72b92fa7 100644 --- a/doc/drivermanagement.TDeviceRegistration.html +++ b/doc/drivermanagement.TDeviceRegistration.html @@ -1,97 +1,97 @@ - - - -Asuro: drivermanagement: Record TDeviceRegistration - - - - - - - - -
-

Record TDeviceRegistration

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TDeviceRegistration = record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - - - - -
Device_Name: PChar;
Identifier: PDeviceIdentifier;
Driver_Loaded: Boolean;
Driver: PDriverRegistration;
Next: PDeviceRegistration;
-

Description

-

Fields

- - - - - -
Device_Name: PChar;
- - - - - -
Identifier: PDeviceIdentifier;
- - - - - -
Driver_Loaded: Boolean;
- - - - - -
Driver: PDriverRegistration;
- - - - - -
Next: PDeviceRegistration;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: drivermanagement: Record TDeviceRegistration + + + + + + + + +
+

Record TDeviceRegistration

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TDeviceRegistration = record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + + + + +
Device_Name: PChar;
Identifier: PDeviceIdentifier;
Driver_Loaded: Boolean;
Driver: PDriverRegistration;
Next: PDeviceRegistration;
+

Description

+

Fields

+ + + + + +
Device_Name: PChar;
+ + + + + +
Identifier: PDeviceIdentifier;
+ + + + + +
Driver_Loaded: Boolean;
+ + + + + +
Driver: PDriverRegistration;
+ + + + + +
Next: PDeviceRegistration;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/drivermanagement.TDriverRegistration.html b/doc/drivermanagement.TDriverRegistration.html index c85923ef..b2068f5a 100644 --- a/doc/drivermanagement.TDriverRegistration.html +++ b/doc/drivermanagement.TDriverRegistration.html @@ -1,97 +1,97 @@ - - - -Asuro: drivermanagement: Record TDriverRegistration - - - - - - - - -
-

Record TDriverRegistration

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TDriverRegistration = record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - - - - -
Driver_Name: PChar;
Identifier: PDeviceIdentifier;
Driver_Load: TDriverLoadCallback;
Loaded: Boolean;
Next: PDriverRegistration;
-

Description

-

Fields

- - - - - -
Driver_Name: PChar;
- - - - - -
Identifier: PDeviceIdentifier;
- - - - - -
Driver_Load: TDriverLoadCallback;
- - - - - -
Loaded: Boolean;
- - - - - -
Next: PDriverRegistration;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: drivermanagement: Record TDriverRegistration + + + + + + + + +
+

Record TDriverRegistration

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TDriverRegistration = record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + + + + +
Driver_Name: PChar;
Identifier: PDeviceIdentifier;
Driver_Load: TDriverLoadCallback;
Loaded: Boolean;
Next: PDriverRegistration;
+

Description

+

Fields

+ + + + + +
Driver_Name: PChar;
+ + + + + +
Identifier: PDeviceIdentifier;
+ + + + + +
Driver_Load: TDriverLoadCallback;
+ + + + + +
Loaded: Boolean;
+ + + + + +
Next: PDriverRegistration;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/drivermanagement.html b/doc/drivermanagement.html index 94025a7a..9b02648f 100644 --- a/doc/drivermanagement.html +++ b/doc/drivermanagement.html @@ -1,230 +1,230 @@ - - - -Asuro: drivermanagement - - - - - - - - -
-

Unit drivermanagement

- -

Description

-

-DriverManagement - Driver Initialization & Management Interface. - -

-

Uses

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - - - - - - - - - - - - - -
NameDescription
Record TDevEx 
Record TDeviceIdentifier 
Record TDriverRegistration 
Record TDeviceRegistration 
-

Functions and Procedures

- - - - - - - - - - - - - -
procedure init;
procedure register_driver(Driver_Name : PChar; DeviceID : PDeviceIdentifier; Load_Callback : TDriverLoadCallback);
procedure register_driver_ex(Driver_Name : PChar; DeviceID : PDeviceIdentifier; Load_Callback : TDriverLoadCallback; force_load : boolean);
procedure register_device(Device_Name : PChar; DeviceID : PDeviceIdentifier; ptr : void);
-

Types

- - - - - - - - - - - - - - - - - - - -
PDevEx = ˆTDevEx;
TBusIdentifier = (...);
PDeviceIdentifier = ˆTDeviceIdentifier;
TDriverLoadCallback = function(ptr : void) : boolean;
PDriverRegistration = ˆTDriverRegistration;
PDeviceRegistration = ˆTDeviceRegistration;
-

Constants

- - - - -
idANY = $FFFFFFFF;
-

Variables

- - - - - - - -
Root: PDriverRegistration = nil;
Dev: PDeviceRegistration = nil;
-

Description

-

Functions and Procedures

- - - - - -
procedure init;
- - - - - -
procedure register_driver(Driver_Name : PChar; DeviceID : PDeviceIdentifier; Load_Callback : TDriverLoadCallback);
- - - - - -
procedure register_driver_ex(Driver_Name : PChar; DeviceID : PDeviceIdentifier; Load_Callback : TDriverLoadCallback; force_load : boolean);
- - - - - -
procedure register_device(Device_Name : PChar; DeviceID : PDeviceIdentifier; ptr : void);
-

Types

- - - - - -
PDevEx = ˆTDevEx;
- - - - - -
TBusIdentifier = (...);
Values
-
    -
  • -biUnknown
  • -
  • -biPCI
  • -
  • -biUSB
  • -
  • -bii2c
  • -
  • -biPCIe
  • -
  • -biANY
  • -
-
- - - - - -
PDeviceIdentifier = ˆTDeviceIdentifier;
- - - - - -
TDriverLoadCallback = function(ptr : void) : boolean;
- - - - - -
PDriverRegistration = ˆTDriverRegistration;
- - - - - -
PDeviceRegistration = ˆTDeviceRegistration;
-

Constants

- - - - - -
idANY = $FFFFFFFF;
-

Variables

- - - - - -
Root: PDriverRegistration = nil;
- - - - - -
Dev: PDeviceRegistration = nil;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: drivermanagement + + + + + + + + +
+

Unit drivermanagement

+ +

Description

+

+DriverManagement - Driver Initialization & Management Interface. + +

+

Uses

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + + + + + + + + + + + + + +
NameDescription
Record TDevEx 
Record TDeviceIdentifier 
Record TDriverRegistration 
Record TDeviceRegistration 
+

Functions and Procedures

+ + + + + + + + + + + + + +
procedure init;
procedure register_driver(Driver_Name : PChar; DeviceID : PDeviceIdentifier; Load_Callback : TDriverLoadCallback);
procedure register_driver_ex(Driver_Name : PChar; DeviceID : PDeviceIdentifier; Load_Callback : TDriverLoadCallback; force_load : boolean);
procedure register_device(Device_Name : PChar; DeviceID : PDeviceIdentifier; ptr : void);
+

Types

+ + + + + + + + + + + + + + + + + + + +
PDevEx = ˆTDevEx;
TBusIdentifier = (...);
PDeviceIdentifier = ˆTDeviceIdentifier;
TDriverLoadCallback = function(ptr : void) : boolean;
PDriverRegistration = ˆTDriverRegistration;
PDeviceRegistration = ˆTDeviceRegistration;
+

Constants

+ + + + +
idANY = $FFFFFFFF;
+

Variables

+ + + + + + + +
Root: PDriverRegistration = nil;
Dev: PDeviceRegistration = nil;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init;
+ + + + + +
procedure register_driver(Driver_Name : PChar; DeviceID : PDeviceIdentifier; Load_Callback : TDriverLoadCallback);
+ + + + + +
procedure register_driver_ex(Driver_Name : PChar; DeviceID : PDeviceIdentifier; Load_Callback : TDriverLoadCallback; force_load : boolean);
+ + + + + +
procedure register_device(Device_Name : PChar; DeviceID : PDeviceIdentifier; ptr : void);
+

Types

+ + + + + +
PDevEx = ˆTDevEx;
+ + + + + +
TBusIdentifier = (...);
Values
+
    +
  • +biUnknown
  • +
  • +biPCI
  • +
  • +biUSB
  • +
  • +bii2c
  • +
  • +biPCIe
  • +
  • +biANY
  • +
+
+ + + + + +
PDeviceIdentifier = ˆTDeviceIdentifier;
+ + + + + +
TDriverLoadCallback = function(ptr : void) : boolean;
+ + + + + +
PDriverRegistration = ˆTDriverRegistration;
+ + + + + +
PDeviceRegistration = ˆTDeviceRegistration;
+

Constants

+ + + + + +
idANY = $FFFFFFFF;
+

Variables

+ + + + + +
Root: PDriverRegistration = nil;
+ + + + + +
Dev: PDeviceRegistration = nil;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/drivertypes.html b/doc/drivertypes.html index c57a3dfa..effd8b75 100644 --- a/doc/drivertypes.html +++ b/doc/drivertypes.html @@ -1,46 +1,46 @@ - - - -Asuro: drivertypes - - - - - - - - - + + +
-

Unit drivertypes

-
-
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Constants
Variables
-

Description

-

-Driver->Include->DriverTypes - Structs & Data Shared Across Drivers. - -

-

Overview

-

Types

- - - - - + + + +Asuro: drivertypes + + + + + + + + +
PPCI_Device = ˆTPCI_Device;
+

Unit drivertypes

+
+
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Constants
Variables
+

Description

+

+Driver->Include->DriverTypes - Structs & Data Shared Across Drivers. + +

+

Overview

+

Types

+ + + + + - - - - -
PPCI_Device = ˆTPCI_Device;
TPCI_Device = bitpacked record bus : uint8; slot : uint8; @@ -75,23 +75,23 @@ Driver->Include->DriverTypes - Structs & Data Shared Acro min_grant : uint8; interrupt_pin : uint8; interrupt_line : uint8; - end;
TDeviceArray = array[0..31] of TPCI_Device;
-

Description

-

Types

- - - - - -
PPCI_Device = ˆTPCI_Device;
- - + end; + + + + +
TDeviceArray = array[0..31] of TPCI_Device;
+

Description

+

Types

+ + + + + +
PPCI_Device = ˆTPCI_Device;
+ + - - -
TPCI_Device = bitpacked record bus : uint8; slot : uint8; @@ -126,22 +126,22 @@ Driver->Include->DriverTypes - Structs & Data Shared Acro min_grant : uint8; interrupt_pin : uint8; interrupt_line : uint8; - end;
- - - - - -
TDeviceArray = array[0..31] of TPCI_Device;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ end;
+ + + + + +
TDeviceArray = array[0..31] of TPCI_Device;
+

Author

+ +
Generated by PasDoc 0.15.0. + + diff --git a/doc/eth2.html b/doc/eth2.html index bd803506..8fa95759 100644 --- a/doc/eth2.html +++ b/doc/eth2.html @@ -1,90 +1,90 @@ - - - -Asuro: eth2 - - - - - - - - -
-

Unit eth2

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Driver->Net->L2->Eth2 - Ethernet Driver. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - - - - - - - - - - -
procedure send(p_data : void; p_len : uint16; eth_type : uint16; p_context : PPacketContext);
procedure registerType(eType : uint16; RecvCB : TRecvCallback);
procedure registerTypePromisc(eType : uint16; RecvCB : TRecvCallback);
procedure register;
-

Description

-

Functions and Procedures

- - - - - -
procedure send(p_data : void; p_len : uint16; eth_type : uint16; p_context : PPacketContext);
- - - - - -
procedure registerType(eType : uint16; RecvCB : TRecvCallback);
- - - - - -
procedure registerTypePromisc(eType : uint16; RecvCB : TRecvCallback);
- - - - - -
procedure register;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: eth2 + + + + + + + + +
+

Unit eth2

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Driver->Net->L2->Eth2 - Ethernet Driver. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + + + + + + + + + + +
procedure send(p_data : void; p_len : uint16; eth_type : uint16; p_context : PPacketContext);
procedure registerType(eType : uint16; RecvCB : TRecvCallback);
procedure registerTypePromisc(eType : uint16; RecvCB : TRecvCallback);
procedure register;
+

Description

+

Functions and Procedures

+ + + + + +
procedure send(p_data : void; p_len : uint16; eth_type : uint16; p_context : PPacketContext);
+ + + + + +
procedure registerType(eType : uint16; RecvCB : TRecvCallback);
+ + + + + +
procedure registerTypePromisc(eType : uint16; RecvCB : TRecvCallback);
+ + + + + +
procedure register;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/faults.html b/doc/faults.html index 1536ca11..e59c647b 100644 --- a/doc/faults.html +++ b/doc/faults.html @@ -1,60 +1,60 @@ - - - -Asuro: faults - - - - - - - - -
-

Unit faults

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Faults - Fault Registration & Detouring. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure init;
-

Description

-

Functions and Procedures

- - - - - -
procedure init;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: faults + + + + + + + + +
+

Unit faults

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Faults - Fault Registration & Detouring. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure init;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/fonts.html b/doc/fonts.html index a4f4a8b6..397946da 100644 --- a/doc/fonts.html +++ b/doc/fonts.html @@ -1,43 +1,43 @@ - - - -Asuro: fonts - - - - - - - - - + + +
-

Unit fonts

-
-
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Variables
-

Description

-

-Include->Fonts - Standard Fonts & Font Masks. - -

-

Overview

-

Constants

- - + + + +Asuro: fonts + + + + + + + + +
+

Unit fonts

+
+
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Variables
+

Description

+

+Include->Fonts - Standard Fonts & Font Masks. + +

+

Overview

+

Constants

+ + - - +); + + - -
Std_Mask : Array[0..32768] of uint16 = ( $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$0000, $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$0000,$0000, @@ -4136,9 +4136,9 @@ $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000, $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000, $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000, $00 -);
Std_Font : Array[0..4096] of uint8 = ( %11111110, %11111100, @@ -8237,13 +8237,13 @@ $00 %00000000, %00000000, %00000000 -);
-

Description

-

Constants

- - +); + +
+

Description

+

Constants

+ + - - -
Std_Mask : Array[0..32768] of uint16 = ( $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$0000, $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$0000,$0000, @@ -12342,13 +12342,13 @@ $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000, $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000, $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000, $00 -);
- - +); + + +
+ + - - -
Std_Font : Array[0..4096] of uint8 = ( %11111110, %11111100, @@ -16447,15 +16447,15 @@ $00 %00000000, %00000000, %00000000 -);
-

Author

- -
Generated by PasDoc 0.15.0. - -
+);
+

Author

+ +
Generated by PasDoc 0.15.0. + + diff --git a/doc/gdt.TGDT_Entry.html b/doc/gdt.TGDT_Entry.html index f06030fc..98d7aed8 100644 --- a/doc/gdt.TGDT_Entry.html +++ b/doc/gdt.TGDT_Entry.html @@ -1,107 +1,107 @@ - - - -Asuro: gdt: Packed Record TGDT_Entry - - - - - - - - -
-

Packed Record TGDT_Entry

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TGDT_Entry = packed record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - - - - - - - -
limit_low: uint16;
base_low: uint16;
base_middle: uint8;
access: uint8;
granularity: uint8;
base_high: uint8;
-

Description

-

Fields

- - - - - -
limit_low: uint16;
- - - - - -
base_low: uint16;
- - - - - -
base_middle: uint8;
- - - - - -
access: uint8;
- - - - - -
granularity: uint8;
- - - - - -
base_high: uint8;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: gdt: Packed Record TGDT_Entry + + + + + + + + +
+

Packed Record TGDT_Entry

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TGDT_Entry = packed record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + + + + + + + +
limit_low: uint16;
base_low: uint16;
base_middle: uint8;
access: uint8;
granularity: uint8;
base_high: uint8;
+

Description

+

Fields

+ + + + + +
limit_low: uint16;
+ + + + + +
base_low: uint16;
+ + + + + +
base_middle: uint8;
+ + + + + +
access: uint8;
+ + + + + +
granularity: uint8;
+ + + + + +
base_high: uint8;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/gdt.TGDT_Pointer.html b/doc/gdt.TGDT_Pointer.html index 2e085d37..b215cd35 100644 --- a/doc/gdt.TGDT_Pointer.html +++ b/doc/gdt.TGDT_Pointer.html @@ -1,67 +1,67 @@ - - - -Asuro: gdt: Packed Record TGDT_Pointer - - - - - - - - -
-

Packed Record TGDT_Pointer

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TGDT_Pointer = packed record

-

Description

Overview

-

Fields

- - - - - - - -
limit: uint16;
base: uint32;
-

Description

-

Fields

- - - - - -
limit: uint16;
- - - - - -
base: uint32;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: gdt: Packed Record TGDT_Pointer + + + + + + + + +
+

Packed Record TGDT_Pointer

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TGDT_Pointer = packed record

+

Description

Overview

+

Fields

+ + + + + + + +
limit: uint16;
base: uint32;
+

Description

+

Fields

+ + + + + +
limit: uint16;
+ + + + + +
base: uint32;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/gdt.html b/doc/gdt.html index ede86ad8..69dfaca3 100644 --- a/doc/gdt.html +++ b/doc/gdt.html @@ -1,143 +1,143 @@ - - - -Asuro: gdt - - - - - - - - -
-

Unit gdt

- -

Description

-

-Global Descriptor Table - Data Structures & Interface. - -

-

Uses

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - - - - - -
NameDescription
Packed Record TGDT_Entry 
Packed Record TGDT_Pointer 
-

Functions and Procedures

- - - - - - - - - - - - - -
procedure init();
procedure set_gate(Gate_Number : uint32; Base : uint32; Limit : uint32; Access : uint8; Granularity : uint8);
procedure flush;
procedure reload;
-

Types

- - - - -
PGDT_Entry = ˆTGDT_Entry;
-

Variables

- - - - - - - -
gdt_entries: array[0..1023] of TGDT_Entry;
gdt_pointer: TGDT_Pointer;
-

Description

-

Functions and Procedures

- - - - - -
procedure init();
- - - - - -
procedure set_gate(Gate_Number : uint32; Base : uint32; Limit : uint32; Access : uint8; Granularity : uint8);
- - - - - -
procedure flush;
- - - - - -
procedure reload;
-

Types

- - - - - -
PGDT_Entry = ˆTGDT_Entry;
-

Variables

- - - - - -
gdt_entries: array[0..1023] of TGDT_Entry;
- - - - - -
gdt_pointer: TGDT_Pointer;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: gdt + + + + + + + + +
+

Unit gdt

+ +

Description

+

+Global Descriptor Table - Data Structures & Interface. + +

+

Uses

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + + + + + +
NameDescription
Packed Record TGDT_Entry 
Packed Record TGDT_Pointer 
+

Functions and Procedures

+ + + + + + + + + + + + + +
procedure init();
procedure set_gate(Gate_Number : uint32; Base : uint32; Limit : uint32; Access : uint8; Granularity : uint8);
procedure flush;
procedure reload;
+

Types

+ + + + +
PGDT_Entry = ˆTGDT_Entry;
+

Variables

+ + + + + + + +
gdt_entries: array[0..1023] of TGDT_Entry;
gdt_pointer: TGDT_Pointer;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init();
+ + + + + +
procedure set_gate(Gate_Number : uint32; Base : uint32; Limit : uint32; Access : uint8; Granularity : uint8);
+ + + + + +
procedure flush;
+ + + + + +
procedure reload;
+

Types

+ + + + + +
PGDT_Entry = ˆTGDT_Entry;
+

Variables

+ + + + + +
gdt_entries: array[0..1023] of TGDT_Entry;
+ + + + + +
gdt_pointer: TGDT_Pointer;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/icmp.TARPHandler.html b/doc/icmp.TARPHandler.html index 5e5d1959..52507533 100644 --- a/doc/icmp.TARPHandler.html +++ b/doc/icmp.TARPHandler.html @@ -1,77 +1,77 @@ - - - -Asuro: icmp: Record TARPHandler - - - - - - - - -
-

Record TARPHandler

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TARPHandler = record

-

Description

Overview

-

Fields

- - - - - - - - - - -
Active: Boolean;
OnReply: TARPReplyCallback;
OnError: TARPErrorCallback;
-

Description

-

Fields

- - - - - -
Active: Boolean;
- - - - - -
OnReply: TARPReplyCallback;
- - - - - -
OnError: TARPErrorCallback;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: icmp: Record TARPHandler + + + + + + + + +
+

Record TARPHandler

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TARPHandler = record

+

Description

Overview

+

Fields

+ + + + + + + + + + +
Active: Boolean;
OnReply: TARPReplyCallback;
OnError: TARPErrorCallback;
+

Description

+

Fields

+ + + + + +
Active: Boolean;
+ + + + + +
OnReply: TARPReplyCallback;
+ + + + + +
OnError: TARPErrorCallback;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/icmp.html b/doc/icmp.html index 0e5190ad..92dd1393 100644 --- a/doc/icmp.html +++ b/doc/icmp.html @@ -1,146 +1,146 @@ - - - -Asuro: icmp - - - - - - - - -
-

Unit icmp

- -

Description

-

-Driver->Net->L4->ICMP - Internet Control Message Protocol Driver, - -

-

Uses

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - -
NameDescription
Record TARPHandler 
-

Functions and Procedures

- - - - - - - - - - - - - -
procedure register;
procedure sendICMPRequest(ip : puint8; Sequence : uint16; TTL : uint8; OnRep : TARPReplyCallback; OnErr : TARPErrorCallback);
procedure ping_err(hdr : PICMPHeader; Reason : TARPErrorCode);
procedure ping_rep(hdr : PICMPHeader);
-

Types

- - - - - - - - - - -
TARPErrorCode = (...);
TARPReplyCallback = procedure(hdr : PICMPHeader);
TARPErrorCallback = procedure(hdr : PICMPHeader; Reason : TARPErrorCode);
-

Description

-

Functions and Procedures

- - - - - -
procedure register;
- - - - - -
procedure sendICMPRequest(ip : puint8; Sequence : uint16; TTL : uint8; OnRep : TARPReplyCallback; OnErr : TARPErrorCallback);
- - - - - -
procedure ping_err(hdr : PICMPHeader; Reason : TARPErrorCode);
- - - - - -
procedure ping_rep(hdr : PICMPHeader);
-

Types

- - - - - -
TARPErrorCode = (...);
Values
-
    -
  • -aecFailedToResolveHost
  • -
  • -aecNoRouteToHost
  • -
  • -aecTimeout
  • -
  • -aecTTLExpired
  • -
-
- - - - - -
TARPReplyCallback = procedure(hdr : PICMPHeader);
- - - - - -
TARPErrorCallback = procedure(hdr : PICMPHeader; Reason : TARPErrorCode);
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: icmp + + + + + + + + +
+

Unit icmp

+ +

Description

+

+Driver->Net->L4->ICMP - Internet Control Message Protocol Driver, + +

+

Uses

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + +
NameDescription
Record TARPHandler 
+

Functions and Procedures

+ + + + + + + + + + + + + +
procedure register;
procedure sendICMPRequest(ip : puint8; Sequence : uint16; TTL : uint8; OnRep : TARPReplyCallback; OnErr : TARPErrorCallback);
procedure ping_err(hdr : PICMPHeader; Reason : TARPErrorCode);
procedure ping_rep(hdr : PICMPHeader);
+

Types

+ + + + + + + + + + +
TARPErrorCode = (...);
TARPReplyCallback = procedure(hdr : PICMPHeader);
TARPErrorCallback = procedure(hdr : PICMPHeader; Reason : TARPErrorCode);
+

Description

+

Functions and Procedures

+ + + + + +
procedure register;
+ + + + + +
procedure sendICMPRequest(ip : puint8; Sequence : uint16; TTL : uint8; OnRep : TARPReplyCallback; OnErr : TARPErrorCallback);
+ + + + + +
procedure ping_err(hdr : PICMPHeader; Reason : TARPErrorCode);
+ + + + + +
procedure ping_rep(hdr : PICMPHeader);
+

Types

+ + + + + +
TARPErrorCode = (...);
Values
+
    +
  • +aecFailedToResolveHost
  • +
  • +aecNoRouteToHost
  • +
  • +aecTimeout
  • +
  • +aecTTLExpired
  • +
+
+ + + + + +
TARPReplyCallback = procedure(hdr : PICMPHeader);
+ + + + + +
TARPErrorCallback = procedure(hdr : PICMPHeader; Reason : TARPErrorCode);
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/idt.TIDT_Entry.html b/doc/idt.TIDT_Entry.html index 255113b3..e6613ebb 100644 --- a/doc/idt.TIDT_Entry.html +++ b/doc/idt.TIDT_Entry.html @@ -1,97 +1,97 @@ - - - -Asuro: idt: Packed Record TIDT_Entry - - - - - - - - -
-

Packed Record TIDT_Entry

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TIDT_Entry = packed record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - - - - -
base_low: uint16;
selector: uint16;
always_0: uint8;
flags: uint8;
base_high: uint16;
-

Description

-

Fields

- - - - - -
base_low: uint16;
- - - - - -
selector: uint16;
- - - - - -
always_0: uint8;
- - - - - -
flags: uint8;
- - - - - -
base_high: uint16;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: idt: Packed Record TIDT_Entry + + + + + + + + +
+

Packed Record TIDT_Entry

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TIDT_Entry = packed record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + + + + +
base_low: uint16;
selector: uint16;
always_0: uint8;
flags: uint8;
base_high: uint16;
+

Description

+

Fields

+ + + + + +
base_low: uint16;
+ + + + + +
selector: uint16;
+ + + + + +
always_0: uint8;
+ + + + + +
flags: uint8;
+ + + + + +
base_high: uint16;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/idt.TIDT_Pointer.html b/doc/idt.TIDT_Pointer.html index d069053f..26a8157b 100644 --- a/doc/idt.TIDT_Pointer.html +++ b/doc/idt.TIDT_Pointer.html @@ -1,67 +1,67 @@ - - - -Asuro: idt: Packed Record TIDT_Pointer - - - - - - - - -
-

Packed Record TIDT_Pointer

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TIDT_Pointer = packed record

-

Description

Overview

-

Fields

- - - - - - - -
limit: uint16;
base: uint32;
-

Description

-

Fields

- - - - - -
limit: uint16;
- - - - - -
base: uint32;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: idt: Packed Record TIDT_Pointer + + + + + + + + +
+

Packed Record TIDT_Pointer

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TIDT_Pointer = packed record

+

Description

Overview

+

Fields

+ + + + + + + +
limit: uint16;
base: uint32;
+

Description

+

Fields

+ + + + + +
limit: uint16;
+ + + + + +
base: uint32;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/idt.html b/doc/idt.html index 88d9b274..640c14f5 100644 --- a/doc/idt.html +++ b/doc/idt.html @@ -1,177 +1,177 @@ - - - -Asuro: idt - - - - - - - - -
-

Unit idt

- -

Description

-

-Interrupt Descriptor Table - Structures & Interface. - -

-

Uses

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - - - - - -
NameDescription
Packed Record TIDT_Entry 
Packed Record TIDT_Pointer 
-

Functions and Procedures

- - - - - - - -
procedure init();
procedure set_gate(Number : uint8; Base : uint32; Selector : uint16; Flags : uint8);
-

Types

- - - - - - - -
PIDT_Entry = ˆTIDT_Entry;
PIDT_Pointer = ˆTIDT_Pointer;
-

Constants

- - - - - - - - - - - - - -
ISR_RING_0 = $8E;
ISR_RING_1 = $AE;
ISR_RING_2 = $CE;
ISR_RING_3 = $EE;
-

Variables

- - - - - - - -
IDT_Entries: Array [0..255] of TIDT_Entry;
IDT_Pointer: TIDT_Pointer;
-

Description

-

Functions and Procedures

- - - - - -
procedure init();
- - - - - -
procedure set_gate(Number : uint8; Base : uint32; Selector : uint16; Flags : uint8);
-

Types

- - - - - -
PIDT_Entry = ˆTIDT_Entry;
- - - - - -
PIDT_Pointer = ˆTIDT_Pointer;
-

Constants

- - - - - -
ISR_RING_0 = $8E;
- - - - - -
ISR_RING_1 = $AE;
- - - - - -
ISR_RING_2 = $CE;
- - - - - -
ISR_RING_3 = $EE;
-

Variables

- - - - - -
IDT_Entries: Array [0..255] of TIDT_Entry;
- - - - - -
IDT_Pointer: TIDT_Pointer;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: idt + + + + + + + + +
+

Unit idt

+ +

Description

+

+Interrupt Descriptor Table - Structures & Interface. + +

+

Uses

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + + + + + +
NameDescription
Packed Record TIDT_Entry 
Packed Record TIDT_Pointer 
+

Functions and Procedures

+ + + + + + + +
procedure init();
procedure set_gate(Number : uint8; Base : uint32; Selector : uint16; Flags : uint8);
+

Types

+ + + + + + + +
PIDT_Entry = ˆTIDT_Entry;
PIDT_Pointer = ˆTIDT_Pointer;
+

Constants

+ + + + + + + + + + + + + +
ISR_RING_0 = $8E;
ISR_RING_1 = $AE;
ISR_RING_2 = $CE;
ISR_RING_3 = $EE;
+

Variables

+ + + + + + + +
IDT_Entries: Array [0..255] of TIDT_Entry;
IDT_Pointer: TIDT_Pointer;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init();
+ + + + + +
procedure set_gate(Number : uint8; Base : uint32; Selector : uint16; Flags : uint8);
+

Types

+ + + + + +
PIDT_Entry = ˆTIDT_Entry;
+ + + + + +
PIDT_Pointer = ˆTIDT_Pointer;
+

Constants

+ + + + + +
ISR_RING_0 = $8E;
+ + + + + +
ISR_RING_1 = $AE;
+ + + + + +
ISR_RING_2 = $CE;
+ + + + + +
ISR_RING_3 = $EE;
+

Variables

+ + + + + +
IDT_Entries: Array [0..255] of TIDT_Entry;
+ + + + + +
IDT_Pointer: TIDT_Pointer;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/index.html b/doc/index.html index 2d95d7c4..0e6160c7 100644 --- a/doc/index.html +++ b/doc/index.html @@ -1,370 +1,370 @@ - - - -Asuro: All Units - - - - - - - - -
-

All Units

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescription
ACE

Fault->ACE - Alignment Check Exception.

arp

Driver->Net->L3->ARP - Address Resolution Protocol Driver.

asuro

Include->Asuro - Auto-Generated Version & Compilation Information - -

bios_data_area

Include->BIOS_Data_Area - Data Structures Controlled by the BIOS.

BPE

Fault->BPE - Break Point Exception.

BTSSE

Fault->BTSSE - Bad TSS Exception.

CFE

Fault->CFE - Coprocessor Fault Exception.

console

Console - Provides Screen/Window management & drawing.

contextswitcher

ContextSwitcher - Switch Process Contexts when preempted.

cpu

CPU - CPU Structures & Utility/Capabilities Functions.

crc

Include->CRC - CRC32 Implementation.

CSOE

Fault->CSOE - Coprocessor Seg Overruun Exception.

DBGE

Fault->DBGE - Debug Exception.

DBZ

Fault->DBZ - Divide By Zero Exception.

DFE

Fault->DFE - Double Fault Exception.

drivermanagement

DriverManagement - Driver Initialization & Management Interface.

drivertypes

Driver->Include->DriverTypes - Structs & Data Shared Across Drivers.

E1000

Driver->NetDev->E1000 - Intel E1000/I217/82577LM Network Card Driver.

EHCI

Driver->Bus->EHCI - Enhanced Host Controller Interface Driver.

eth2

Driver->Net->L2->Eth2 - Ethernet Driver.

faults

Faults - Fault Registration & Detouring.

fonts

Include->Fonts - Standard Fonts & Font Masks.

gdt

Global Descriptor Table - Data Structures & Interface.

GPF

Fault->GPF - General Protection Fault.

icmp

Driver->Net->L4->ICMP - Internet Control Message Protocol Driver, - -

IDOE

Fault->IDO - Into Detected Overflow Exception.

idt

Interrupt Descriptor Table - Structures & Interface.

IOPE

Fault->IOPE - Invalid OPCode Exception.

ipv4

Driver->Net->L3->IPv4 - Internet Protocol Version 4 Driver.

irq

Interrupt Request Line - Initialization & Remapping.

isr

ISR Driver - Initialization (stub).

isrmanager

ISR->ISRManager - Interrupt Service Routine Registration, Dispatch & Management.

isr_types

ISR->ISR_Types - Interrupt Service Routine Structures.

kernel

Kernel Main - Main Kernel Entry Point.

keyboard

Driver->HID->Keyboard - Keyboard Driver.

lists

Include->Lists - Linked List Data Structures & Helpers.

lmemorymanager

LMemoryManager - Logical Memory Management - -

MCE

Fault->MCE - Machine Check Exception.

memview

Prog->MemView - Live Memory View.

mouse

Driver->HID->Mouse - Mouse Driver.

multiboot

Include->Multiboot - Multiboot Structures & Access.

NCE

Fault->NCE - No Coprocessor Exception.

net

Driver->Net->L1->Net - Network Card<->Driver Interface.

netlog

Prog->NetLog - Network Driver Logs.

nettypes

Driver->Net->NetTypes - Structures & Types Shared Across Network Drivers.

netutils

Driver->Net->NetUtils - Helper Functions For Network Drivers.

NMIE

Fault->NMIE - Non-Maskable Interrupt Exception.

OHCI

Driver->Bus->OHCI - Open Host Controller Interface Driver.

OOBE

Fault->OOBE - Out Of Bounds Exception.

PCI

Driver->Bus->PCI - Peripheral Component Interconnect Driver.

PF

Fault->PF - Page Fault.

pmemorymanager

PMemoryManager - Physical Memory Management - -

processloader

ProcessLoader - Process Initialization & Tasking (stub).

PS2_KEYBOARD_ISR

Driver->HID->PS2_KEYBAORD_ISR - PS2 ISR Hook & Driver.

RTC

Driver->Timers->RTC - Real Time Clock Driver.

scheduler

Scheduler - Schedules Context Switches.

serial

Driver->Interface->Serial - Serial Driver.

SFE

Fault->SFE - Stack Fault Exception.

shell

Prog->Shell - Main Desktop UI.

SNPE

Fault->SNPE - Segment Not Present Exception.

splash

Prog->Splash - Asuro Splash Screen.

strings

Include->Strings - String Manipulation.

system

Include->System - Base Types & Structures.

tcp

Driver->Net->L4->TCP - Transmission Control Protocol Driver.

terminal

Prog->Terminal - Interactive Command Line Environment.

testdriver

Driver->Exp->TestDriver - Dummy Driver For Testing.

themer

Prog->Themer - Live Desktop Color Picker.

TMR_0_ISR

Driver->Timer->TMR_0_ISR - 1024hz Timer Driver.

TMR_1_ISR

Driver->Timer->TMR_1_ISR - 1024/s Timer Driver.

tracer

Tracer - Trace stack for debugging method calls.

tss

TSS - Task State Segment (stub).

types

Include->Types - Dummy Unit For VM Compatability.

udp

Driver->Net->L4->UDP - User Datagram Protocol Driver.

UHCI

Driver->Bus->UHCI - Universal Host Controller Interface Driver.

UIE

Fault->UIE - Unknown Interrupt Exception.

USB

Driver->Bus->USB - Universal Serial Bus Driver/Interface.

util

Include->Util - Data Manipulation Utlities.

vmemorymanager

VMemoryManager - Virtual Memory Management.

vmlog

Prog->VMLog - Virtual Machine Event Log.

vmstate

Prog->VMState - Live MINJ Virtual Machine State Information.

XHCI

Driver->Bus->XHCI - eXtensible Host Controller Interface Driver.

-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: All Units + + + + + + + + +
+

All Units

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescription
ACE

Fault->ACE - Alignment Check Exception.

arp

Driver->Net->L3->ARP - Address Resolution Protocol Driver.

asuro

Include->Asuro - Auto-Generated Version & Compilation Information + +

bios_data_area

Include->BIOS_Data_Area - Data Structures Controlled by the BIOS.

BPE

Fault->BPE - Break Point Exception.

BTSSE

Fault->BTSSE - Bad TSS Exception.

CFE

Fault->CFE - Coprocessor Fault Exception.

console

Console - Provides Screen/Window management & drawing.

contextswitcher

ContextSwitcher - Switch Process Contexts when preempted.

cpu

CPU - CPU Structures & Utility/Capabilities Functions.

crc

Include->CRC - CRC32 Implementation.

CSOE

Fault->CSOE - Coprocessor Seg Overruun Exception.

DBGE

Fault->DBGE - Debug Exception.

DBZ

Fault->DBZ - Divide By Zero Exception.

DFE

Fault->DFE - Double Fault Exception.

drivermanagement

DriverManagement - Driver Initialization & Management Interface.

drivertypes

Driver->Include->DriverTypes - Structs & Data Shared Across Drivers.

E1000

Driver->NetDev->E1000 - Intel E1000/I217/82577LM Network Card Driver.

EHCI

Driver->Bus->EHCI - Enhanced Host Controller Interface Driver.

eth2

Driver->Net->L2->Eth2 - Ethernet Driver.

faults

Faults - Fault Registration & Detouring.

fonts

Include->Fonts - Standard Fonts & Font Masks.

gdt

Global Descriptor Table - Data Structures & Interface.

GPF

Fault->GPF - General Protection Fault.

icmp

Driver->Net->L4->ICMP - Internet Control Message Protocol Driver, + +

IDOE

Fault->IDO - Into Detected Overflow Exception.

idt

Interrupt Descriptor Table - Structures & Interface.

IOPE

Fault->IOPE - Invalid OPCode Exception.

ipv4

Driver->Net->L3->IPv4 - Internet Protocol Version 4 Driver.

irq

Interrupt Request Line - Initialization & Remapping.

isr

ISR Driver - Initialization (stub).

isrmanager

ISR->ISRManager - Interrupt Service Routine Registration, Dispatch & Management.

isr_types

ISR->ISR_Types - Interrupt Service Routine Structures.

kernel

Kernel Main - Main Kernel Entry Point.

keyboard

Driver->HID->Keyboard - Keyboard Driver.

lists

Include->Lists - Linked List Data Structures & Helpers.

lmemorymanager

LMemoryManager - Logical Memory Management + +

MCE

Fault->MCE - Machine Check Exception.

memview

Prog->MemView - Live Memory View.

mouse

Driver->HID->Mouse - Mouse Driver.

multiboot

Include->Multiboot - Multiboot Structures & Access.

NCE

Fault->NCE - No Coprocessor Exception.

net

Driver->Net->L1->Net - Network Card<->Driver Interface.

netlog

Prog->NetLog - Network Driver Logs.

nettypes

Driver->Net->NetTypes - Structures & Types Shared Across Network Drivers.

netutils

Driver->Net->NetUtils - Helper Functions For Network Drivers.

NMIE

Fault->NMIE - Non-Maskable Interrupt Exception.

OHCI

Driver->Bus->OHCI - Open Host Controller Interface Driver.

OOBE

Fault->OOBE - Out Of Bounds Exception.

PCI

Driver->Bus->PCI - Peripheral Component Interconnect Driver.

PF

Fault->PF - Page Fault.

pmemorymanager

PMemoryManager - Physical Memory Management + +

processloader

ProcessLoader - Process Initialization & Tasking (stub).

PS2_KEYBOARD_ISR

Driver->HID->PS2_KEYBAORD_ISR - PS2 ISR Hook & Driver.

RTC

Driver->Timers->RTC - Real Time Clock Driver.

scheduler

Scheduler - Schedules Context Switches.

serial

Driver->Interface->Serial - Serial Driver.

SFE

Fault->SFE - Stack Fault Exception.

shell

Prog->Shell - Main Desktop UI.

SNPE

Fault->SNPE - Segment Not Present Exception.

splash

Prog->Splash - Asuro Splash Screen.

strings

Include->Strings - String Manipulation.

system

Include->System - Base Types & Structures.

tcp

Driver->Net->L4->TCP - Transmission Control Protocol Driver.

terminal

Prog->Terminal - Interactive Command Line Environment.

testdriver

Driver->Exp->TestDriver - Dummy Driver For Testing.

themer

Prog->Themer - Live Desktop Color Picker.

TMR_0_ISR

Driver->Timer->TMR_0_ISR - 1024hz Timer Driver.

TMR_1_ISR

Driver->Timer->TMR_1_ISR - 1024/s Timer Driver.

tracer

Tracer - Trace stack for debugging method calls.

tss

TSS - Task State Segment (stub).

types

Include->Types - Dummy Unit For VM Compatability.

udp

Driver->Net->L4->UDP - User Datagram Protocol Driver.

UHCI

Driver->Bus->UHCI - Universal Host Controller Interface Driver.

UIE

Fault->UIE - Unknown Interrupt Exception.

USB

Driver->Bus->USB - Universal Serial Bus Driver/Interface.

util

Include->Util - Data Manipulation Utlities.

vmemorymanager

VMemoryManager - Virtual Memory Management.

vmlog

Prog->VMLog - Virtual Machine Event Log.

vmstate

Prog->VMState - Live MINJ Virtual Machine State Information.

XHCI

Driver->Bus->XHCI - eXtensible Host Controller Interface Driver.

+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/ipv4.html b/doc/ipv4.html index 78b0271c..c8d0e159 100644 --- a/doc/ipv4.html +++ b/doc/ipv4.html @@ -1,90 +1,90 @@ - - - -Asuro: ipv4 - - - - - - - - -
-

Unit ipv4

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Driver->Net->L3->IPv4 - Internet Protocol Version 4 Driver. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - - - - - - - - - - -
procedure send(p_data : void; p_len : uint16; p_context : PPacketContext);
procedure registerProtocol(Protocol_ID : uint8; recv_callback : TRecvCallback);
function getIPv4Config : PIPv4Configuration;
procedure register;
-

Description

-

Functions and Procedures

- - - - - -
procedure send(p_data : void; p_len : uint16; p_context : PPacketContext);
- - - - - -
procedure registerProtocol(Protocol_ID : uint8; recv_callback : TRecvCallback);
- - - - - -
function getIPv4Config : PIPv4Configuration;
- - - - - -
procedure register;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: ipv4 + + + + + + + + +
+

Unit ipv4

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Driver->Net->L3->IPv4 - Internet Protocol Version 4 Driver. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + + + + + + + + + + +
procedure send(p_data : void; p_len : uint16; p_context : PPacketContext);
procedure registerProtocol(Protocol_ID : uint8; recv_callback : TRecvCallback);
function getIPv4Config : PIPv4Configuration;
procedure register;
+

Description

+

Functions and Procedures

+ + + + + +
procedure send(p_data : void; p_len : uint16; p_context : PPacketContext);
+ + + + + +
procedure registerProtocol(Protocol_ID : uint8; recv_callback : TRecvCallback);
+ + + + + +
function getIPv4Config : PIPv4Configuration;
+ + + + + +
procedure register;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/irq.html b/doc/irq.html index 6d483469..4137b0ea 100644 --- a/doc/irq.html +++ b/doc/irq.html @@ -1,60 +1,60 @@ - - - -Asuro: irq - - - - - - - - -
-

Unit irq

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Interrupt Request Line - Initialization & Remapping. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure init();
-

Description

-

Functions and Procedures

- - - - - -
procedure init();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: irq + + + + + + + + +
+

Unit irq

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Interrupt Request Line - Initialization & Remapping. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure init();
+

Description

+

Functions and Procedures

+ + + + + +
procedure init();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/isr.html b/doc/isr.html index 4bf49e54..4708fe7e 100644 --- a/doc/isr.html +++ b/doc/isr.html @@ -1,60 +1,60 @@ - - - -Asuro: isr - - - - - - - - -
-

Unit isr

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-ISR Driver - Initialization (stub). - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure init();
-

Description

-

Functions and Procedures

- - - - - -
procedure init();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: isr + + + + + + + + +
+

Unit isr

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+ISR Driver - Initialization (stub). + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure init();
+

Description

+

Functions and Procedures

+ + + + + +
procedure init();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/isr_types.TRegisters.html b/doc/isr_types.TRegisters.html index d3c2683f..e4b3fa95 100644 --- a/doc/isr_types.TRegisters.html +++ b/doc/isr_types.TRegisters.html @@ -1,187 +1,187 @@ - - - -Asuro: isr_types: Record TRegisters - - - - - - - - -
-

Record TRegisters

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TRegisters = record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
edi: uint32;
esi: uint32;
ebp: uint32;
esp: uint32;
ebx: uint32;
edx: uint32;
ecx: uint32;
eax: uint32;
ErrorCode: uint32;
eip: uint32;
cs: uint32;
eflags: uint32;
UserESP: uint32;
ss: uint32;
-

Description

-

Fields

- - - - - -
edi: uint32;
- - - - - -
esi: uint32;
- - - - - -
ebp: uint32;
- - - - - -
esp: uint32;
- - - - - -
ebx: uint32;
- - - - - -
edx: uint32;
- - - - - -
ecx: uint32;
- - - - - -
eax: uint32;
- - - - - -
ErrorCode: uint32;
- - - - - -
eip: uint32;
- - - - - -
cs: uint32;
- - - - - -
eflags: uint32;
- - - - - -
UserESP: uint32;
- - - - - -
ss: uint32;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: isr_types: Record TRegisters + + + + + + + + +
+

Record TRegisters

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TRegisters = record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
edi: uint32;
esi: uint32;
ebp: uint32;
esp: uint32;
ebx: uint32;
edx: uint32;
ecx: uint32;
eax: uint32;
ErrorCode: uint32;
eip: uint32;
cs: uint32;
eflags: uint32;
UserESP: uint32;
ss: uint32;
+

Description

+

Fields

+ + + + + +
edi: uint32;
+ + + + + +
esi: uint32;
+ + + + + +
ebp: uint32;
+ + + + + +
esp: uint32;
+ + + + + +
ebx: uint32;
+ + + + + +
edx: uint32;
+ + + + + +
ecx: uint32;
+ + + + + +
eax: uint32;
+ + + + + +
ErrorCode: uint32;
+ + + + + +
eip: uint32;
+ + + + + +
cs: uint32;
+ + + + + +
eflags: uint32;
+ + + + + +
UserESP: uint32;
+ + + + + +
ss: uint32;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/isr_types.html b/doc/isr_types.html index 1b0918c2..69ee019c 100644 --- a/doc/isr_types.html +++ b/doc/isr_types.html @@ -1,104 +1,104 @@ - - - -Asuro: isr_types - - - - - - - - -
-

Unit isr_types

- -

Description

-

-ISR->ISR_Types - Interrupt Service Routine Structures. - -

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - -
NameDescription
Record TRegisters 
-

Types

- - - - - - - - - - -
PRegisters = ˆTRegisters;
pp_hook_method = procedure(data : void);
pp_void = pp_hook_method;
-

Constants

- - - - -
MAX_HOOKS = 16;
-

Description

-

Types

- - - - - -
PRegisters = ˆTRegisters;
- - - - - -
pp_hook_method = procedure(data : void);
- - - - - -
pp_void = pp_hook_method;
-

Constants

- - - - - -
MAX_HOOKS = 16;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: isr_types + + + + + + + + +
+

Unit isr_types

+ +

Description

+

+ISR->ISR_Types - Interrupt Service Routine Structures. + +

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + +
NameDescription
Record TRegisters 
+

Types

+ + + + + + + + + + +
PRegisters = ˆTRegisters;
pp_hook_method = procedure(data : void);
pp_void = pp_hook_method;
+

Constants

+ + + + +
MAX_HOOKS = 16;
+

Description

+

Types

+ + + + + +
PRegisters = ˆTRegisters;
+ + + + + +
pp_hook_method = procedure(data : void);
+ + + + + +
pp_void = pp_hook_method;
+

Constants

+ + + + + +
MAX_HOOKS = 16;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/isrmanager.html b/doc/isrmanager.html index 9ccb6523..c5ef2e20 100644 --- a/doc/isrmanager.html +++ b/doc/isrmanager.html @@ -1,104 +1,104 @@ - - - -Asuro: isrmanager - - - - - - - - -
-

Unit isrmanager

-
-
Classes, Interfaces, Objects and Records
Constants
Variables
-

Description

-

-ISR->ISRManager - Interrupt Service Routine Registration, Dispatch & Management. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - - - - -
procedure init;
procedure registerISR(INT_N : uint8; callback : TISRHook);
-

Types

- - - - - - - - - - -
TISRHook = procedure();
TISRNHookArray = Array[0..MAX_HOOKS] of TISRHook;
TISRHookArray = Array[0..255] of TISRNHookArray;
-

Description

-

Functions and Procedures

- - - - - -
procedure init;
- - - - - -
procedure registerISR(INT_N : uint8; callback : TISRHook);
-

Types

- - - - - -
TISRHook = procedure();
- - - - - -
TISRNHookArray = Array[0..MAX_HOOKS] of TISRHook;
- - - - - -
TISRHookArray = Array[0..255] of TISRNHookArray;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: isrmanager + + + + + + + + +
+

Unit isrmanager

+
+
Classes, Interfaces, Objects and Records
Constants
Variables
+

Description

+

+ISR->ISRManager - Interrupt Service Routine Registration, Dispatch & Management. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + + + + +
procedure init;
procedure registerISR(INT_N : uint8; callback : TISRHook);
+

Types

+ + + + + + + + + + +
TISRHook = procedure();
TISRNHookArray = Array[0..MAX_HOOKS] of TISRHook;
TISRHookArray = Array[0..255] of TISRNHookArray;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init;
+ + + + + +
procedure registerISR(INT_N : uint8; callback : TISRHook);
+

Types

+ + + + + +
TISRHook = procedure();
+ + + + + +
TISRNHookArray = Array[0..MAX_HOOKS] of TISRHook;
+ + + + + +
TISRHookArray = Array[0..255] of TISRNHookArray;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/kernel.html b/doc/kernel.html index 8e853106..ea77973d 100644 --- a/doc/kernel.html +++ b/doc/kernel.html @@ -1,61 +1,61 @@ - - - -Asuro: kernel - - - - - - - - -
-

Unit kernel

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Kernel Main - Main Kernel Entry Point. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall;
-

Description

-

Functions and Procedures

- - - - - -
procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall;
-

Authors

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: kernel + + + + + + + + +
+

Unit kernel

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Kernel Main - Main Kernel Entry Point. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall;
+

Description

+

Functions and Procedures

+ + + + + +
procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall;
+

Authors

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/keyboard.TKeyInfo.html b/doc/keyboard.TKeyInfo.html index 8af0ab17..e4222396 100644 --- a/doc/keyboard.TKeyInfo.html +++ b/doc/keyboard.TKeyInfo.html @@ -1,99 +1,99 @@ - - - -Asuro: keyboard: Packed Record TKeyInfo - - - - - - - - -
-

Packed Record TKeyInfo

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TKeyInfo = packed record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - - - - -
key_code: byte;
is_down_code: boolean;
SHIFT_DOWN: boolean;
CTRL_DOWN: boolean;
ALT_DOWN: boolean;
-

Description

-

Fields

- - - - - -
key_code: byte;
- - - - - -
is_down_code: boolean;
- - - - - -
SHIFT_DOWN: boolean;
-

-true when pressing down, false when releasing

-
- - - - - -
CTRL_DOWN: boolean;
- - - - - -
ALT_DOWN: boolean;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: keyboard: Packed Record TKeyInfo + + + + + + + + +
+

Packed Record TKeyInfo

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TKeyInfo = packed record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + + + + +
key_code: byte;
is_down_code: boolean;
SHIFT_DOWN: boolean;
CTRL_DOWN: boolean;
ALT_DOWN: boolean;
+

Description

+

Fields

+ + + + + +
key_code: byte;
+ + + + + +
is_down_code: boolean;
+ + + + + +
SHIFT_DOWN: boolean;
+

+true when pressing down, false when releasing

+
+ + + + + +
CTRL_DOWN: boolean;
+ + + + + +
ALT_DOWN: boolean;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/keyboard.html b/doc/keyboard.html index 4777d694..daf89bf5 100644 --- a/doc/keyboard.html +++ b/doc/keyboard.html @@ -1,179 +1,179 @@ - - - -Asuro: keyboard - - - - - - - - -
-

Unit keyboard

- -

Description

-

-Driver->HID->Keyboard - Keyboard Driver. - -

-

Uses

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - -
NameDescription
Packed Record TKeyInfo 
-

Functions and Procedures

- - - - - - - - - - -
procedure init(keyboard_layout : array of TKeyInfo);
procedure hook(proc : pp_hook_method);
procedure lang_USA();
-

Types

- - - - - - - -
PKeyInfo = ˆTKeyInfo;
pp_hook_method = procedure(key_info : TKeyInfo);
-

Variables

- - - - - - - - - - - - - - - - - - - -
key_matrix: array [1..256] of TKeyInfo;
key_matrix_shift: array [1..256] of TKeyInfo;
captin_hook: pp_hook_method = nil;
is_shift: boolean = false;
is_ctrl: boolean = false;
is_alt: boolean = false;
-

Description

-

Functions and Procedures

- - - - - -
procedure init(keyboard_layout : array of TKeyInfo);
- - - - - -
procedure hook(proc : pp_hook_method);
- - - - - -
procedure lang_USA();
-

Types

- - - - - -
PKeyInfo = ˆTKeyInfo;
- - - - - -
pp_hook_method = procedure(key_info : TKeyInfo);
-

Variables

- - - - - -
key_matrix: array [1..256] of TKeyInfo;
- - - - - -
key_matrix_shift: array [1..256] of TKeyInfo;
- - - - - -
captin_hook: pp_hook_method = nil;
- - - - - -
is_shift: boolean = false;
- - - - - -
is_ctrl: boolean = false;
- - - - - -
is_alt: boolean = false;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: keyboard + + + + + + + + +
+

Unit keyboard

+ +

Description

+

+Driver->HID->Keyboard - Keyboard Driver. + +

+

Uses

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + +
NameDescription
Packed Record TKeyInfo 
+

Functions and Procedures

+ + + + + + + + + + +
procedure init(keyboard_layout : array of TKeyInfo);
procedure hook(proc : pp_hook_method);
procedure lang_USA();
+

Types

+ + + + + + + +
PKeyInfo = ˆTKeyInfo;
pp_hook_method = procedure(key_info : TKeyInfo);
+

Variables

+ + + + + + + + + + + + + + + + + + + +
key_matrix: array [1..256] of TKeyInfo;
key_matrix_shift: array [1..256] of TKeyInfo;
captin_hook: pp_hook_method = nil;
is_shift: boolean = false;
is_ctrl: boolean = false;
is_alt: boolean = false;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init(keyboard_layout : array of TKeyInfo);
+ + + + + +
procedure hook(proc : pp_hook_method);
+ + + + + +
procedure lang_USA();
+

Types

+ + + + + +
PKeyInfo = ˆTKeyInfo;
+ + + + + +
pp_hook_method = procedure(key_info : TKeyInfo);
+

Variables

+ + + + + +
key_matrix: array [1..256] of TKeyInfo;
+ + + + + +
key_matrix_shift: array [1..256] of TKeyInfo;
+ + + + + +
captin_hook: pp_hook_method = nil;
+ + + + + +
is_shift: boolean = false;
+ + + + + +
is_ctrl: boolean = false;
+ + + + + +
is_alt: boolean = false;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/legend.html b/doc/legend.html index f0592d94..102d371a 100644 --- a/doc/legend.html +++ b/doc/legend.html @@ -1,70 +1,70 @@ - - - -Asuro: Legend - - - - - - - - -
-

Legend

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MarkerVisibility
Strict PrivateStrict Private
PrivatePrivate
Strict ProtectedStrict Protected
ProtectedProtected
PublicPublic
PublishedPublished
AutomatedAutomated
ImplicitImplicit
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: Legend + + + + + + + + +
+

Legend

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MarkerVisibility
Strict PrivateStrict Private
PrivatePrivate
Strict ProtectedStrict Protected
ProtectedProtected
PublicPublic
PublishedPublished
AutomatedAutomated
ImplicitImplicit
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/lists.TLinkedList.html b/doc/lists.TLinkedList.html index 6d4dcba9..7280629c 100644 --- a/doc/lists.TLinkedList.html +++ b/doc/lists.TLinkedList.html @@ -1,77 +1,77 @@ - - - -Asuro: lists: Record TLinkedList - - - - - - - - -
-

Record TLinkedList

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TLinkedList = record

-

Description

Overview

-

Fields

- - - - - - - - - - -
Previous: PLinkedList;
Data: void;
Next: PLinkedList;
-

Description

-

Fields

- - - - - -
Previous: PLinkedList;
- - - - - -
Data: void;
- - - - - -
Next: PLinkedList;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: lists: Record TLinkedList + + + + + + + + +
+

Record TLinkedList

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TLinkedList = record

+

Description

Overview

+

Fields

+ + + + + + + + + + +
Previous: PLinkedList;
Data: void;
Next: PLinkedList;
+

Description

+

Fields

+ + + + + +
Previous: PLinkedList;
+ + + + + +
Data: void;
+ + + + + +
Next: PLinkedList;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/lists.TLinkedListBase.html b/doc/lists.TLinkedListBase.html index 87c401f4..457cb234 100644 --- a/doc/lists.TLinkedListBase.html +++ b/doc/lists.TLinkedListBase.html @@ -1,77 +1,77 @@ - - - -Asuro: lists: Record TLinkedListBase - - - - - - - - -
-

Record TLinkedListBase

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TLinkedListBase = record

-

Description

Overview

-

Fields

- - - - - - - - - - -
Count: uint32;
Head: PLinkedList;
ElementSize: uint32;
-

Description

-

Fields

- - - - - -
Count: uint32;
- - - - - -
Head: PLinkedList;
- - - - - -
ElementSize: uint32;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: lists: Record TLinkedListBase + + + + + + + + +
+

Record TLinkedListBase

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TLinkedListBase = record

+

Description

Overview

+

Fields

+ + + + + + + + + + +
Count: uint32;
Head: PLinkedList;
ElementSize: uint32;
+

Description

+

Fields

+ + + + + +
Count: uint32;
+ + + + + +
Head: PLinkedList;
+ + + + + +
ElementSize: uint32;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/lists.html b/doc/lists.html index 0f839e09..bf2fa863 100644 --- a/doc/lists.html +++ b/doc/lists.html @@ -1,255 +1,255 @@ - - - -Asuro: lists - - - - - - - - -
-

Unit lists

- -

Description

-

-Include->Lists - Linked List Data Structures & Helpers. - -

-

Uses

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - - - - - -
NameDescription
Record TLinkedList 
Record TLinkedListBase 
-

Functions and Procedures

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
procedure STRLL_Add(LinkedList : PLinkedListBase; str : pchar);
function STRLL_Get(LinkedList : PLinkedListBase; idx : uint32) : pchar;
function STRLL_New : PLinkedListBase;
function STRLL_Size(LinkedList : PLinkedListBase) : uint32;
procedure STRLL_Delete(LinkedList : PLinkedListBase; idx : uint32);
procedure STRLL_Free(LinkedList : PLinkedListBase);
procedure STRLL_Clear(LinkedList : PLinkedListBase);
function STRLL_FromString(str : pchar; delimter : char) : PLinkedListBase;
function LL_New(ElementSize : uint32) : PLinkedListBase;
function LL_Add(LinkedList : PLinkedListBase) : Void;
function LL_Delete(LinkedList : PLinkedListBase; idx : uint32) : boolean;
function LL_Size(LinkedList : PLinkedListBase) : uint32;
function LL_Insert(LinkedList : PLinkedListBase; idx : uint32) : Void;
function LL_Get(LinkedList : PLinkedListBase; idx : uint32) : Void;
procedure LL_Free(LinkedList : PLinkedListBase);
function LL_FromString(str : pchar; delimter : char) : PLinkedListBase;
-

Types

- - - - - - - -
PLinkedList = ˆTLinkedList;
PLinkedListBase = ˆTLinkedListBase;
-

Description

-

Functions and Procedures

- - - - - -
procedure STRLL_Add(LinkedList : PLinkedListBase; str : pchar);
-

-String Linked List

-
- - - - - -
function STRLL_Get(LinkedList : PLinkedListBase; idx : uint32) : pchar;
- - - - - -
function STRLL_New : PLinkedListBase;
- - - - - -
function STRLL_Size(LinkedList : PLinkedListBase) : uint32;
- - - - - -
procedure STRLL_Delete(LinkedList : PLinkedListBase; idx : uint32);
- - - - - -
procedure STRLL_Free(LinkedList : PLinkedListBase);
- - - - - -
procedure STRLL_Clear(LinkedList : PLinkedListBase);
- - - - - -
function STRLL_FromString(str : pchar; delimter : char) : PLinkedListBase;
- - - - - -
function LL_New(ElementSize : uint32) : PLinkedListBase;
-

-Managed Linked List

-
- - - - - -
function LL_Add(LinkedList : PLinkedListBase) : Void;
- - - - - -
function LL_Delete(LinkedList : PLinkedListBase; idx : uint32) : boolean;
- - - - - -
function LL_Size(LinkedList : PLinkedListBase) : uint32;
- - - - - -
function LL_Insert(LinkedList : PLinkedListBase; idx : uint32) : Void;
- - - - - -
function LL_Get(LinkedList : PLinkedListBase; idx : uint32) : Void;
- - - - - -
procedure LL_Free(LinkedList : PLinkedListBase);
- - - - - -
function LL_FromString(str : pchar; delimter : char) : PLinkedListBase;
-

Types

- - - - - -
PLinkedList = ˆTLinkedList;
-

-Managed Linked List

-
- - - - - -
PLinkedListBase = ˆTLinkedListBase;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: lists + + + + + + + + +
+

Unit lists

+ +

Description

+

+Include->Lists - Linked List Data Structures & Helpers. + +

+

Uses

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + + + + + +
NameDescription
Record TLinkedList 
Record TLinkedListBase 
+

Functions and Procedures

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
procedure STRLL_Add(LinkedList : PLinkedListBase; str : pchar);
function STRLL_Get(LinkedList : PLinkedListBase; idx : uint32) : pchar;
function STRLL_New : PLinkedListBase;
function STRLL_Size(LinkedList : PLinkedListBase) : uint32;
procedure STRLL_Delete(LinkedList : PLinkedListBase; idx : uint32);
procedure STRLL_Free(LinkedList : PLinkedListBase);
procedure STRLL_Clear(LinkedList : PLinkedListBase);
function STRLL_FromString(str : pchar; delimter : char) : PLinkedListBase;
function LL_New(ElementSize : uint32) : PLinkedListBase;
function LL_Add(LinkedList : PLinkedListBase) : Void;
function LL_Delete(LinkedList : PLinkedListBase; idx : uint32) : boolean;
function LL_Size(LinkedList : PLinkedListBase) : uint32;
function LL_Insert(LinkedList : PLinkedListBase; idx : uint32) : Void;
function LL_Get(LinkedList : PLinkedListBase; idx : uint32) : Void;
procedure LL_Free(LinkedList : PLinkedListBase);
function LL_FromString(str : pchar; delimter : char) : PLinkedListBase;
+

Types

+ + + + + + + +
PLinkedList = ˆTLinkedList;
PLinkedListBase = ˆTLinkedListBase;
+

Description

+

Functions and Procedures

+ + + + + +
procedure STRLL_Add(LinkedList : PLinkedListBase; str : pchar);
+

+String Linked List

+
+ + + + + +
function STRLL_Get(LinkedList : PLinkedListBase; idx : uint32) : pchar;
+ + + + + +
function STRLL_New : PLinkedListBase;
+ + + + + +
function STRLL_Size(LinkedList : PLinkedListBase) : uint32;
+ + + + + +
procedure STRLL_Delete(LinkedList : PLinkedListBase; idx : uint32);
+ + + + + +
procedure STRLL_Free(LinkedList : PLinkedListBase);
+ + + + + +
procedure STRLL_Clear(LinkedList : PLinkedListBase);
+ + + + + +
function STRLL_FromString(str : pchar; delimter : char) : PLinkedListBase;
+ + + + + +
function LL_New(ElementSize : uint32) : PLinkedListBase;
+

+Managed Linked List

+
+ + + + + +
function LL_Add(LinkedList : PLinkedListBase) : Void;
+ + + + + +
function LL_Delete(LinkedList : PLinkedListBase; idx : uint32) : boolean;
+ + + + + +
function LL_Size(LinkedList : PLinkedListBase) : uint32;
+ + + + + +
function LL_Insert(LinkedList : PLinkedListBase; idx : uint32) : Void;
+ + + + + +
function LL_Get(LinkedList : PLinkedListBase; idx : uint32) : Void;
+ + + + + +
procedure LL_Free(LinkedList : PLinkedListBase);
+ + + + + +
function LL_FromString(str : pchar; delimter : char) : PLinkedListBase;
+

Types

+ + + + + +
PLinkedList = ˆTLinkedList;
+

+Managed Linked List

+
+ + + + + +
PLinkedListBase = ˆTLinkedListBase;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/lmemorymanager.THeapPage.html b/doc/lmemorymanager.THeapPage.html index 3f93fdd4..cc05396d 100644 --- a/doc/lmemorymanager.THeapPage.html +++ b/doc/lmemorymanager.THeapPage.html @@ -1,77 +1,77 @@ - - - -Asuro: lmemorymanager: Packed Record THeapPage - - - - - - - - -
-

Packed Record THeapPage

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type THeapPage = packed record

-

Description

Overview

-

Fields

- - - - - - - - - - -
Next_Page: uint32;
Prev_Page: uint32;
Entries: Array[0..MAX_ENTRIES-1] of THeapEntry;
-

Description

-

Fields

- - - - - -
Next_Page: uint32;
- - - - - -
Prev_Page: uint32;
- - - - - -
Entries: Array[0..MAX_ENTRIES-1] of THeapEntry;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: lmemorymanager: Packed Record THeapPage + + + + + + + + +
+

Packed Record THeapPage

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type THeapPage = packed record

+

Description

Overview

+

Fields

+ + + + + + + + + + +
Next_Page: uint32;
Prev_Page: uint32;
Entries: Array[0..MAX_ENTRIES-1] of THeapEntry;
+

Description

+

Fields

+ + + + + +
Next_Page: uint32;
+ + + + + +
Prev_Page: uint32;
+ + + + + +
Entries: Array[0..MAX_ENTRIES-1] of THeapEntry;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/lmemorymanager.html b/doc/lmemorymanager.html index 13562ae3..9c943aff 100644 --- a/doc/lmemorymanager.html +++ b/doc/lmemorymanager.html @@ -1,70 +1,70 @@ - - - -Asuro: lmemorymanager - - - - - - - - - + + +
-

Unit lmemorymanager

- -

Description

-

-LMemoryManager - Logical Memory Management - -

-

Uses

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - -
NameDescription
Packed Record THeapPage 
-

Functions and Procedures

- - - - - - - - - - - - - -
procedure init;
function kalloc(size : uint32) : void;
function kpalloc(address : uint32) : void;
procedure kfree(area : void);
-

Types

- - + + + +Asuro: lmemorymanager + + + + + + + + +
+

Unit lmemorymanager

+ +

Description

+

+LMemoryManager - Logical Memory Management + +

+

Uses

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + +
NameDescription
Packed Record THeapPage 
+

Functions and Procedures

+ + + + + + + + + + + + + +
procedure init;
function kalloc(size : uint32) : void;
function kpalloc(address : uint32) : void;
procedure kfree(area : void);
+

Types

+ + - - - - -
THeapEntry = bitpacked record Present : Boolean; Root : Boolean; @@ -74,66 +74,66 @@ $(document).ready(function() { Resv3 : Boolean; Resv4 : Boolean; Resv5 : Boolean; - end;
PHeapPage = ˆTHeapPage;
-

Constants

- - - - - - - - - - -
ALLOC_SPACE = 8;
MAX_ENTRIES = $60000;
DATA_OFFSET = $100000;
-

Variables

- - - - - - - -
Root_Page: PHeapPage;
Search_Page: PHeapPage;
-

Description

-

Functions and Procedures

- - - - - -
procedure init;
- - - - - -
function kalloc(size : uint32) : void;
- - - - - -
function kpalloc(address : uint32) : void;
- - - - - -
procedure kfree(area : void);
-

Types

- - + end; + + + + +
PHeapPage = ˆTHeapPage;
+

Constants

+ + + + + + + + + + +
ALLOC_SPACE = 8;
MAX_ENTRIES = $60000;
DATA_OFFSET = $100000;
+

Variables

+ + + + + + + +
Root_Page: PHeapPage;
Search_Page: PHeapPage;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init;
+ + + + + +
function kalloc(size : uint32) : void;
+ + + + + +
function kpalloc(address : uint32) : void;
+ + + + + +
procedure kfree(area : void);
+

Types

+ + - - -
THeapEntry = bitpacked record Present : Boolean; Root : Boolean; @@ -143,61 +143,61 @@ $(document).ready(function() { Resv3 : Boolean; Resv4 : Boolean; Resv5 : Boolean; - end;
- - - - - -
PHeapPage = ˆTHeapPage;
-

Constants

- - - - - -
ALLOC_SPACE = 8;
- - - - - -
MAX_ENTRIES = $60000;
-

-64-Bit Allocations

-
- - - - - -
DATA_OFFSET = $100000;
-

Variables

- - - - - -
Root_Page: PHeapPage;
- - - - - -
Search_Page: PHeapPage;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ end;
+ + + + + +
PHeapPage = ˆTHeapPage;
+

Constants

+ + + + + +
ALLOC_SPACE = 8;
+ + + + + +
MAX_ENTRIES = $60000;
+

+64-Bit Allocations

+
+ + + + + +
DATA_OFFSET = $100000;
+

Variables

+ + + + + +
Root_Page: PHeapPage;
+ + + + + +
Search_Page: PHeapPage;
+

Author

+ +
Generated by PasDoc 0.15.0. + + diff --git a/doc/memview.html b/doc/memview.html index 052e2d29..316bef5e 100644 --- a/doc/memview.html +++ b/doc/memview.html @@ -1,60 +1,60 @@ - - - -Asuro: memview - - - - - - - - -
-

Unit memview

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Prog->MemView - Live Memory View. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure init();
-

Description

-

Functions and Procedures

- - - - - -
procedure init();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: memview + + + + + + + + +
+

Unit memview

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Prog->MemView - Live Memory View. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure init();
+

Description

+

Functions and Procedures

+ + + + + +
procedure init();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/mouse.TMousePacket.html b/doc/mouse.TMousePacket.html index 2b60716a..37f869e3 100644 --- a/doc/mouse.TMousePacket.html +++ b/doc/mouse.TMousePacket.html @@ -1,137 +1,137 @@ - - - -Asuro: mouse: Record TMousePacket - - - - - - - - -
-

Record TMousePacket

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TMousePacket = record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
x_movement: sint32;
y_movement: sint32;
y_overflow: boolean;
x_overflow: boolean;
y_sign: boolean;
x_sign: boolean;
MMB_Down: Boolean;
RMB_Down: Boolean;
LMB_Down: Boolean;
-

Description

-

Fields

- - - - - -
x_movement: sint32;
- - - - - -
y_movement: sint32;
- - - - - -
y_overflow: boolean;
- - - - - -
x_overflow: boolean;
- - - - - -
y_sign: boolean;
- - - - - -
x_sign: boolean;
- - - - - -
MMB_Down: Boolean;
- - - - - -
RMB_Down: Boolean;
- - - - - -
LMB_Down: Boolean;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: mouse: Record TMousePacket + + + + + + + + +
+

Record TMousePacket

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TMousePacket = record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
x_movement: sint32;
y_movement: sint32;
y_overflow: boolean;
x_overflow: boolean;
y_sign: boolean;
x_sign: boolean;
MMB_Down: Boolean;
RMB_Down: Boolean;
LMB_Down: Boolean;
+

Description

+

Fields

+ + + + + +
x_movement: sint32;
+ + + + + +
y_movement: sint32;
+ + + + + +
y_overflow: boolean;
+ + + + + +
x_overflow: boolean;
+ + + + + +
y_sign: boolean;
+ + + + + +
x_sign: boolean;
+ + + + + +
MMB_Down: Boolean;
+ + + + + +
RMB_Down: Boolean;
+ + + + + +
LMB_Down: Boolean;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/mouse.TMousePos.html b/doc/mouse.TMousePos.html index 2e12268c..db23f7b7 100644 --- a/doc/mouse.TMousePos.html +++ b/doc/mouse.TMousePos.html @@ -1,67 +1,67 @@ - - - -Asuro: mouse: Record TMousePos - - - - - - - - -
-

Record TMousePos

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TMousePos = record

-

Description

Overview

-

Fields

- - - - - - - -
x: sint32;
y: sint32;
-

Description

-

Fields

- - - - - -
x: sint32;
- - - - - -
y: sint32;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: mouse: Record TMousePos + + + + + + + + +
+

Record TMousePos

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TMousePos = record

+

Description

Overview

+

Fields

+ + + + + + + +
x: sint32;
y: sint32;
+

Description

+

Fields

+ + + + + +
x: sint32;
+ + + + + +
y: sint32;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/mouse.html b/doc/mouse.html index 6d566075..3e897122 100644 --- a/doc/mouse.html +++ b/doc/mouse.html @@ -1,99 +1,99 @@ - - - -Asuro: mouse - - - - - - - - -
-

Unit mouse

- -

Description

-

-Driver->HID->Mouse - Mouse Driver. - -

-

Uses

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - - - - - -
NameDescription
Record TMousePacket 
Record TMousePos 
-

Functions and Procedures

- - - - - - - -
procedure init();
procedure DrawCursor;
-

Types

- - - - -
PMousePacket = ˆTMousePacket;
-

Description

-

Functions and Procedures

- - - - - -
procedure init();
- - - - - -
procedure DrawCursor;
-

Types

- - - - - -
PMousePacket = ˆTMousePacket;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: mouse + + + + + + + + +
+

Unit mouse

+ +

Description

+

+Driver->HID->Mouse - Mouse Driver. + +

+

Uses

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + + + + + +
NameDescription
Record TMousePacket 
Record TMousePos 
+

Functions and Procedures

+ + + + + + + +
procedure init();
procedure DrawCursor;
+

Types

+ + + + +
PMousePacket = ˆTMousePacket;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init();
+ + + + + +
procedure DrawCursor;
+

Types

+ + + + + +
PMousePacket = ˆTMousePacket;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/multiboot.elf_section_header_table_t.html b/doc/multiboot.elf_section_header_table_t.html index dffa672a..0d5f80a2 100644 --- a/doc/multiboot.elf_section_header_table_t.html +++ b/doc/multiboot.elf_section_header_table_t.html @@ -1,87 +1,87 @@ - - - -Asuro: multiboot: Packed Record elf_section_header_table_t - - - - - - - - -
-

Packed Record elf_section_header_table_t

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type elf_section_header_table_t = packed record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - -
num: uint32;
size: uint32;
addr: uint32;
shndx: uint32;
-

Description

-

Fields

- - - - - -
num: uint32;
- - - - - -
size: uint32;
- - - - - -
addr: uint32;
- - - - - -
shndx: uint32;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: multiboot: Packed Record elf_section_header_table_t + + + + + + + + +
+

Packed Record elf_section_header_table_t

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type elf_section_header_table_t = packed record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + +
num: uint32;
size: uint32;
addr: uint32;
shndx: uint32;
+

Description

+

Fields

+ + + + + +
num: uint32;
+ + + + + +
size: uint32;
+ + + + + +
addr: uint32;
+ + + + + +
shndx: uint32;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/multiboot.html b/doc/multiboot.html index 8a10fbd5..d65e3cf5 100644 --- a/doc/multiboot.html +++ b/doc/multiboot.html @@ -1,160 +1,160 @@ - - - -Asuro: multiboot - - - - - - - - -
-

Unit multiboot

- -

Description

-

-Include->Multiboot - Multiboot Structures & Access. - -

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - - - - - - - - - - - - - -
NameDescription
Packed Record elf_section_header_table_t 
Packed Record multiboot_info_t 
Packed Record module_t 
Packed Record memory_map_t 
-

Types

- - - - - - - - - - - - - -
Pelf_section_header_table_t = ˆelf_section_header_table_t;
Pmultiboot_info_t = ˆmultiboot_info_t;
Pmodule_t = ˆmodule_t;
Pmemory_map_t = ˆmemory_map_t;
-

Constants

- - - - - - - -
KERNEL_STACKSIZE = $4000;
MULTIBOOT_BOOTLOADER_MAGIC = $2BADB002;
-

Variables

- - - - - - - -
multibootinfo: Pmultiboot_info_t = nil;
multibootmagic: uint32;
-

Description

-

Types

- - - - - -
Pelf_section_header_table_t = ˆelf_section_header_table_t;
- - - - - -
Pmultiboot_info_t = ˆmultiboot_info_t;
- - - - - -
Pmodule_t = ˆmodule_t;
- - - - - -
Pmemory_map_t = ˆmemory_map_t;
-

Constants

- - - - - -
KERNEL_STACKSIZE = $4000;
- - - - - -
MULTIBOOT_BOOTLOADER_MAGIC = $2BADB002;
-

Variables

- - - - - -
multibootinfo: Pmultiboot_info_t = nil;
- - - - - -
multibootmagic: uint32;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: multiboot + + + + + + + + +
+

Unit multiboot

+ +

Description

+

+Include->Multiboot - Multiboot Structures & Access. + +

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + + + + + + + + + + + + + +
NameDescription
Packed Record elf_section_header_table_t 
Packed Record multiboot_info_t 
Packed Record module_t 
Packed Record memory_map_t 
+

Types

+ + + + + + + + + + + + + +
Pelf_section_header_table_t = ˆelf_section_header_table_t;
Pmultiboot_info_t = ˆmultiboot_info_t;
Pmodule_t = ˆmodule_t;
Pmemory_map_t = ˆmemory_map_t;
+

Constants

+ + + + + + + +
KERNEL_STACKSIZE = $4000;
MULTIBOOT_BOOTLOADER_MAGIC = $2BADB002;
+

Variables

+ + + + + + + +
multibootinfo: Pmultiboot_info_t = nil;
multibootmagic: uint32;
+

Description

+

Types

+ + + + + +
Pelf_section_header_table_t = ˆelf_section_header_table_t;
+ + + + + +
Pmultiboot_info_t = ˆmultiboot_info_t;
+ + + + + +
Pmodule_t = ˆmodule_t;
+ + + + + +
Pmemory_map_t = ˆmemory_map_t;
+

Constants

+ + + + + +
KERNEL_STACKSIZE = $4000;
+ + + + + +
MULTIBOOT_BOOTLOADER_MAGIC = $2BADB002;
+

Variables

+ + + + + +
multibootinfo: Pmultiboot_info_t = nil;
+ + + + + +
multibootmagic: uint32;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/multiboot.memory_map_t.html b/doc/multiboot.memory_map_t.html index 58c616b8..b6ecc572 100644 --- a/doc/multiboot.memory_map_t.html +++ b/doc/multiboot.memory_map_t.html @@ -1,87 +1,87 @@ - - - -Asuro: multiboot: Packed Record memory_map_t - - - - - - - - -
-

Packed Record memory_map_t

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type memory_map_t = packed record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - -
size: uint32;
base_addr: uint64;
length: uint64;
mtype: uint32;
-

Description

-

Fields

- - - - - -
size: uint32;
- - - - - -
base_addr: uint64;
- - - - - -
length: uint64;
- - - - - -
mtype: uint32;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: multiboot: Packed Record memory_map_t + + + + + + + + +
+

Packed Record memory_map_t

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type memory_map_t = packed record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + +
size: uint32;
base_addr: uint64;
length: uint64;
mtype: uint32;
+

Description

+

Fields

+ + + + + +
size: uint32;
+ + + + + +
base_addr: uint64;
+ + + + + +
length: uint64;
+ + + + + +
mtype: uint32;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/multiboot.module_t.html b/doc/multiboot.module_t.html index a2a00b50..dae6554d 100644 --- a/doc/multiboot.module_t.html +++ b/doc/multiboot.module_t.html @@ -1,87 +1,87 @@ - - - -Asuro: multiboot: Packed Record module_t - - - - - - - - -
-

Packed Record module_t

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type module_t = packed record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - -
mod_start: uint32;
mod_end: uint32;
name: uint32;
reserved: uint32;
-

Description

-

Fields

- - - - - -
mod_start: uint32;
- - - - - -
mod_end: uint32;
- - - - - -
name: uint32;
- - - - - -
reserved: uint32;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: multiboot: Packed Record module_t + + + + + + + + +
+

Packed Record module_t

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type module_t = packed record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + +
mod_start: uint32;
mod_end: uint32;
name: uint32;
reserved: uint32;
+

Description

+

Fields

+ + + + + +
mod_start: uint32;
+ + + + + +
mod_end: uint32;
+ + + + + +
name: uint32;
+ + + + + +
reserved: uint32;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/multiboot.multiboot_info_t.html b/doc/multiboot.multiboot_info_t.html index c7a56b62..6dba8408 100644 --- a/doc/multiboot.multiboot_info_t.html +++ b/doc/multiboot.multiboot_info_t.html @@ -1,307 +1,307 @@ - - - -Asuro: multiboot: Packed Record multiboot_info_t - - - - - - - - -
-

Packed Record multiboot_info_t

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type multiboot_info_t = packed record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
flags: uint32;
mem_lower: uint32;
mem_upper: uint32;
boot_device: uint32;
cmdline: uint32;
mods_count: uint32;
mods_addr: uint32;
elf_sec: elf_section_header_table_t;
mmap_length: uint32;
mmap_addr: uint32;
drives_legnth: uint32;
drives_addr: uint32;
config_table: uint32;
boot_loader_name: uint32;
apm_table: uint32;
vbe_control_info: uint32;
vbe_mode_info: uint32;
vbe_mode: uint16;
vbe_interface_seg: uint16;
vbe_interface_off: uint16;
vbe_interface_len: uint16;
framebuffer_addr: uint64;
framebuffer_pitch: uint32;
framebuffer_width: uint32;
framebuffer_height: uint32;
framebuffer_bpp: uint8;
-

Description

-

Fields

- - - - - -
flags: uint32;
- - - - - -
mem_lower: uint32;
- - - - - -
mem_upper: uint32;
- - - - - -
boot_device: uint32;
- - - - - -
cmdline: uint32;
- - - - - -
mods_count: uint32;
- - - - - -
mods_addr: uint32;
- - - - - -
elf_sec: elf_section_header_table_t;
- - - - - -
mmap_length: uint32;
- - - - - -
mmap_addr: uint32;
- - - - - -
drives_legnth: uint32;
- - - - - -
drives_addr: uint32;
- - - - - -
config_table: uint32;
- - - - - -
boot_loader_name: uint32;
- - - - - -
apm_table: uint32;
- - - - - -
vbe_control_info: uint32;
- - - - - -
vbe_mode_info: uint32;
- - - - - -
vbe_mode: uint16;
- - - - - -
vbe_interface_seg: uint16;
- - - - - -
vbe_interface_off: uint16;
- - - - - -
vbe_interface_len: uint16;
- - - - - -
framebuffer_addr: uint64;
- - - - - -
framebuffer_pitch: uint32;
- - - - - -
framebuffer_width: uint32;
- - - - - -
framebuffer_height: uint32;
- - - - - -
framebuffer_bpp: uint8;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: multiboot: Packed Record multiboot_info_t + + + + + + + + +
+

Packed Record multiboot_info_t

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type multiboot_info_t = packed record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
flags: uint32;
mem_lower: uint32;
mem_upper: uint32;
boot_device: uint32;
cmdline: uint32;
mods_count: uint32;
mods_addr: uint32;
elf_sec: elf_section_header_table_t;
mmap_length: uint32;
mmap_addr: uint32;
drives_legnth: uint32;
drives_addr: uint32;
config_table: uint32;
boot_loader_name: uint32;
apm_table: uint32;
vbe_control_info: uint32;
vbe_mode_info: uint32;
vbe_mode: uint16;
vbe_interface_seg: uint16;
vbe_interface_off: uint16;
vbe_interface_len: uint16;
framebuffer_addr: uint64;
framebuffer_pitch: uint32;
framebuffer_width: uint32;
framebuffer_height: uint32;
framebuffer_bpp: uint8;
+

Description

+

Fields

+ + + + + +
flags: uint32;
+ + + + + +
mem_lower: uint32;
+ + + + + +
mem_upper: uint32;
+ + + + + +
boot_device: uint32;
+ + + + + +
cmdline: uint32;
+ + + + + +
mods_count: uint32;
+ + + + + +
mods_addr: uint32;
+ + + + + +
elf_sec: elf_section_header_table_t;
+ + + + + +
mmap_length: uint32;
+ + + + + +
mmap_addr: uint32;
+ + + + + +
drives_legnth: uint32;
+ + + + + +
drives_addr: uint32;
+ + + + + +
config_table: uint32;
+ + + + + +
boot_loader_name: uint32;
+ + + + + +
apm_table: uint32;
+ + + + + +
vbe_control_info: uint32;
+ + + + + +
vbe_mode_info: uint32;
+ + + + + +
vbe_mode: uint16;
+ + + + + +
vbe_interface_seg: uint16;
+ + + + + +
vbe_interface_off: uint16;
+ + + + + +
vbe_interface_len: uint16;
+ + + + + +
framebuffer_addr: uint64;
+ + + + + +
framebuffer_pitch: uint32;
+ + + + + +
framebuffer_width: uint32;
+ + + + + +
framebuffer_height: uint32;
+ + + + + +
framebuffer_bpp: uint8;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/net.html b/doc/net.html index 23b9c7fc..85ba6a25 100644 --- a/doc/net.html +++ b/doc/net.html @@ -1,130 +1,130 @@ - - - -Asuro: net - - - - - - - - -
-

Unit net

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Driver->Net->L1->Net - Network Card<->Driver Interface. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - - - - - - - - - - - - - - - - - - - - - - -
procedure init;
procedure registerNetworkCard(SendCallback : TNetSendCallback; _MAC : puint8);
procedure registerNextLayer(RecvCallback : TRecvCallback);
procedure send(p_data : void; p_len : uint16);
procedure recv(p_data : void; p_len : uint16);
function getMAC : puint8;
procedure writeToLog(str : pchar);
procedure writeToLogLn(str : pchar);
-

Description

-

Functions and Procedures

- - - - - -
procedure init;
- - - - - -
procedure registerNetworkCard(SendCallback : TNetSendCallback; _MAC : puint8);
- - - - - -
procedure registerNextLayer(RecvCallback : TRecvCallback);
- - - - - -
procedure send(p_data : void; p_len : uint16);
- - - - - -
procedure recv(p_data : void; p_len : uint16);
- - - - - -
function getMAC : puint8;
- - - - - -
procedure writeToLog(str : pchar);
- - - - - -
procedure writeToLogLn(str : pchar);
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: net + + + + + + + + +
+

Unit net

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Driver->Net->L1->Net - Network Card<->Driver Interface. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + + + + + + + + + + + + + + + + + + + + + + +
procedure init;
procedure registerNetworkCard(SendCallback : TNetSendCallback; _MAC : puint8);
procedure registerNextLayer(RecvCallback : TRecvCallback);
procedure send(p_data : void; p_len : uint16);
procedure recv(p_data : void; p_len : uint16);
function getMAC : puint8;
procedure writeToLog(str : pchar);
procedure writeToLogLn(str : pchar);
+

Description

+

Functions and Procedures

+ + + + + +
procedure init;
+ + + + + +
procedure registerNetworkCard(SendCallback : TNetSendCallback; _MAC : puint8);
+ + + + + +
procedure registerNextLayer(RecvCallback : TRecvCallback);
+ + + + + +
procedure send(p_data : void; p_len : uint16);
+ + + + + +
procedure recv(p_data : void; p_len : uint16);
+ + + + + +
function getMAC : puint8;
+ + + + + +
procedure writeToLog(str : pchar);
+ + + + + +
procedure writeToLogLn(str : pchar);
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/netlog.html b/doc/netlog.html index 62b061c1..4b843eab 100644 --- a/doc/netlog.html +++ b/doc/netlog.html @@ -1,70 +1,70 @@ - - - -Asuro: netlog - - - - - - - - -
-

Unit netlog

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Prog->NetLog - Network Driver Logs. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - - - - -
procedure init();
function getNetlogHWND : HWND;
-

Description

-

Functions and Procedures

- - - - - -
procedure init();
- - - - - -
function getNetlogHWND : HWND;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: netlog + + + + + + + + +
+

Unit netlog

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Prog->NetLog - Network Driver Logs. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + + + + +
procedure init();
function getNetlogHWND : HWND;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init();
+ + + + + +
function getNetlogHWND : HWND;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/nettypes.TARPAbstractHeader.html b/doc/nettypes.TARPAbstractHeader.html index e5b63a47..0acad12b 100644 --- a/doc/nettypes.TARPAbstractHeader.html +++ b/doc/nettypes.TARPAbstractHeader.html @@ -1,139 +1,139 @@ - - - -Asuro: nettypes: Record TARPAbstractHeader - - - - - - - - -
-

Record TARPAbstractHeader

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TARPAbstractHeader = record

-

Description

-

-ARP

-

Overview

-

Fields

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Hardware_Type: uint16;
Protocol_Type: uint16;
Hardware_Address_Length: uint8;
Protocol_Address_Length: uint8;
Operation: uint16;
Source_Hardware: TMACAddress;
Source_Protocol: TIPv4Address;
Destination_Hardware: TMACAddress;
Destination_Protocol: TIPv4Address;
-

Description

-

Fields

- - - - - -
Hardware_Type: uint16;
- - - - - -
Protocol_Type: uint16;
- - - - - -
Hardware_Address_Length: uint8;
- - - - - -
Protocol_Address_Length: uint8;
- - - - - -
Operation: uint16;
- - - - - -
Source_Hardware: TMACAddress;
- - - - - -
Source_Protocol: TIPv4Address;
- - - - - -
Destination_Hardware: TMACAddress;
- - - - - -
Destination_Protocol: TIPv4Address;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: nettypes: Record TARPAbstractHeader + + + + + + + + +
+

Record TARPAbstractHeader

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TARPAbstractHeader = record

+

Description

+

+ARP

+

Overview

+

Fields

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Hardware_Type: uint16;
Protocol_Type: uint16;
Hardware_Address_Length: uint8;
Protocol_Address_Length: uint8;
Operation: uint16;
Source_Hardware: TMACAddress;
Source_Protocol: TIPv4Address;
Destination_Hardware: TMACAddress;
Destination_Protocol: TIPv4Address;
+

Description

+

Fields

+ + + + + +
Hardware_Type: uint16;
+ + + + + +
Protocol_Type: uint16;
+ + + + + +
Hardware_Address_Length: uint8;
+ + + + + +
Protocol_Address_Length: uint8;
+ + + + + +
Operation: uint16;
+ + + + + +
Source_Hardware: TMACAddress;
+ + + + + +
Source_Protocol: TIPv4Address;
+ + + + + +
Destination_Hardware: TMACAddress;
+ + + + + +
Destination_Protocol: TIPv4Address;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/nettypes.TICMPHeader.html b/doc/nettypes.TICMPHeader.html index 7d4e3d3f..2e97c1ed 100644 --- a/doc/nettypes.TICMPHeader.html +++ b/doc/nettypes.TICMPHeader.html @@ -1,107 +1,107 @@ - - - -Asuro: nettypes: Record TICMPHeader - - - - - - - - -
-

Record TICMPHeader

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TICMPHeader = record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - - - - - - - -
ICMP_Type: uint8;
ICMP_Code: uint8;
ICMP_CHK_Hi: uint8;
ICMP_CHK_Lo: uint8;
Identifier: uint16;
Sequence: uint16;
-

Description

-

Fields

- - - - - -
ICMP_Type: uint8;
- - - - - -
ICMP_Code: uint8;
- - - - - -
ICMP_CHK_Hi: uint8;
- - - - - -
ICMP_CHK_Lo: uint8;
- - - - - -
Identifier: uint16;
- - - - - -
Sequence: uint16;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: nettypes: Record TICMPHeader + + + + + + + + +
+

Record TICMPHeader

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TICMPHeader = record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + + + + + + + +
ICMP_Type: uint8;
ICMP_Code: uint8;
ICMP_CHK_Hi: uint8;
ICMP_CHK_Lo: uint8;
Identifier: uint16;
Sequence: uint16;
+

Description

+

Fields

+ + + + + +
ICMP_Type: uint8;
+ + + + + +
ICMP_Code: uint8;
+ + + + + +
ICMP_CHK_Hi: uint8;
+ + + + + +
ICMP_CHK_Lo: uint8;
+ + + + + +
Identifier: uint16;
+ + + + + +
Sequence: uint16;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/nettypes.TIPV4AbstractHeader.html b/doc/nettypes.TIPV4AbstractHeader.html index 83b2385b..60aa94bf 100644 --- a/doc/nettypes.TIPV4AbstractHeader.html +++ b/doc/nettypes.TIPV4AbstractHeader.html @@ -1,177 +1,177 @@ - - - -Asuro: nettypes: Record TIPV4AbstractHeader - - - - - - - - -
-

Record TIPV4AbstractHeader

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TIPV4AbstractHeader = record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
version: uint8;
header_len: uint8;
ToS: uint8;
total_len: uint16;
identifier: uint16;
Flags: TTCPFlags;
Fragment_Off: uint16;
TTL: uint8;
Protocol: uint8;
HDR_CHK: uint16;
Src: Array[0..3] of uint8;
Dst: Array[0..3] of uint8;
Options: uint32;
-

Description

-

Fields

- - - - - -
version: uint8;
- - - - - -
header_len: uint8;
- - - - - -
ToS: uint8;
- - - - - -
total_len: uint16;
- - - - - -
identifier: uint16;
- - - - - -
Flags: TTCPFlags;
- - - - - -
Fragment_Off: uint16;
- - - - - -
TTL: uint8;
- - - - - -
Protocol: uint8;
- - - - - -
HDR_CHK: uint16;
- - - - - -
Src: Array[0..3] of uint8;
- - - - - -
Dst: Array[0..3] of uint8;
- - - - - -
Options: uint32;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: nettypes: Record TIPV4AbstractHeader + + + + + + + + +
+

Record TIPV4AbstractHeader

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TIPV4AbstractHeader = record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
version: uint8;
header_len: uint8;
ToS: uint8;
total_len: uint16;
identifier: uint16;
Flags: TTCPFlags;
Fragment_Off: uint16;
TTL: uint8;
Protocol: uint8;
HDR_CHK: uint16;
Src: Array[0..3] of uint8;
Dst: Array[0..3] of uint8;
Options: uint32;
+

Description

+

Fields

+ + + + + +
version: uint8;
+ + + + + +
header_len: uint8;
+ + + + + +
ToS: uint8;
+ + + + + +
total_len: uint16;
+ + + + + +
identifier: uint16;
+ + + + + +
Flags: TTCPFlags;
+ + + + + +
Fragment_Off: uint16;
+ + + + + +
TTL: uint8;
+ + + + + +
Protocol: uint8;
+ + + + + +
HDR_CHK: uint16;
+ + + + + +
Src: Array[0..3] of uint8;
+ + + + + +
Dst: Array[0..3] of uint8;
+ + + + + +
Options: uint32;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/nettypes.TIPv4Configuration.html b/doc/nettypes.TIPv4Configuration.html index 0edc516c..a2316b7e 100644 --- a/doc/nettypes.TIPv4Configuration.html +++ b/doc/nettypes.TIPv4Configuration.html @@ -1,87 +1,87 @@ - - - -Asuro: nettypes: Record TIPv4Configuration - - - - - - - - -
-

Record TIPv4Configuration

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TIPv4Configuration = record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - -
Address: array[0..3] of uint8;
Gateway: array[0..3] of uint8;
Netmask: array[0..3] of uint8;
UP: Boolean;
-

Description

-

Fields

- - - - - -
Address: array[0..3] of uint8;
- - - - - -
Gateway: array[0..3] of uint8;
- - - - - -
Netmask: array[0..3] of uint8;
- - - - - -
UP: Boolean;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: nettypes: Record TIPv4Configuration + + + + + + + + +
+

Record TIPv4Configuration

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TIPv4Configuration = record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + +
Address: array[0..3] of uint8;
Gateway: array[0..3] of uint8;
Netmask: array[0..3] of uint8;
UP: Boolean;
+

Description

+

Fields

+ + + + + +
Address: array[0..3] of uint8;
+ + + + + +
Gateway: array[0..3] of uint8;
+ + + + + +
Netmask: array[0..3] of uint8;
+ + + + + +
UP: Boolean;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/nettypes.TIPv4Pair.html b/doc/nettypes.TIPv4Pair.html index c27103c8..72beb51f 100644 --- a/doc/nettypes.TIPv4Pair.html +++ b/doc/nettypes.TIPv4Pair.html @@ -1,67 +1,67 @@ - - - -Asuro: nettypes: Record TIPv4Pair - - - - - - - - -
-

Record TIPv4Pair

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TIPv4Pair = record

-

Description

Overview

-

Fields

- - - - - - - -
Source: TIPv4Address;
Destination: TIPv4Address;
-

Description

-

Fields

- - - - - -
Source: TIPv4Address;
- - - - - -
Destination: TIPv4Address;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: nettypes: Record TIPv4Pair + + + + + + + + +
+

Record TIPv4Pair

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TIPv4Pair = record

+

Description

Overview

+

Fields

+ + + + + + + +
Source: TIPv4Address;
Destination: TIPv4Address;
+

Description

+

Fields

+ + + + + +
Source: TIPv4Address;
+ + + + + +
Destination: TIPv4Address;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/nettypes.TMACPair.html b/doc/nettypes.TMACPair.html index e4491cf5..43605fd7 100644 --- a/doc/nettypes.TMACPair.html +++ b/doc/nettypes.TMACPair.html @@ -1,67 +1,67 @@ - - - -Asuro: nettypes: Record TMACPair - - - - - - - - -
-

Record TMACPair

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TMACPair = record

-

Description

Overview

-

Fields

- - - - - - - -
Source: TMACAddress;
Destination: TMACAddress;
-

Description

-

Fields

- - - - - -
Source: TMACAddress;
- - - - - -
Destination: TMACAddress;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: nettypes: Record TMACPair + + + + + + + + +
+

Record TMACPair

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TMACPair = record

+

Description

Overview

+

Fields

+ + + + + + + +
Source: TMACAddress;
Destination: TMACAddress;
+

Description

+

Fields

+ + + + + +
Source: TMACAddress;
+ + + + + +
Destination: TMACAddress;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/nettypes.TPacketContext.html b/doc/nettypes.TPacketContext.html index 85f839b2..d9d6bc82 100644 --- a/doc/nettypes.TPacketContext.html +++ b/doc/nettypes.TPacketContext.html @@ -1,87 +1,87 @@ - - - -Asuro: nettypes: Record TPacketContext - - - - - - - - -
-

Record TPacketContext

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TPacketContext = record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - -
MAC: TMACPair;
IP: TIPv4Pair;
Protocol: TProtocol;
TTL: uint8;
-

Description

-

Fields

- - - - - -
MAC: TMACPair;
- - - - - -
IP: TIPv4Pair;
- - - - - -
Protocol: TProtocol;
- - - - - -
TTL: uint8;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: nettypes: Record TPacketContext + + + + + + + + +
+

Record TPacketContext

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TPacketContext = record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + +
MAC: TMACPair;
IP: TIPv4Pair;
Protocol: TProtocol;
TTL: uint8;
+

Description

+

Fields

+ + + + + +
MAC: TMACPair;
+ + + + + +
IP: TIPv4Pair;
+ + + + + +
Protocol: TProtocol;
+ + + + + +
TTL: uint8;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/nettypes.TProtocol.html b/doc/nettypes.TProtocol.html index 35bf8ca2..de9dd339 100644 --- a/doc/nettypes.TProtocol.html +++ b/doc/nettypes.TProtocol.html @@ -1,87 +1,87 @@ - - - -Asuro: nettypes: Record TProtocol - - - - - - - - -
-

Record TProtocol

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TProtocol = record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - -
L1: uint16;
L2: uint16;
L3: uint16;
L4: uint16;
-

Description

-

Fields

- - - - - -
L1: uint16;
- - - - - -
L2: uint16;
- - - - - -
L3: uint16;
- - - - - -
L4: uint16;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: nettypes: Record TProtocol + + + + + + + + +
+

Record TProtocol

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TProtocol = record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + +
L1: uint16;
L2: uint16;
L3: uint16;
L4: uint16;
+

Description

+

Fields

+ + + + + +
L1: uint16;
+ + + + + +
L2: uint16;
+ + + + + +
L3: uint16;
+ + + + + +
L4: uint16;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/nettypes.TTCPFlags.html b/doc/nettypes.TTCPFlags.html index 7d4c69fb..34dd5323 100644 --- a/doc/nettypes.TTCPFlags.html +++ b/doc/nettypes.TTCPFlags.html @@ -1,77 +1,77 @@ - - - -Asuro: nettypes: Record TTCPFlags - - - - - - - - -
-

Record TTCPFlags

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TTCPFlags = record

-

Description

Overview

-

Fields

- - - - - - - - - - -
RS: Boolean;
DF: Boolean;
MF: Boolean;
-

Description

-

Fields

- - - - - -
RS: Boolean;
- - - - - -
DF: Boolean;
- - - - - -
MF: Boolean;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: nettypes: Record TTCPFlags + + + + + + + + +
+

Record TTCPFlags

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TTCPFlags = record

+

Description

Overview

+

Fields

+ + + + + + + + + + +
RS: Boolean;
DF: Boolean;
MF: Boolean;
+

Description

+

Fields

+ + + + + +
RS: Boolean;
+ + + + + +
DF: Boolean;
+ + + + + +
MF: Boolean;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/nettypes.html b/doc/nettypes.html index ce055869..327dfba4 100644 --- a/doc/nettypes.html +++ b/doc/nettypes.html @@ -1,104 +1,104 @@ - - - -Asuro: nettypes - - - - - - - - - + + +
-

Unit nettypes

- -

Description

-

-Driver->Net->NetTypes - Structures & Types Shared Across Network Drivers. - -

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescription
Record TMACPair 
Record TIPv4Pair 
Record TProtocol 
Record TPacketContext 
Record TIPv4Configuration 
Record TICMPHeader 
Record TARPAbstractHeaderARP
Record TTCPFlags 
Record TIPV4AbstractHeader 
-

Types

- - - - - - - - - - - - - - - - - - - - + + + +Asuro: nettypes + + + + + + + + +
TMACAddress = Array[0..5] of uint8;
TIPv4Address = Array[0..3] of uint8;
PPacketContext = ˆTPacketContext;
PIPv4Configuration = ˆTIPv4Configuration;
PICMPHeader = ˆTICMPHeader;
PARPHeader = ˆTARPHeader;
+

Unit nettypes

+ +

Description

+

+Driver->Net->NetTypes - Structures & Types Shared Across Network Drivers. + +

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescription
Record TMACPair 
Record TIPv4Pair 
Record TProtocol 
Record TPacketContext 
Record TIPv4Configuration 
Record TICMPHeader 
Record TARPAbstractHeaderARP
Record TTCPFlags 
Record TIPV4AbstractHeader 
+

Types

+ + + + + + + + + + + + + + + + + + + + - - - - - + end; + + + + + - - - - - + end; + + + + + - - - - - - - -
TMACAddress = Array[0..5] of uint8;
TIPv4Address = Array[0..3] of uint8;
PPacketContext = ˆTPacketContext;
PIPv4Configuration = ˆTIPv4Configuration;
PICMPHeader = ˆTICMPHeader;
PARPHeader = ˆTARPHeader;
TARPHeader = bitpacked record Hardware_Type_Hi : uint8; Hardware_Type_Lo : uint8; @@ -112,23 +112,23 @@ Driver->Net->NetTypes - Source_Protocol : TIPv4Address; Destination_Hardware : TMACAddress; Destination_Protocol : TIPv4Address; - end;
PEthernetHeader = ˆTEthernetHeader;
PEthernetHeader = ˆTEthernetHeader;
TEthernetHeader = bitpacked record dst : array[0..5] of uint8; src : array[0..5] of uint8; EthTypeHi : uint8; EthTypeLo : uint8; - end;
PIPV4Header = ˆTIPV4Header;
PIPV4Header = ˆTIPV4Header;
TIPV4Header = bitpacked record header_len : ubit4; version : ubit4; @@ -147,87 +147,87 @@ Driver->Net->NetTypes - Dst : Array[0..3] of uint8; Options : ubit24; Padding : uint8; - end;
TNetSendCallback = function(p_data : void; p_len : uint16) : sint32;
TRecvCallback = procedure(p_data : void; p_len : uint16; p_context : PPacketContext);
-

Constants

- - - - - - - - - - - + end; + + + + + + + +
BROADCAST_MAC : Array[0..5] of uint8 = ($FF, $FF, $FF, $FF, $FF, $FF);
NULL_MAC : Array[0..5] of uint8 = ($00, $00, $00, $00, $00, $00);
FORCE_MAC : Array[0..5] of uint8 = ($08, $00, $27, $E6, $3F, $81);
TNetSendCallback = function(p_data : void; p_len : uint16) : sint32;
TRecvCallback = procedure(p_data : void; p_len : uint16; p_context : PPacketContext);
+

Constants

+ + + + + + + + + + + - -
BROADCAST_MAC : Array[0..5] of uint8 = ($FF, $FF, $FF, $FF, $FF, $FF);
NULL_MAC : Array[0..5] of uint8 = ($00, $00, $00, $00, $00, $00);
FORCE_MAC : Array[0..5] of uint8 = ($08, $00, $27, $E6, $3F, $81);
ICMP_DATA_GENERIC : Array[0..31] of uint8 = ( $61, $62, $63, $64, $65, $66, $67, $68, $69, $6a, $6b, $6c, $6d, $6e, $6f, $70, $71, $72, $73, $74, $75, $76, $77, $61, - $62, $63, $64, $65, $66, $67, $68, $69 );
-

Description

-

Types

- - - - - -
TMACAddress = Array[0..5] of uint8;
-

-Generic

-
- - - - - -
TIPv4Address = Array[0..3] of uint8;
- - - - - -
PPacketContext = ˆTPacketContext;
-

-Context

-
- - - - - -
PIPv4Configuration = ˆTIPv4Configuration;
-

-Config

-
- - - - - -
PICMPHeader = ˆTICMPHeader;
-

-ICMP

-
- - - - - -
PARPHeader = ˆTARPHeader;
- - + $62, $63, $64, $65, $66, $67, $68, $69 ); + +
+

Description

+

Types

+ + + + + +
TMACAddress = Array[0..5] of uint8;
+

+Generic

+
+ + + + + +
TIPv4Address = Array[0..3] of uint8;
+ + + + + +
PPacketContext = ˆTPacketContext;
+

+Context

+
+ + + + + +
PIPv4Configuration = ˆTIPv4Configuration;
+

+Config

+
+ + + + + +
PICMPHeader = ˆTICMPHeader;
+

+ICMP

+
+ + + + + +
PARPHeader = ˆTARPHeader;
+ + - - -
TARPHeader = bitpacked record Hardware_Type_Hi : uint8; Hardware_Type_Lo : uint8; @@ -241,43 +241,43 @@ Config

Source_Protocol : TIPv4Address; Destination_Hardware : TMACAddress; Destination_Protocol : TIPv4Address; - end;
- - - - - -
PEthernetHeader = ˆTEthernetHeader;
-

-ETH2

-
- - + end; + + +
+ + + + + +
PEthernetHeader = ˆTEthernetHeader;
+

+ETH2

+
+ + - - -
TEthernetHeader = bitpacked record dst : array[0..5] of uint8; src : array[0..5] of uint8; EthTypeHi : uint8; EthTypeLo : uint8; - end;
- - - - - -
PIPV4Header = ˆTIPV4Header;
-

-IPv4

-
- - + end; + + +
+ + + + + +
PIPV4Header = ˆTIPV4Header;
+

+IPv4

+
+ + - - -
TIPV4Header = bitpacked record header_len : ubit4; version : ubit4; @@ -296,67 +296,67 @@ Config

Dst : Array[0..3] of uint8; Options : ubit24; Padding : uint8; - end;
- - - - - -
TNetSendCallback = function(p_data : void; p_len : uint16) : sint32;
-

-Callback Types

-
- - - - - -
TRecvCallback = procedure(p_data : void; p_len : uint16; p_context : PPacketContext);
-

Constants

- - - - - -
BROADCAST_MAC : Array[0..5] of uint8 = ($FF, $FF, $FF, $FF, $FF, $FF);
-

-MACs

-
- - - - - -
NULL_MAC : Array[0..5] of uint8 = ($00, $00, $00, $00, $00, $00);
- - - - - -
FORCE_MAC : Array[0..5] of uint8 = ($08, $00, $27, $E6, $3F, $81);
- - + end; + + +
+ + + + + +
TNetSendCallback = function(p_data : void; p_len : uint16) : sint32;
+

+Callback Types

+
+ + + + + +
TRecvCallback = procedure(p_data : void; p_len : uint16; p_context : PPacketContext);
+

Constants

+ + + + + +
BROADCAST_MAC : Array[0..5] of uint8 = ($FF, $FF, $FF, $FF, $FF, $FF);
+

+MACs

+
+ + + + + +
NULL_MAC : Array[0..5] of uint8 = ($00, $00, $00, $00, $00, $00);
+ + + + + +
FORCE_MAC : Array[0..5] of uint8 = ($08, $00, $27, $E6, $3F, $81);
+ + - - -
ICMP_DATA_GENERIC : Array[0..31] of uint8 = ( $61, $62, $63, $64, $65, $66, $67, $68, $69, $6a, $6b, $6c, $6d, $6e, $6f, $70, $71, $72, $73, $74, $75, $76, $77, $61, - $62, $63, $64, $65, $66, $67, $68, $69 );
-

-ICMP Data

-
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ $62, $63, $64, $65, $66, $67, $68, $69 );
+

+ICMP Data

+
+

Author

+ +
Generated by PasDoc 0.15.0. + + diff --git a/doc/netutils.html b/doc/netutils.html index 93f74ddb..9ff0a356 100644 --- a/doc/netutils.html +++ b/doc/netutils.html @@ -1,220 +1,220 @@ - - - -Asuro: netutils - - - - - - - - -
-

Unit netutils

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Driver->Net->NetUtils - Helper Functions For Network Drivers. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
procedure copyMAC(src : puint8; dst : puint8);
procedure copyIPv4(src : puint8; dst : puint8);
function stringToMAC(str : pchar) : puint8;
function stringToIPv4(str : pchar) : puint8;
procedure writeMACAddress(mac : puint8; WND : HWND);
procedure writeIPv4Address(ip : puint8; WND : HWND);
procedure writeMACAddressEx(mac : puint8; WND : HWND);
procedure writeIPv4AddressEx(ip : puint8; WND : HWND);
function MACEqual(mac1 : puint8; mac2 : puint8) : boolean;
function IPEqual(ip1 : puint8; ip2 : puint8) : boolean;
function newPacketContext : PPacketContext;
procedure freePacketContext(p_context : PPacketContext);
function calculateChecksum(p_data : puint16; p_len : uint16) : uint16;
function verifyChecksum(p_data : puint16; p_len : uint16) : boolean;
function sameSubnetIPv4(ip1, ip2, netmask : puint8) : boolean;
procedure contextMACSwitch(p_context : PPacketContext);
procedure contextIPv4Switch(p_context : PPacketContext);
-

Description

-

Functions and Procedures

- - - - - -
procedure copyMAC(src : puint8; dst : puint8);
- - - - - -
procedure copyIPv4(src : puint8; dst : puint8);
- - - - - -
function stringToMAC(str : pchar) : puint8;
- - - - - -
function stringToIPv4(str : pchar) : puint8;
- - - - - -
procedure writeMACAddress(mac : puint8; WND : HWND);
- - - - - -
procedure writeIPv4Address(ip : puint8; WND : HWND);
- - - - - -
procedure writeMACAddressEx(mac : puint8; WND : HWND);
- - - - - -
procedure writeIPv4AddressEx(ip : puint8; WND : HWND);
- - - - - -
function MACEqual(mac1 : puint8; mac2 : puint8) : boolean;
- - - - - -
function IPEqual(ip1 : puint8; ip2 : puint8) : boolean;
- - - - - -
function newPacketContext : PPacketContext;
- - - - - -
procedure freePacketContext(p_context : PPacketContext);
- - - - - -
function calculateChecksum(p_data : puint16; p_len : uint16) : uint16;
- - - - - -
function verifyChecksum(p_data : puint16; p_len : uint16) : boolean;
- - - - - -
function sameSubnetIPv4(ip1, ip2, netmask : puint8) : boolean;
- - - - - -
procedure contextMACSwitch(p_context : PPacketContext);
- - - - - -
procedure contextIPv4Switch(p_context : PPacketContext);
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: netutils + + + + + + + + +
+

Unit netutils

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Driver->Net->NetUtils - Helper Functions For Network Drivers. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
procedure copyMAC(src : puint8; dst : puint8);
procedure copyIPv4(src : puint8; dst : puint8);
function stringToMAC(str : pchar) : puint8;
function stringToIPv4(str : pchar) : puint8;
procedure writeMACAddress(mac : puint8; WND : HWND);
procedure writeIPv4Address(ip : puint8; WND : HWND);
procedure writeMACAddressEx(mac : puint8; WND : HWND);
procedure writeIPv4AddressEx(ip : puint8; WND : HWND);
function MACEqual(mac1 : puint8; mac2 : puint8) : boolean;
function IPEqual(ip1 : puint8; ip2 : puint8) : boolean;
function newPacketContext : PPacketContext;
procedure freePacketContext(p_context : PPacketContext);
function calculateChecksum(p_data : puint16; p_len : uint16) : uint16;
function verifyChecksum(p_data : puint16; p_len : uint16) : boolean;
function sameSubnetIPv4(ip1, ip2, netmask : puint8) : boolean;
procedure contextMACSwitch(p_context : PPacketContext);
procedure contextIPv4Switch(p_context : PPacketContext);
+

Description

+

Functions and Procedures

+ + + + + +
procedure copyMAC(src : puint8; dst : puint8);
+ + + + + +
procedure copyIPv4(src : puint8; dst : puint8);
+ + + + + +
function stringToMAC(str : pchar) : puint8;
+ + + + + +
function stringToIPv4(str : pchar) : puint8;
+ + + + + +
procedure writeMACAddress(mac : puint8; WND : HWND);
+ + + + + +
procedure writeIPv4Address(ip : puint8; WND : HWND);
+ + + + + +
procedure writeMACAddressEx(mac : puint8; WND : HWND);
+ + + + + +
procedure writeIPv4AddressEx(ip : puint8; WND : HWND);
+ + + + + +
function MACEqual(mac1 : puint8; mac2 : puint8) : boolean;
+ + + + + +
function IPEqual(ip1 : puint8; ip2 : puint8) : boolean;
+ + + + + +
function newPacketContext : PPacketContext;
+ + + + + +
procedure freePacketContext(p_context : PPacketContext);
+ + + + + +
function calculateChecksum(p_data : puint16; p_len : uint16) : uint16;
+ + + + + +
function verifyChecksum(p_data : puint16; p_len : uint16) : boolean;
+ + + + + +
function sameSubnetIPv4(ip1, ip2, netmask : puint8) : boolean;
+ + + + + +
procedure contextMACSwitch(p_context : PPacketContext);
+ + + + + +
procedure contextIPv4Switch(p_context : PPacketContext);
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/pasdoc.css b/doc/pasdoc.css index 47d10d66..1506d7a5 100644 --- a/doc/pasdoc.css +++ b/doc/pasdoc.css @@ -1,203 +1,203 @@ -/* - Copyright 1998-2018 PasDoc developers. - - This file is part of "PasDoc". - - "PasDoc" is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - "PasDoc" is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with "PasDoc"; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA - - ---------------------------------------------------------------------------- -*/ - -body, html, table.container { - margin: 0; - padding: 0; -} - -body { - font-family: Verdana,Arial; - color: black; - background-color: white; -} - -table.container { - width: 100%; - border-spacing: 0; -} -table.container td { - vertical-align: top; -} - -td.navigation { - width: 200px; - color: white; - background-color: #787878; - margin: 0; - /* padding-bottom is a little larger, to make navigation column have some - nice height even when td.content column is very small. */ - padding: 1em 1em 100px 1em; -} -td.navigation p { padding: 0; } -td.navigation h2 { margin-top: 0; } - -td.content { padding: 1em; } -td.content h1 { margin-top: 0; } - -img { border:0px; } - -hr { - border-bottom: medium none; - border-top: thin solid #888; -} - -a:link {color:#C91E0C; text-decoration: none; } -a:visited {color:#7E5C31; text-decoration: none; } -a:hover {text-decoration: underline; } -a:active {text-decoration: underline; } - -a.navigation:link { color: white; text-decoration: none; } -a.navigation:visited { color: white; text-decoration: none; } -a.navigation:hover { color: white; font-weight: bold; text-decoration: none; } -a.navigation:active { color: white; text-decoration: none; } - -a.bold:link {color:#C91E0C; text-decoration: none; font-weight:bold; } -a.bold:visited {color:#7E5C31; text-decoration: none; font-weight:bold; } -a.bold:hover {text-decoration: underline; font-weight:bold; } -a.bold:active {text-decoration: underline; font-weight:bold; } - -a.section {color: green; text-decoration: none; font-weight: bold; } -a.section:hover {color: green; text-decoration: underline; font-weight: bold; } - -ul.useslist a:link {color:#C91E0C; text-decoration: none; font-weight:bold; } -ul.useslist a:visited {color:#7E5C31; text-decoration: none; font-weight:bold; } -ul.useslist a:hover {text-decoration: underline; font-weight:bold; } -ul.useslist a:active {text-decoration: underline; font-weight:bold; } - -ul.hierarchy { list-style-type:none; } -ul.hierarchylevel { list-style-type:none; } - -p.unitlink a:link {color:#C91E0C; text-decoration: none; font-weight:bold; } -p.unitlink a:visited {color:#7E5C31; text-decoration: none; font-weight:bold; } -p.unitlink a:hover {text-decoration: underline; font-weight:bold; } -p.unitlink a:active {text-decoration: underline; font-weight:bold; } - -tr.list { background: #FFBF44; } -tr.list2 { background: #FFC982; } -tr.listheader { background: #C91E0C; color: white; } - -table.wide_list { border-spacing:2px; width:100%; } -table.wide_list td { vertical-align:top; padding:4px; } - -table.markerlegend { width:auto; } -table.markerlegend td.legendmarker { text-align:center; } - -.sections { background:white; } -.sections .one_section { - background:lightgray; - display: inline-block; - margin: 0.2em; - padding: 0.5em 1em; -} - -table.summary td.itemcode { width:100%; } -table.detail td.itemcode { width:100%; } - -td.itemname {white-space:nowrap; } -td.itemunit {white-space:nowrap; } -td.itemdesc { width:100%; } - -div.nodescription { color:red; } -dl.parameters dt { color:blue; } - -/* Various browsers have various default styles for
, - sometimes ugly for our purposes, so it's best to set things - like font-size and font-weight in out pasdoc.css explicitly. */ -h6.description_section { - /* font-size 100% means that it has the same font size as the - parent element, i.e. normal description text */ - font-size: 100%; - font-weight: bold; - /* By default browsers usually have some large margin-bottom and - margin-top for tags. In our case, margin-bottom is - unnecessary, we want to visually show that description_section - is closely related to content below. In this situation - (where the font size is just as a normal text), smaller bottom - margin seems to look good. */ - margin-top: 1.4em; - margin-bottom: 0em; -} - -/* Style applied to Pascal code in documentation - (e.g. produced by @longcode tag) } */ -span.pascal_string { color: #000080; } -span.pascal_keyword { font-weight: bolder; } -span.pascal_comment { color: #000080; font-style: italic; } -span.pascal_compiler_comment { color: #008000; } -span.pascal_numeric { } -span.pascal_hex { } - -p.hint_directive { color: red; } - -input#search_text { } -input#search_submit_button { } - -acronym.mispelling { background-color: #ffa; } - -/* Actually this reduces vertical space between *every* paragraph - inside list with @itemSpacing(compact). - While we would like to reduce this space only for the - top of 1st and bottom of last paragraph within each list item. - But, well, user probably will not do any paragraph breaks - within a list with @itemSpacing(compact) anyway, so it's - acceptable solution. */ -ul.compact_spacing p { margin-top: 0em; margin-bottom: 0em; } -ol.compact_spacing p { margin-top: 0em; margin-bottom: 0em; } -dl.compact_spacing p { margin-top: 0em; margin-bottom: 0em; } - -/* Style for table created by @table tags: - just some thin border. - - This way we have some borders around the cells - (so cells are visibly separated), but the border - "blends with the background" so it doesn't look too ugly. - Hopefully it looks satisfactory in most cases and for most - people. - - We add padding for cells, otherwise they look too close. - This is normal thing to do when border-collapse is set to - collapse (because this eliminates spacing between cells). -*/ -table.table_tag { border-collapse: collapse; } -table.table_tag td { border: 1pt solid gray; padding: 0.3em; } -table.table_tag th { border: 1pt solid gray; padding: 0.3em; } - -table.detail { - border: 1pt solid gray; - margin-top: 0.3em; - margin-bottom: 0.3em; -} - -.search-form { white-space: nowrap; } -.search-input, .search-button { display: inline-block; vertical-align: middle; } - -/* Do not make extra vertical space at the beginning/end of table cells. - We need ">" selector, to not change paragraphs inside lists inside - table cells. */ -table.table_tag td > p:first-child, -table.table_tag th > p:first-child, - td.itemdesc > p:first-child { margin-top: 0em; } - -table.table_tag td > p:last-child, -table.table_tag th > p:last-child, - td.itemdesc > p:last-child { margin-bottom: 0em; } +/* + Copyright 1998-2018 PasDoc developers. + + This file is part of "PasDoc". + + "PasDoc" is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + "PasDoc" is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with "PasDoc"; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + ---------------------------------------------------------------------------- +*/ + +body, html, table.container { + margin: 0; + padding: 0; +} + +body { + font-family: Verdana,Arial; + color: black; + background-color: white; +} + +table.container { + width: 100%; + border-spacing: 0; +} +table.container td { + vertical-align: top; +} + +td.navigation { + width: 200px; + color: white; + background-color: #787878; + margin: 0; + /* padding-bottom is a little larger, to make navigation column have some + nice height even when td.content column is very small. */ + padding: 1em 1em 100px 1em; +} +td.navigation p { padding: 0; } +td.navigation h2 { margin-top: 0; } + +td.content { padding: 1em; } +td.content h1 { margin-top: 0; } + +img { border:0px; } + +hr { + border-bottom: medium none; + border-top: thin solid #888; +} + +a:link {color:#C91E0C; text-decoration: none; } +a:visited {color:#7E5C31; text-decoration: none; } +a:hover {text-decoration: underline; } +a:active {text-decoration: underline; } + +a.navigation:link { color: white; text-decoration: none; } +a.navigation:visited { color: white; text-decoration: none; } +a.navigation:hover { color: white; font-weight: bold; text-decoration: none; } +a.navigation:active { color: white; text-decoration: none; } + +a.bold:link {color:#C91E0C; text-decoration: none; font-weight:bold; } +a.bold:visited {color:#7E5C31; text-decoration: none; font-weight:bold; } +a.bold:hover {text-decoration: underline; font-weight:bold; } +a.bold:active {text-decoration: underline; font-weight:bold; } + +a.section {color: green; text-decoration: none; font-weight: bold; } +a.section:hover {color: green; text-decoration: underline; font-weight: bold; } + +ul.useslist a:link {color:#C91E0C; text-decoration: none; font-weight:bold; } +ul.useslist a:visited {color:#7E5C31; text-decoration: none; font-weight:bold; } +ul.useslist a:hover {text-decoration: underline; font-weight:bold; } +ul.useslist a:active {text-decoration: underline; font-weight:bold; } + +ul.hierarchy { list-style-type:none; } +ul.hierarchylevel { list-style-type:none; } + +p.unitlink a:link {color:#C91E0C; text-decoration: none; font-weight:bold; } +p.unitlink a:visited {color:#7E5C31; text-decoration: none; font-weight:bold; } +p.unitlink a:hover {text-decoration: underline; font-weight:bold; } +p.unitlink a:active {text-decoration: underline; font-weight:bold; } + +tr.list { background: #FFBF44; } +tr.list2 { background: #FFC982; } +tr.listheader { background: #C91E0C; color: white; } + +table.wide_list { border-spacing:2px; width:100%; } +table.wide_list td { vertical-align:top; padding:4px; } + +table.markerlegend { width:auto; } +table.markerlegend td.legendmarker { text-align:center; } + +.sections { background:white; } +.sections .one_section { + background:lightgray; + display: inline-block; + margin: 0.2em; + padding: 0.5em 1em; +} + +table.summary td.itemcode { width:100%; } +table.detail td.itemcode { width:100%; } + +td.itemname {white-space:nowrap; } +td.itemunit {white-space:nowrap; } +td.itemdesc { width:100%; } + +div.nodescription { color:red; } +dl.parameters dt { color:blue; } + +/* Various browsers have various default styles for
, + sometimes ugly for our purposes, so it's best to set things + like font-size and font-weight in out pasdoc.css explicitly. */ +h6.description_section { + /* font-size 100% means that it has the same font size as the + parent element, i.e. normal description text */ + font-size: 100%; + font-weight: bold; + /* By default browsers usually have some large margin-bottom and + margin-top for tags. In our case, margin-bottom is + unnecessary, we want to visually show that description_section + is closely related to content below. In this situation + (where the font size is just as a normal text), smaller bottom + margin seems to look good. */ + margin-top: 1.4em; + margin-bottom: 0em; +} + +/* Style applied to Pascal code in documentation + (e.g. produced by @longcode tag) } */ +span.pascal_string { color: #000080; } +span.pascal_keyword { font-weight: bolder; } +span.pascal_comment { color: #000080; font-style: italic; } +span.pascal_compiler_comment { color: #008000; } +span.pascal_numeric { } +span.pascal_hex { } + +p.hint_directive { color: red; } + +input#search_text { } +input#search_submit_button { } + +acronym.mispelling { background-color: #ffa; } + +/* Actually this reduces vertical space between *every* paragraph + inside list with @itemSpacing(compact). + While we would like to reduce this space only for the + top of 1st and bottom of last paragraph within each list item. + But, well, user probably will not do any paragraph breaks + within a list with @itemSpacing(compact) anyway, so it's + acceptable solution. */ +ul.compact_spacing p { margin-top: 0em; margin-bottom: 0em; } +ol.compact_spacing p { margin-top: 0em; margin-bottom: 0em; } +dl.compact_spacing p { margin-top: 0em; margin-bottom: 0em; } + +/* Style for table created by @table tags: + just some thin border. + + This way we have some borders around the cells + (so cells are visibly separated), but the border + "blends with the background" so it doesn't look too ugly. + Hopefully it looks satisfactory in most cases and for most + people. + + We add padding for cells, otherwise they look too close. + This is normal thing to do when border-collapse is set to + collapse (because this eliminates spacing between cells). +*/ +table.table_tag { border-collapse: collapse; } +table.table_tag td { border: 1pt solid gray; padding: 0.3em; } +table.table_tag th { border: 1pt solid gray; padding: 0.3em; } + +table.detail { + border: 1pt solid gray; + margin-top: 0.3em; + margin-bottom: 0.3em; +} + +.search-form { white-space: nowrap; } +.search-input, .search-button { display: inline-block; vertical-align: middle; } + +/* Do not make extra vertical space at the beginning/end of table cells. + We need ">" selector, to not change paragraphs inside lists inside + table cells. */ +table.table_tag td > p:first-child, +table.table_tag th > p:first-child, + td.itemdesc > p:first-child { margin-top: 0em; } + +table.table_tag td > p:last-child, +table.table_tag th > p:last-child, + td.itemdesc > p:last-child { margin-bottom: 0em; } diff --git a/doc/pmemorymanager.TPhysicalMemoryEntry.html b/doc/pmemorymanager.TPhysicalMemoryEntry.html index 8dde9c3c..00f45745 100644 --- a/doc/pmemorymanager.TPhysicalMemoryEntry.html +++ b/doc/pmemorymanager.TPhysicalMemoryEntry.html @@ -1,87 +1,87 @@ - - - -Asuro: pmemorymanager: Packed Record TPhysicalMemoryEntry - - - - - - - - -
-

Packed Record TPhysicalMemoryEntry

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TPhysicalMemoryEntry = packed record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - -
Scanned: Boolean;
Present: Boolean;
Allocated: Boolean;
MappedTo: uint32;
-

Description

-

Fields

- - - - - -
Scanned: Boolean;
- - - - - -
Present: Boolean;
- - - - - -
Allocated: Boolean;
- - - - - -
MappedTo: uint32;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: pmemorymanager: Packed Record TPhysicalMemoryEntry + + + + + + + + +
+

Packed Record TPhysicalMemoryEntry

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TPhysicalMemoryEntry = packed record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + +
Scanned: Boolean;
Present: Boolean;
Allocated: Boolean;
MappedTo: uint32;
+

Description

+

Fields

+ + + + + +
Scanned: Boolean;
+ + + + + +
Present: Boolean;
+ + + + + +
Allocated: Boolean;
+ + + + + +
MappedTo: uint32;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/pmemorymanager.html b/doc/pmemorymanager.html index 23eee708..01141f44 100644 --- a/doc/pmemorymanager.html +++ b/doc/pmemorymanager.html @@ -1,125 +1,125 @@ - - - -Asuro: pmemorymanager - - - - - - - - -
-

Unit pmemorymanager

- -

Description

-

-PMemoryManager - Physical Memory Management - -

-

Uses

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - -
NameDescription
Packed Record TPhysicalMemoryEntry 
-

Functions and Procedures

- - - - - - - - - - - - - - - - -
procedure init;
function alloc_block(block : uint16; caller : uint32) : boolean;
procedure force_alloc_block(block : uint16; caller : uint32);
function new_block(caller : uint32) : uint16;
procedure free_block(block : uint16; caller : uint32);
-

Types

- - - - -
TPhysicalMemory = array[0..1023] of TPhysicalMemoryEntry;
-

Description

-

Functions and Procedures

- - - - - -
procedure init;
- - - - - -
function alloc_block(block : uint16; caller : uint32) : boolean;
- - - - - -
procedure force_alloc_block(block : uint16; caller : uint32);
- - - - - -
function new_block(caller : uint32) : uint16;
- - - - - -
procedure free_block(block : uint16; caller : uint32);
-

Types

- - - - - -
TPhysicalMemory = array[0..1023] of TPhysicalMemoryEntry;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: pmemorymanager + + + + + + + + +
+

Unit pmemorymanager

+ +

Description

+

+PMemoryManager - Physical Memory Management + +

+

Uses

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + +
NameDescription
Packed Record TPhysicalMemoryEntry 
+

Functions and Procedures

+ + + + + + + + + + + + + + + + +
procedure init;
function alloc_block(block : uint16; caller : uint32) : boolean;
procedure force_alloc_block(block : uint16; caller : uint32);
function new_block(caller : uint32) : uint16;
procedure free_block(block : uint16; caller : uint32);
+

Types

+ + + + +
TPhysicalMemory = array[0..1023] of TPhysicalMemoryEntry;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init;
+ + + + + +
function alloc_block(block : uint16; caller : uint32) : boolean;
+ + + + + +
procedure force_alloc_block(block : uint16; caller : uint32);
+ + + + + +
function new_block(caller : uint32) : uint16;
+ + + + + +
procedure free_block(block : uint16; caller : uint32);
+

Types

+ + + + + +
TPhysicalMemory = array[0..1023] of TPhysicalMemoryEntry;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/processloader.html b/doc/processloader.html index 0608638e..e15d7caf 100644 --- a/doc/processloader.html +++ b/doc/processloader.html @@ -1,43 +1,43 @@ - - - -Asuro: processloader - - - - - - - - -
-

Unit processloader

-
-
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Constants
Variables
-

Description

-

-ProcessLoader - Process Initialization & Tasking (stub). - -

-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: processloader + + + + + + + + +
+

Unit processloader

+
+
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Constants
Variables
+

Description

+

+ProcessLoader - Process Initialization & Tasking (stub). + +

+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/scheduler.TScheduler_Entry.html b/doc/scheduler.TScheduler_Entry.html index a77b8118..6de04042 100644 --- a/doc/scheduler.TScheduler_Entry.html +++ b/doc/scheduler.TScheduler_Entry.html @@ -1,89 +1,89 @@ - - - -Asuro: scheduler: Packed Record TScheduler_Entry - - - - - - - - -
-

Packed Record TScheduler_Entry

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TScheduler_Entry = packed record

-

Description

-

-EAX, EDX,

-

Overview

-

Fields

- - - - - - - - - - - - - -
ThreadID: uint32;
Priority: uint8;
Delta: uint32;
Next: void;
-

Description

-

Fields

- - - - - -
ThreadID: uint32;
- - - - - -
Priority: uint8;
- - - - - -
Delta: uint32;
- - - - - -
Next: void;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: scheduler: Packed Record TScheduler_Entry + + + + + + + + +
+

Packed Record TScheduler_Entry

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TScheduler_Entry = packed record

+

Description

+

+EAX, EDX,

+

Overview

+

Fields

+ + + + + + + + + + + + + +
ThreadID: uint32;
Priority: uint8;
Delta: uint32;
Next: void;
+

Description

+

Fields

+ + + + + +
ThreadID: uint32;
+ + + + + +
Priority: uint8;
+ + + + + +
Delta: uint32;
+ + + + + +
Next: void;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/scheduler.TTaskState.html b/doc/scheduler.TTaskState.html index a66113dd..b10e322b 100644 --- a/doc/scheduler.TTaskState.html +++ b/doc/scheduler.TTaskState.html @@ -1,41 +1,41 @@ - - - -Asuro: scheduler: Packed Record TTaskState - - - - - - - - -
-

Packed Record TTaskState

-
-
Hierarchy
Fields
Methods
Properties
-

Unit

- -

Declaration

-

-type TTaskState = packed record

-

Description


Generated by PasDoc 0.15.0. - -
+ + + +Asuro: scheduler: Packed Record TTaskState + + + + + + + + +
+

Packed Record TTaskState

+
+
Hierarchy
Fields
Methods
Properties
+

Unit

+ +

Declaration

+

+type TTaskState = packed record

+

Description


Generated by PasDoc 0.15.0. + +
diff --git a/doc/scheduler.html b/doc/scheduler.html index c8f2c10f..1c4df0de 100644 --- a/doc/scheduler.html +++ b/doc/scheduler.html @@ -1,127 +1,127 @@ - - - -Asuro: scheduler - - - - - - - - -
-

Unit scheduler

- -

Description

-

-Scheduler - Schedules Context Switches. - -

-

Uses

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - - - - - -
NameDescription
Packed Record TTaskState 
Packed Record TScheduler_EntryEAX, EDX,
-

Functions and Procedures

- - - - - - - -
procedure init;
procedure add_task(priority : uint8);
-

Types

- - - - -
PScheduler_Entry = ˆTScheduler_Entry;
-

Constants

- - - - -
Quantum = 64;
-

Variables

- - - - -
Active: Boolean;
-

Description

-

Functions and Procedures

- - - - - -
procedure init;
- - - - - -
procedure add_task(priority : uint8);
-

Types

- - - - - -
PScheduler_Entry = ˆTScheduler_Entry;
-

Constants

- - - - - -
Quantum = 64;
-

Variables

- - - - - -
Active: Boolean;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: scheduler + + + + + + + + +
+

Unit scheduler

+ +

Description

+

+Scheduler - Schedules Context Switches. + +

+

Uses

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + + + + + +
NameDescription
Packed Record TTaskState 
Packed Record TScheduler_EntryEAX, EDX,
+

Functions and Procedures

+ + + + + + + +
procedure init;
procedure add_task(priority : uint8);
+

Types

+ + + + +
PScheduler_Entry = ˆTScheduler_Entry;
+

Constants

+ + + + +
Quantum = 64;
+

Variables

+ + + + +
Active: Boolean;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init;
+ + + + + +
procedure add_task(priority : uint8);
+

Types

+ + + + + +
PScheduler_Entry = ˆTScheduler_Entry;
+

Constants

+ + + + + +
Quantum = 64;
+

Variables

+ + + + + +
Active: Boolean;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/serial.html b/doc/serial.html index 7d2395f8..eb41c647 100644 --- a/doc/serial.html +++ b/doc/serial.html @@ -1,134 +1,134 @@ - - - -Asuro: serial - - - - - - - - -
-

Unit serial

-
-
Classes, Interfaces, Objects and Records
Types
Variables
-

Description

-

-Driver->Interface->Serial - Serial Driver. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - - - - - - - - - - -
procedure init();
function receive(PORT : uint16; timeout : uint32) : uint8;
function send(PORT : uint16; data : uint8; timeout : uint32) : boolean;
function sendString(str : pchar) : boolean;
-

Constants

- - - - - - - - - - - - - -
COM1 = $3F8;
COM2 = $2F8;
COM3 = $3E8;
COM4 = $2E8;
-

Description

-

Functions and Procedures

- - - - - -
procedure init();
- - - - - -
function receive(PORT : uint16; timeout : uint32) : uint8;
- - - - - -
function send(PORT : uint16; data : uint8; timeout : uint32) : boolean;
- - - - - -
function sendString(str : pchar) : boolean;
-

Constants

- - - - - -
COM1 = $3F8;
- - - - - -
COM2 = $2F8;
- - - - - -
COM3 = $3E8;
- - - - - -
COM4 = $2E8;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: serial + + + + + + + + +
+

Unit serial

+
+
Classes, Interfaces, Objects and Records
Types
Variables
+

Description

+

+Driver->Interface->Serial - Serial Driver. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + + + + + + + + + + +
procedure init();
function receive(PORT : uint16; timeout : uint32) : uint8;
function send(PORT : uint16; data : uint8; timeout : uint32) : boolean;
function sendString(str : pchar) : boolean;
+

Constants

+ + + + + + + + + + + + + +
COM1 = $3F8;
COM2 = $2F8;
COM3 = $3E8;
COM4 = $2E8;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init();
+ + + + + +
function receive(PORT : uint16; timeout : uint32) : uint8;
+ + + + + +
function send(PORT : uint16; data : uint8; timeout : uint32) : boolean;
+ + + + + +
function sendString(str : pchar) : boolean;
+

Constants

+ + + + + +
COM1 = $3F8;
+ + + + + +
COM2 = $2F8;
+ + + + + +
COM3 = $3E8;
+ + + + + +
COM4 = $2E8;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/shell.html b/doc/shell.html index 57dacec4..f502d420 100644 --- a/doc/shell.html +++ b/doc/shell.html @@ -1,90 +1,90 @@ - - - -Asuro: shell - - - - - - - - -
-

Unit shell

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Prog->Shell - Main Desktop UI. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - - - - - - - - - - -
procedure init();
function getTaskbarColorsPtr : puint32;
function getExploreColorsPtr : puint32;
function getDesktopColorsPtr : puint32;
-

Description

-

Functions and Procedures

- - - - - -
procedure init();
- - - - - -
function getTaskbarColorsPtr : puint32;
- - - - - -
function getExploreColorsPtr : puint32;
- - - - - -
function getDesktopColorsPtr : puint32;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: shell + + + + + + + + +
+

Unit shell

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Prog->Shell - Main Desktop UI. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + + + + + + + + + + +
procedure init();
function getTaskbarColorsPtr : puint32;
function getExploreColorsPtr : puint32;
function getDesktopColorsPtr : puint32;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init();
+ + + + + +
function getTaskbarColorsPtr : puint32;
+ + + + + +
function getExploreColorsPtr : puint32;
+ + + + + +
function getDesktopColorsPtr : puint32;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/splash.html b/doc/splash.html index 266dfe01..1f0b6eaa 100644 --- a/doc/splash.html +++ b/doc/splash.html @@ -1,60 +1,60 @@ - - - -Asuro: splash - - - - - - - - -
-

Unit splash

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Prog->Splash - Asuro Splash Screen. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure init();
-

Description

-

Functions and Procedures

- - - - - -
procedure init();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: splash + + + + + + + + +
+

Unit splash

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Prog->Splash - Asuro Splash Screen. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure init();
+

Description

+

Functions and Procedures

+ + + + + +
procedure init();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/strings.html b/doc/strings.html index aa3acad9..4fd46f93 100644 --- a/doc/strings.html +++ b/doc/strings.html @@ -1,170 +1,170 @@ - - - -Asuro: strings - - - - - - - - -
-

Unit strings

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Include->Strings - String Manipulation. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function stringToUpper(str : pchar) : pchar;
function stringToLower(str : pchar) : pchar;
function stringEquals(str1, str2 : pchar) : boolean;
function stringCopy(str : pchar) : pchar;
function stringNew(size : uint32) : pchar;
function stringSize(str : pchar) : uint32;
function stringConcat(str1, str2 : pchar) : pchar;
function stringContains(str : pchar; sub : pchar) : boolean;
function stringToInt(str : pchar) : uint32;
function hexStringToInt(str : pchar) : uint32;
function intToString(i : uint32) : pchar;
function boolToString(b : boolean; ext : boolean) : pchar;
-

Description

-

Functions and Procedures

- - - - - -
function stringToUpper(str : pchar) : pchar;
- - - - - -
function stringToLower(str : pchar) : pchar;
- - - - - -
function stringEquals(str1, str2 : pchar) : boolean;
- - - - - -
function stringCopy(str : pchar) : pchar;
- - - - - -
function stringNew(size : uint32) : pchar;
- - - - - -
function stringSize(str : pchar) : uint32;
- - - - - -
function stringConcat(str1, str2 : pchar) : pchar;
- - - - - -
function stringContains(str : pchar; sub : pchar) : boolean;
- - - - - -
function stringToInt(str : pchar) : uint32;
- - - - - -
function hexStringToInt(str : pchar) : uint32;
- - - - - -
function intToString(i : uint32) : pchar;
- - - - - -
function boolToString(b : boolean; ext : boolean) : pchar;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: strings + + + + + + + + +
+

Unit strings

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Include->Strings - String Manipulation. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
function stringToUpper(str : pchar) : pchar;
function stringToLower(str : pchar) : pchar;
function stringEquals(str1, str2 : pchar) : boolean;
function stringCopy(str : pchar) : pchar;
function stringNew(size : uint32) : pchar;
function stringSize(str : pchar) : uint32;
function stringConcat(str1, str2 : pchar) : pchar;
function stringContains(str : pchar; sub : pchar) : boolean;
function stringToInt(str : pchar) : uint32;
function hexStringToInt(str : pchar) : uint32;
function intToString(i : uint32) : pchar;
function boolToString(b : boolean; ext : boolean) : pchar;
+

Description

+

Functions and Procedures

+ + + + + +
function stringToUpper(str : pchar) : pchar;
+ + + + + +
function stringToLower(str : pchar) : pchar;
+ + + + + +
function stringEquals(str1, str2 : pchar) : boolean;
+ + + + + +
function stringCopy(str : pchar) : pchar;
+ + + + + +
function stringNew(size : uint32) : pchar;
+ + + + + +
function stringSize(str : pchar) : uint32;
+ + + + + +
function stringConcat(str1, str2 : pchar) : pchar;
+ + + + + +
function stringContains(str : pchar; sub : pchar) : boolean;
+ + + + + +
function stringToInt(str : pchar) : uint32;
+ + + + + +
function hexStringToInt(str : pchar) : uint32;
+ + + + + +
function intToString(i : uint32) : pchar;
+ + + + + +
function boolToString(b : boolean; ext : boolean) : pchar;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/system.html b/doc/system.html index 78e3328b..9612859e 100644 --- a/doc/system.html +++ b/doc/system.html @@ -1,770 +1,770 @@ - - - -Asuro: system - - - - - - - - - + + +
-

Unit system

-
-
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Variables
-

Description

-

-Include->System - Base Types & Structures. - -

-

Overview

-

Types

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + +Asuro: system + + + + + + + + +
cardinal = 0..$FFFFFFFF;
hresult = cardinal;
dword = cardinal;
integer = longint;
pchar = ˆchar;
uInt8 = BYTE;
uInt16 = WORD;
uInt32 = DWORD;
uInt64 = QWORD;
sInt8 = shortint;
sInt16 = smallint;
sInt32 = integer;
sInt64 = longint;
Float = Single;
PuByte = ˆByte;
PuInt8 = PuByte;
PuInt16 = ˆuInt16;
PuInt32 = ˆuInt32;
PuInt64 = ˆuInt64;
PsInt8 = ˆsInt8;
PsInt16 = ˆsInt16;
PsInt32 = ˆsInt32;
PsInt64 = ˆsInt64;
PFloat = ˆFloat;
PDouble = ˆDouble;
Void = ˆuInt32;
HWND = uint32;
UBit1 = 0..(1 shl 01) - 1;
UBit2 = 0..(1 shl 02) - 1;
UBit3 = 0..(1 shl 03) - 1;
UBit4 = 0..(1 shl 04) - 1;
UBit5 = 0..(1 shl 05) - 1;
UBit6 = 0..(1 shl 06) - 1;
UBit7 = 0..(1 shl 07) - 1;
UBit9 = 0..(1 shl 09) - 1;
UBit10 = 0..(1 shl 10) - 1;
UBit11 = 0..(1 shl 11) - 1;
UBit12 = 0..(1 shl 12) - 1;
UBit13 = 0..(1 shl 13) - 1;
UBit14 = 0..(1 shl 14) - 1;
UBit15 = 0..(1 shl 15) - 1;
UBit16 = 0..(1 shl 16) - 1;
UBit17 = 0..(1 shl 17) - 1;
UBit18 = 0..(1 shl 18) - 1;
UBit19 = 0..(1 shl 19) - 1;
UBit20 = 0..(1 shl 20) - 1;
UBit21 = 0..(1 shl 21) - 1;
UBit22 = 0..(1 shl 22) - 1;
UBit23 = 0..(1 shl 23) - 1;
UBit24 = 0..(1 shl 24) - 1;
UBit25 = 0..(1 shl 25) - 1;
UBit26 = 0..(1 shl 26) - 1;
UBit27 = 0..(1 shl 27) - 1;
UBit28 = 0..(1 shl 28) - 1;
UBit30 = 0..(1 shl 30) - 1;
UBit31 = 0..(1 shl 31) - 1;
+

Unit system

+
+
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Variables
+

Description

+

+Include->System - Base Types & Structures. + +

+

Overview

+

Types

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + end; + + + + + + + + + + + - - - - - + end; + + + + + - - - - -
cardinal = 0..$FFFFFFFF;
hresult = cardinal;
dword = cardinal;
integer = longint;
pchar = ˆchar;
uInt8 = BYTE;
uInt16 = WORD;
uInt32 = DWORD;
uInt64 = QWORD;
sInt8 = shortint;
sInt16 = smallint;
sInt32 = integer;
sInt64 = longint;
Float = Single;
PuByte = ˆByte;
PuInt8 = PuByte;
PuInt16 = ˆuInt16;
PuInt32 = ˆuInt32;
PuInt64 = ˆuInt64;
PsInt8 = ˆsInt8;
PsInt16 = ˆsInt16;
PsInt32 = ˆsInt32;
PsInt64 = ˆsInt64;
PFloat = ˆFloat;
PDouble = ˆDouble;
Void = ˆuInt32;
HWND = uint32;
UBit1 = 0..(1 shl 01) - 1;
UBit2 = 0..(1 shl 02) - 1;
UBit3 = 0..(1 shl 03) - 1;
UBit4 = 0..(1 shl 04) - 1;
UBit5 = 0..(1 shl 05) - 1;
UBit6 = 0..(1 shl 06) - 1;
UBit7 = 0..(1 shl 07) - 1;
UBit9 = 0..(1 shl 09) - 1;
UBit10 = 0..(1 shl 10) - 1;
UBit11 = 0..(1 shl 11) - 1;
UBit12 = 0..(1 shl 12) - 1;
UBit13 = 0..(1 shl 13) - 1;
UBit14 = 0..(1 shl 14) - 1;
UBit15 = 0..(1 shl 15) - 1;
UBit16 = 0..(1 shl 16) - 1;
UBit17 = 0..(1 shl 17) - 1;
UBit18 = 0..(1 shl 18) - 1;
UBit19 = 0..(1 shl 19) - 1;
UBit20 = 0..(1 shl 20) - 1;
UBit21 = 0..(1 shl 21) - 1;
UBit22 = 0..(1 shl 22) - 1;
UBit23 = 0..(1 shl 23) - 1;
UBit24 = 0..(1 shl 24) - 1;
UBit25 = 0..(1 shl 25) - 1;
UBit26 = 0..(1 shl 26) - 1;
UBit27 = 0..(1 shl 27) - 1;
UBit28 = 0..(1 shl 28) - 1;
UBit30 = 0..(1 shl 30) - 1;
UBit31 = 0..(1 shl 31) - 1;
TBitMask = bitpacked record b0,b1,b2,b3,b4,b5,b6,b7 : Boolean; - end;
PBitMask = ˆTBitMask;
TMask = bitpacked array[0..7] of Boolean;
PMask = ˆTMask;
PBitMask = ˆTBitMask;
TMask = bitpacked array[0..7] of Boolean;
PMask = ˆTMask;
TRGB565 = bitpacked record B : UBit5; G : UBit6; R : UBit5 - end;
PRGB565 = ˆTRGB565;
PRGB565 = ˆTRGB565;
TRGB565Pair = bitpacked record Background : TRGB565; Foreground : TRGB565; - end;
PRGB565Pair = ˆTRGB565Pair;
-

Constants

- - - - - - - - - - - - - - - - -
KERNEL_VIRTUAL_BASE = $C0000000;
KERNEL_PAGE_NUMBER = KERNEL_VIRTUAL_BASE SHR 22;
BSOD_ENABLE = true;
TRACER_ENABLE = true;
CONSOLE_SLOW_REDRAW = false;
-

Description

-

Types

- - - - - -
cardinal = 0..$FFFFFFFF;
-

-Redraws the Window manager after every character, but slows performance. internal types

-
- - - - - -
hresult = cardinal;
- - - - - -
dword = cardinal;
- - - - - -
integer = longint;
- - - - - -
pchar = ˆchar;
- - - - - -
uInt8 = BYTE;
-

-Standard Types

-
- - - - - -
uInt16 = WORD;
- - - - - -
uInt32 = DWORD;
- - - - - -
uInt64 = QWORD;
- - - - - -
sInt8 = shortint;
- - - - - -
sInt16 = smallint;
- - - - - -
sInt32 = integer;
- - - - - -
sInt64 = longint;
- - - - - -
Float = Single;
- - - - - -
PuByte = ˆByte;
-

-Pointer Types

-
- - - - - -
PuInt8 = PuByte;
- - - - - -
PuInt16 = ˆuInt16;
- - - - - -
PuInt32 = ˆuInt32;
- - - - - -
PuInt64 = ˆuInt64;
- - - - - -
PsInt8 = ˆsInt8;
- - - - - -
PsInt16 = ˆsInt16;
- - - - - -
PsInt32 = ˆsInt32;
- - - - - -
PsInt64 = ˆsInt64;
- - - - - -
PFloat = ˆFloat;
- - - - - -
PDouble = ˆDouble;
- - - - - -
Void = ˆuInt32;
- - - - - -
HWND = uint32;
- - - - - -
UBit1 = 0..(1 shl 01) - 1;
-

-Alternate Types

-
- - - - - -
UBit2 = 0..(1 shl 02) - 1;
- - - - - -
UBit3 = 0..(1 shl 03) - 1;
- - - - - -
UBit4 = 0..(1 shl 04) - 1;
- - - - - -
UBit5 = 0..(1 shl 05) - 1;
- - - - - -
UBit6 = 0..(1 shl 06) - 1;
- - - - - -
UBit7 = 0..(1 shl 07) - 1;
- - - - - -
UBit9 = 0..(1 shl 09) - 1;
- - - - - -
UBit10 = 0..(1 shl 10) - 1;
- - - - - -
UBit11 = 0..(1 shl 11) - 1;
- - - - - -
UBit12 = 0..(1 shl 12) - 1;
- - - - - -
UBit13 = 0..(1 shl 13) - 1;
- - - - - -
UBit14 = 0..(1 shl 14) - 1;
- - - - - -
UBit15 = 0..(1 shl 15) - 1;
- - - - - -
UBit16 = 0..(1 shl 16) - 1;
- - - - - -
UBit17 = 0..(1 shl 17) - 1;
- - - - - -
UBit18 = 0..(1 shl 18) - 1;
- - - - - -
UBit19 = 0..(1 shl 19) - 1;
- - - - - -
UBit20 = 0..(1 shl 20) - 1;
- - - - - -
UBit21 = 0..(1 shl 21) - 1;
- - - - - -
UBit22 = 0..(1 shl 22) - 1;
- - - - - -
UBit23 = 0..(1 shl 23) - 1;
- - - - - -
UBit24 = 0..(1 shl 24) - 1;
- - - - - -
UBit25 = 0..(1 shl 25) - 1;
- - - - - -
UBit26 = 0..(1 shl 26) - 1;
- - - - - -
UBit27 = 0..(1 shl 27) - 1;
- - - - - -
UBit28 = 0..(1 shl 28) - 1;
- - - - - -
UBit30 = 0..(1 shl 30) - 1;
- - - - - -
UBit31 = 0..(1 shl 31) - 1;
- - + end; + + + + +
PRGB565Pair = ˆTRGB565Pair;
+

Constants

+ + + + + + + + + + + + + + + + +
KERNEL_VIRTUAL_BASE = $C0000000;
KERNEL_PAGE_NUMBER = KERNEL_VIRTUAL_BASE SHR 22;
BSOD_ENABLE = true;
TRACER_ENABLE = true;
CONSOLE_SLOW_REDRAW = false;
+

Description

+

Types

+ + + + + +
cardinal = 0..$FFFFFFFF;
+

+Redraws the Window manager after every character, but slows performance. internal types

+
+ + + + + +
hresult = cardinal;
+ + + + + +
dword = cardinal;
+ + + + + +
integer = longint;
+ + + + + +
pchar = ˆchar;
+ + + + + +
uInt8 = BYTE;
+

+Standard Types

+
+ + + + + +
uInt16 = WORD;
+ + + + + +
uInt32 = DWORD;
+ + + + + +
uInt64 = QWORD;
+ + + + + +
sInt8 = shortint;
+ + + + + +
sInt16 = smallint;
+ + + + + +
sInt32 = integer;
+ + + + + +
sInt64 = longint;
+ + + + + +
Float = Single;
+ + + + + +
PuByte = ˆByte;
+

+Pointer Types

+
+ + + + + +
PuInt8 = PuByte;
+ + + + + +
PuInt16 = ˆuInt16;
+ + + + + +
PuInt32 = ˆuInt32;
+ + + + + +
PuInt64 = ˆuInt64;
+ + + + + +
PsInt8 = ˆsInt8;
+ + + + + +
PsInt16 = ˆsInt16;
+ + + + + +
PsInt32 = ˆsInt32;
+ + + + + +
PsInt64 = ˆsInt64;
+ + + + + +
PFloat = ˆFloat;
+ + + + + +
PDouble = ˆDouble;
+ + + + + +
Void = ˆuInt32;
+ + + + + +
HWND = uint32;
+ + + + + +
UBit1 = 0..(1 shl 01) - 1;
+

+Alternate Types

+
+ + + + + +
UBit2 = 0..(1 shl 02) - 1;
+ + + + + +
UBit3 = 0..(1 shl 03) - 1;
+ + + + + +
UBit4 = 0..(1 shl 04) - 1;
+ + + + + +
UBit5 = 0..(1 shl 05) - 1;
+ + + + + +
UBit6 = 0..(1 shl 06) - 1;
+ + + + + +
UBit7 = 0..(1 shl 07) - 1;
+ + + + + +
UBit9 = 0..(1 shl 09) - 1;
+ + + + + +
UBit10 = 0..(1 shl 10) - 1;
+ + + + + +
UBit11 = 0..(1 shl 11) - 1;
+ + + + + +
UBit12 = 0..(1 shl 12) - 1;
+ + + + + +
UBit13 = 0..(1 shl 13) - 1;
+ + + + + +
UBit14 = 0..(1 shl 14) - 1;
+ + + + + +
UBit15 = 0..(1 shl 15) - 1;
+ + + + + +
UBit16 = 0..(1 shl 16) - 1;
+ + + + + +
UBit17 = 0..(1 shl 17) - 1;
+ + + + + +
UBit18 = 0..(1 shl 18) - 1;
+ + + + + +
UBit19 = 0..(1 shl 19) - 1;
+ + + + + +
UBit20 = 0..(1 shl 20) - 1;
+ + + + + +
UBit21 = 0..(1 shl 21) - 1;
+ + + + + +
UBit22 = 0..(1 shl 22) - 1;
+ + + + + +
UBit23 = 0..(1 shl 23) - 1;
+ + + + + +
UBit24 = 0..(1 shl 24) - 1;
+ + + + + +
UBit25 = 0..(1 shl 25) - 1;
+ + + + + +
UBit26 = 0..(1 shl 26) - 1;
+ + + + + +
UBit27 = 0..(1 shl 27) - 1;
+ + + + + +
UBit28 = 0..(1 shl 28) - 1;
+ + + + + +
UBit30 = 0..(1 shl 30) - 1;
+ + + + + +
UBit31 = 0..(1 shl 31) - 1;
+ + - - -
TBitMask = bitpacked record b0,b1,b2,b3,b4,b5,b6,b7 : Boolean; - end;
- - - - - -
PBitMask = ˆTBitMask;
- - - - - -
TMask = bitpacked array[0..7] of Boolean;
- - - - - -
PMask = ˆTMask;
- - + end; + + +
+ + + + + +
PBitMask = ˆTBitMask;
+ + + + + +
TMask = bitpacked array[0..7] of Boolean;
+ + + + + +
PMask = ˆTMask;
+ + - - -
TRGB565 = bitpacked record B : UBit5; G : UBit6; R : UBit5 - end;
- - - - - -
PRGB565 = ˆTRGB565;
- - + end; + + +
+ + + + + +
PRGB565 = ˆTRGB565;
+ + - - -
TRGB565Pair = bitpacked record Background : TRGB565; Foreground : TRGB565; - end;
- - - - - -
PRGB565Pair = ˆTRGB565Pair;
-

Constants

- - - - - -
KERNEL_VIRTUAL_BASE = $C0000000;
- - - - - -
KERNEL_PAGE_NUMBER = KERNEL_VIRTUAL_BASE SHR 22;
- - - - - -
BSOD_ENABLE = true;
- - - - - -
TRACER_ENABLE = true;
- - - - - -
CONSOLE_SLOW_REDRAW = false;
-

Authors

- -
Generated by PasDoc 0.15.0. - -
+ end;
+ + + + + +
PRGB565Pair = ˆTRGB565Pair;
+

Constants

+ + + + + +
KERNEL_VIRTUAL_BASE = $C0000000;
+ + + + + +
KERNEL_PAGE_NUMBER = KERNEL_VIRTUAL_BASE SHR 22;
+ + + + + +
BSOD_ENABLE = true;
+ + + + + +
TRACER_ENABLE = true;
+ + + + + +
CONSOLE_SLOW_REDRAW = false;
+

Authors

+ +
Generated by PasDoc 0.15.0. + + diff --git a/doc/tcp.html b/doc/tcp.html index cfca2107..a5a7ae89 100644 --- a/doc/tcp.html +++ b/doc/tcp.html @@ -1,44 +1,44 @@ - - - -Asuro: tcp - - - - - - - - -
-

Unit tcp

-
-
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Constants
Variables
-

Description

-

-Driver->Net->L4->TCP - Transmission Control Protocol Driver. - -

-

Uses

-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: tcp + + + + + + + + +
+

Unit tcp

+
+
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Constants
Variables
+

Description

+

+Driver->Net->L4->TCP - Transmission Control Protocol Driver. + +

+

Uses

+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/terminal.TCommand.html b/doc/terminal.TCommand.html index 1e35f502..6670e207 100644 --- a/doc/terminal.TCommand.html +++ b/doc/terminal.TCommand.html @@ -1,97 +1,97 @@ - - - -Asuro: terminal: Record TCommand - - - - - - - - -
-

Record TCommand

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TCommand = record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - - - - -
registered: boolean;
hidden: boolean;
command: pchar;
method: TCommandMethod;
description: pchar;
-

Description

-

Fields

- - - - - -
registered: boolean;
- - - - - -
hidden: boolean;
- - - - - -
command: pchar;
- - - - - -
method: TCommandMethod;
- - - - - -
description: pchar;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: terminal: Record TCommand + + + + + + + + +
+

Record TCommand

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TCommand = record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + + + + +
registered: boolean;
hidden: boolean;
command: pchar;
method: TCommandMethod;
description: pchar;
+

Description

+

Fields

+ + + + + +
registered: boolean;
+ + + + + +
hidden: boolean;
+ + + + + +
command: pchar;
+ + + + + +
method: TCommandMethod;
+ + + + + +
description: pchar;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/terminal.THistory.html b/doc/terminal.THistory.html index 524ef8e8..a02cace4 100644 --- a/doc/terminal.THistory.html +++ b/doc/terminal.THistory.html @@ -1,67 +1,67 @@ - - - -Asuro: terminal: Record THistory - - - - - - - - -
-

Record THistory

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type THistory = record

-

Description

Overview

-

Fields

- - - - - - - -
Command: pchar;
Next: PHistory;
-

Description

-

Fields

- - - - - -
Command: pchar;
- - - - - -
Next: PHistory;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: terminal: Record THistory + + + + + + + + +
+

Record THistory

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type THistory = record

+

Description

Overview

+

Fields

+ + + + + + + +
Command: pchar;
Next: PHistory;
+

Description

+

Fields

+ + + + + +
Command: pchar;
+ + + + + +
Next: PHistory;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/terminal.TParamList.html b/doc/terminal.TParamList.html index 6852eb32..96653a4a 100644 --- a/doc/terminal.TParamList.html +++ b/doc/terminal.TParamList.html @@ -1,67 +1,67 @@ - - - -Asuro: terminal: Record TParamList - - - - - - - - -
-

Record TParamList

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TParamList = record

-

Description

Overview

-

Fields

- - - - - - - -
Param: pchar;
Next: PParamList;
-

Description

-

Fields

- - - - - -
Param: pchar;
- - - - - -
Next: PParamList;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: terminal: Record TParamList + + + + + + + + +
+

Record TParamList

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TParamList = record

+

Description

Overview

+

Fields

+ + + + + + + +
Param: pchar;
Next: PParamList;
+

Description

+

Fields

+ + + + + +
Param: pchar;
+ + + + + +
Next: PParamList;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/terminal.html b/doc/terminal.html index 449c1a6a..31ce5235 100644 --- a/doc/terminal.html +++ b/doc/terminal.html @@ -1,327 +1,327 @@ - - - -Asuro: terminal - - - - - - - - -
-

Unit terminal

- -

Description

-

-Prog->Terminal - Interactive Command Line Environment. - -

-

Uses

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - - - - - - - - - -
NameDescription
Record TParamList 
Record THistory 
Record TCommand 
-

Functions and Procedures

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
procedure run;
procedure init;
procedure registerCommand(command : pchar; method : TCommandMethod; description : pchar);
procedure registerCommandEx(command : pchar; method : TCommandMethod; description : pchar; hide : boolean);
function getParams(buf : TCommandBuffer) : PParamList;
function paramCount(params : PParamList) : uint32;
function getParam(index : uint32; params : PParamList) : pchar;
procedure setWorkingDirectory(str : pchar);
function getWorkingDirectory : pchar;
function getTerminalHWND : uint32;
function halt(id : uint32; cb : THaltCallback) : boolean;
function done(id : uint32) : boolean;
-

Types

- - - - - - - - - - - - - - - - -
THaltCallback = procedure();
PParamList = ˆTParamList;
PHistory = ˆTHistory;
TCommandBuffer = array[0..1023] of byte;
TCommandMethod = procedure(params : PParamList);
-

Variables

- - - - - - - - - - - - - - - - - - - - - - - - - -
buffer: TCommandBuffer;
History: PHistory;
bIndex: uint32 = 0;
Commands: array[0..65534] of TCommand;
Working_Directory: PChar = '/';
Halted: Boolean = false;
HaltID: uint32 = 0;
HaltCB: THaltCallback = nil;
-

Description

-

Functions and Procedures

- - - - - -
procedure run;
- - - - - -
procedure init;
- - - - - -
procedure registerCommand(command : pchar; method : TCommandMethod; description : pchar);
- - - - - -
procedure registerCommandEx(command : pchar; method : TCommandMethod; description : pchar; hide : boolean);
- - - - - -
function getParams(buf : TCommandBuffer) : PParamList;
- - - - - -
function paramCount(params : PParamList) : uint32;
- - - - - -
function getParam(index : uint32; params : PParamList) : pchar;
- - - - - -
procedure setWorkingDirectory(str : pchar);
- - - - - -
function getWorkingDirectory : pchar;
- - - - - -
function getTerminalHWND : uint32;
- - - - - -
function halt(id : uint32; cb : THaltCallback) : boolean;
- - - - - -
function done(id : uint32) : boolean;
-

Types

- - - - - -
THaltCallback = procedure();
- - - - - -
PParamList = ˆTParamList;
- - - - - -
PHistory = ˆTHistory;
- - - - - -
TCommandBuffer = array[0..1023] of byte;
- - - - - -
TCommandMethod = procedure(params : PParamList);
-

Variables

- - - - - -
buffer: TCommandBuffer;
- - - - - -
History: PHistory;
- - - - - -
bIndex: uint32 = 0;
- - - - - -
Commands: array[0..65534] of TCommand;
- - - - - -
Working_Directory: PChar = '/';
- - - - - -
Halted: Boolean = false;
- - - - - -
HaltID: uint32 = 0;
- - - - - -
HaltCB: THaltCallback = nil;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: terminal + + + + + + + + +
+

Unit terminal

+ +

Description

+

+Prog->Terminal - Interactive Command Line Environment. + +

+

Uses

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + + + + + + + + + +
NameDescription
Record TParamList 
Record THistory 
Record TCommand 
+

Functions and Procedures

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
procedure run;
procedure init;
procedure registerCommand(command : pchar; method : TCommandMethod; description : pchar);
procedure registerCommandEx(command : pchar; method : TCommandMethod; description : pchar; hide : boolean);
function getParams(buf : TCommandBuffer) : PParamList;
function paramCount(params : PParamList) : uint32;
function getParam(index : uint32; params : PParamList) : pchar;
procedure setWorkingDirectory(str : pchar);
function getWorkingDirectory : pchar;
function getTerminalHWND : uint32;
function halt(id : uint32; cb : THaltCallback) : boolean;
function done(id : uint32) : boolean;
+

Types

+ + + + + + + + + + + + + + + + +
THaltCallback = procedure();
PParamList = ˆTParamList;
PHistory = ˆTHistory;
TCommandBuffer = array[0..1023] of byte;
TCommandMethod = procedure(params : PParamList);
+

Variables

+ + + + + + + + + + + + + + + + + + + + + + + + + +
buffer: TCommandBuffer;
History: PHistory;
bIndex: uint32 = 0;
Commands: array[0..65534] of TCommand;
Working_Directory: PChar = '/';
Halted: Boolean = false;
HaltID: uint32 = 0;
HaltCB: THaltCallback = nil;
+

Description

+

Functions and Procedures

+ + + + + +
procedure run;
+ + + + + +
procedure init;
+ + + + + +
procedure registerCommand(command : pchar; method : TCommandMethod; description : pchar);
+ + + + + +
procedure registerCommandEx(command : pchar; method : TCommandMethod; description : pchar; hide : boolean);
+ + + + + +
function getParams(buf : TCommandBuffer) : PParamList;
+ + + + + +
function paramCount(params : PParamList) : uint32;
+ + + + + +
function getParam(index : uint32; params : PParamList) : pchar;
+ + + + + +
procedure setWorkingDirectory(str : pchar);
+ + + + + +
function getWorkingDirectory : pchar;
+ + + + + +
function getTerminalHWND : uint32;
+ + + + + +
function halt(id : uint32; cb : THaltCallback) : boolean;
+ + + + + +
function done(id : uint32) : boolean;
+

Types

+ + + + + +
THaltCallback = procedure();
+ + + + + +
PParamList = ˆTParamList;
+ + + + + +
PHistory = ˆTHistory;
+ + + + + +
TCommandBuffer = array[0..1023] of byte;
+ + + + + +
TCommandMethod = procedure(params : PParamList);
+

Variables

+ + + + + +
buffer: TCommandBuffer;
+ + + + + +
History: PHistory;
+ + + + + +
bIndex: uint32 = 0;
+ + + + + +
Commands: array[0..65534] of TCommand;
+ + + + + +
Working_Directory: PChar = '/';
+ + + + + +
Halted: Boolean = false;
+ + + + + +
HaltID: uint32 = 0;
+ + + + + +
HaltCB: THaltCallback = nil;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/testdriver.html b/doc/testdriver.html index 0f402c54..2c8fab71 100644 --- a/doc/testdriver.html +++ b/doc/testdriver.html @@ -1,60 +1,60 @@ - - - -Asuro: testdriver - - - - - - - - -
-

Unit testdriver

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Driver->Exp->TestDriver - Dummy Driver For Testing. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure init;
-

Description

-

Functions and Procedures

- - - - - -
procedure init;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: testdriver + + + + + + + + +
+

Unit testdriver

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Driver->Exp->TestDriver - Dummy Driver For Testing. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure init;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/themer.html b/doc/themer.html index ae26a442..780107b7 100644 --- a/doc/themer.html +++ b/doc/themer.html @@ -1,60 +1,60 @@ - - - -Asuro: themer - - - - - - - - -
-

Unit themer

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Prog->Themer - Live Desktop Color Picker. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure init();
-

Description

-

Functions and Procedures

- - - - - -
procedure init();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: themer + + + + + + + + +
+

Unit themer

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Prog->Themer - Live Desktop Color Picker. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure init();
+

Description

+

Functions and Procedures

+ + + + + +
procedure init();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/tipuesearch/tipuesearch_data.js b/doc/tipuesearch/tipuesearch_data.js index 98d8ea80..576de8f9 100644 --- a/doc/tipuesearch/tipuesearch_data.js +++ b/doc/tipuesearch/tipuesearch_data.js @@ -1,1029 +1,1029 @@ -var tipuesearch = {"pages": [ - {"title": "ACE", "text": "

Kieron Morris ", "tags": "", "loc": "ACE.html"}, - {"title": "ACE.register", "text": " ", "tags": "", "loc": "ACE.html#register"}, - {"title": "arp", "text": "

Kieron Morris ", "tags": "", "loc": "arp.html"}, - {"title": "arp.TARPCacheRecord", "text": " ", "tags": "", "loc": "arp.TARPCacheRecord.html"}, - {"title": "arp.TARPCacheRecord.MAC", "text": " ", "tags": "", "loc": "arp.TARPCacheRecord.html#MAC"}, - {"title": "arp.TARPCacheRecord.IP", "text": " ", "tags": "", "loc": "arp.TARPCacheRecord.html#IP"}, - {"title": "arp.register", "text": " ", "tags": "", "loc": "arp.html#register"}, - {"title": "arp.IPv4ToMAC", "text": " ", "tags": "", "loc": "arp.html#IPv4ToMAC"}, - {"title": "arp.MACToIIPv4", "text": " ", "tags": "", "loc": "arp.html#MACToIIPv4"}, - {"title": "arp.sendGratuitous", "text": " ", "tags": "", "loc": "arp.html#sendGratuitous"}, - {"title": "arp.sendRequest", "text": " ", "tags": "", "loc": "arp.html#sendRequest"}, - {"title": "arp.send", "text": " ", "tags": "", "loc": "arp.html#send"}, - {"title": "arp.resolveIP", "text": " ", "tags": "", "loc": "arp.html#resolveIP"}, - {"title": "arp.PARPCacheRecord", "text": " ", "tags": "", "loc": "arp.html#PARPCacheRecord"}, - {"title": "asuro", "text": " Asuro Compilation Script ", "tags": "", "loc": "asuro.html"}, - {"title": "asuro.VERSION", "text": " ", "tags": "", "loc": "asuro.html#VERSION"}, - {"title": "asuro.VERSION_MAJOR", "text": " ", "tags": "", "loc": "asuro.html#VERSION_MAJOR"}, - {"title": "asuro.VERSION_MINOR", "text": " ", "tags": "", "loc": "asuro.html#VERSION_MINOR"}, - {"title": "asuro.VERSION_SUB", "text": " ", "tags": "", "loc": "asuro.html#VERSION_SUB"}, - {"title": "asuro.REVISION", "text": " ", "tags": "", "loc": "asuro.html#REVISION"}, - {"title": "asuro.RELEASE", "text": " ", "tags": "", "loc": "asuro.html#RELEASE"}, - {"title": "asuro.LINE_COUNT", "text": " ", "tags": "", "loc": "asuro.html#LINE_COUNT"}, - {"title": "asuro.FILE_COUNT", "text": " ", "tags": "", "loc": "asuro.html#FILE_COUNT"}, - {"title": "asuro.DRIVER_COUNT", "text": " ", "tags": "", "loc": "asuro.html#DRIVER_COUNT"}, - {"title": "asuro.FPC_VERSION", "text": " ", "tags": "", "loc": "asuro.html#FPC_VERSION"}, - {"title": "asuro.NASM_VERSION", "text": " ", "tags": "", "loc": "asuro.html#NASM_VERSION"}, - {"title": "asuro.MAKE_VERSION", "text": " ", "tags": "", "loc": "asuro.html#MAKE_VERSION"}, - {"title": "asuro.COMPILE_DATE", "text": " ", "tags": "", "loc": "asuro.html#COMPILE_DATE"}, - {"title": "asuro.COMPILE_TIME", "text": " ", "tags": "", "loc": "asuro.html#COMPILE_TIME"}, - {"title": "asuro.CHECKSUM", "text": " ", "tags": "", "loc": "asuro.html#CHECKSUM"}, - {"title": "bios_data_area", "text": "

Kieron Morris ", "tags": "", "loc": "bios_data_area.html"}, - {"title": "bios_data_area.TCounters", "text": " ", "tags": "", "loc": "bios_data_area.TCounters.html"}, - {"title": "bios_data_area.TCounters.c16", "text": " ", "tags": "", "loc": "bios_data_area.TCounters.html#c16"}, - {"title": "bios_data_area.TCounters.c32", "text": " ", "tags": "", "loc": "bios_data_area.TCounters.html#c32"}, - {"title": "bios_data_area.TCounters.c64", "text": " ", "tags": "", "loc": "bios_data_area.TCounters.html#c64"}, - {"title": "bios_data_area.BDA", "text": " ", "tags": "", "loc": "bios_data_area.html#BDA"}, - {"title": "bios_data_area.tick_update", "text": " ", "tags": "", "loc": "bios_data_area.html#tick_update"}, - {"title": "bios_data_area.TBDA", "text": " ", "tags": "", "loc": "bios_data_area.html#TBDA"}, - {"title": "bios_data_area.PBDA", "text": " ", "tags": "", "loc": "bios_data_area.html#PBDA"}, - {"title": "bios_data_area.TMCFG", "text": " ", "tags": "", "loc": "bios_data_area.html#TMCFG"}, - {"title": "bios_data_area.PMCFG", "text": " ", "tags": "", "loc": "bios_data_area.html#PMCFG"}, - {"title": "bios_data_area.Counters", "text": " ", "tags": "", "loc": "bios_data_area.html#Counters"}, - {"title": "BPE", "text": "

Kieron Morris ", "tags": "", "loc": "BPE.html"}, - {"title": "BPE.register", "text": " ", "tags": "", "loc": "BPE.html#register"}, - {"title": "BTSSE", "text": "

Kieron Morris ", "tags": "", "loc": "BTSSE.html"}, - {"title": "BTSSE.register", "text": " ", "tags": "", "loc": "BTSSE.html#register"}, - {"title": "CFE", "text": "

Kieron Morris ", "tags": "", "loc": "CFE.html"}, - {"title": "CFE.register", "text": " ", "tags": "", "loc": "CFE.html#register"}, - {"title": "console", "text": "

Kieron Morris ", "tags": "", "loc": "console.html"}, - {"title": "console.MAX_WINDOWS", "text": " ", "tags": "", "loc": "console.html#MAX_WINDOWS"}, - {"title": "console.DefaultWND", "text": " (Default). ", "tags": "", "loc": "console.html#DefaultWND"}, - {"title": "console.init", "text": " ", "tags": "", "loc": "console.html#init"}, - {"title": "console.clear", "text": " ", "tags": "", "loc": "console.html#clear"}, - {"title": "console.setdefaultattribute", "text": " attribute A 32-bit value representing the Foreground & Background colors. attribute A 32-bit value representing the Foreground & Background colors.", "tags": "", "loc": "console.html#setdefaultattribute"}, - {"title": "console.disable_cursor", "text": " ", "tags": "", "loc": "console.html#disable_cursor"}, - {"title": "console.writechar", "text": " character An 8-bit value representing an ASCII character. character An 8-bit value representing an ASCII character.", "tags": "", "loc": "console.html#writechar"}, - {"title": "console.writecharln", "text": " character An 8-bit value representing an ASCII character. character An 8-bit value representing an ASCII character.", "tags": "", "loc": "console.html#writecharln"}, - {"title": "console.writecharex", "text": " character An 8-bit value representing an ASCII character. attributes A 32-bit value representing the colors for the background and foreground. character An 8-bit value representing an ASCII character. attributes A 32-bit value representing the colors for the background and foreground.", "tags": "", "loc": "console.html#writecharex"}, - {"title": "console.writecharlnex", "text": " character An 8-bit value representing an ASCII character. attributes A 32-bit value representing the colors for the background and foreground. character An 8-bit value representing an ASCII character. attributes A 32-bit value representing the colors for the background and foreground.", "tags": "", "loc": "console.html#writecharlnex"}, - {"title": "console.Output", "text": " identifier A NULL terminated string with the name of the module printing the output. str A NULL terminated string with the debug message. identifier A NULL terminated string with the name of the module printing the output. str A NULL terminated string with the debug message.", "tags": "", "loc": "console.html#Output"}, - {"title": "console.Outputln", "text": " identifier A NULL terminated string with the name of the module printing the output. str A NULL terminated string with the debug message. identifier A NULL terminated string with the name of the module printing the output. str A NULL terminated string with the debug message.", "tags": "", "loc": "console.html#Outputln"}, - {"title": "console.writestring", "text": " str A NULL terminated string with the debug message. str A NULL terminated string with the debug message.", "tags": "", "loc": "console.html#writestring"}, - {"title": "console.writestringln", "text": " str A NULL terminated string with the debug message. str A NULL terminated string with the debug message.", "tags": "", "loc": "console.html#writestringln"}, - {"title": "console.writestringex", "text": " str A NULL terminated string with the debug message. attributes A 32-bit representation of the background/foreground colors. str A NULL terminated string with the debug message. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writestringex"}, - {"title": "console.writestringlnex", "text": " str A NULL terminated string with the debug message. attributes A 32-bit representation of the background/foreground colors. str A NULL terminated string with the debug message. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writestringlnex"}, - {"title": "console.writeint", "text": " i A 32-bit value. i A 32-bit value.", "tags": "", "loc": "console.html#writeint"}, - {"title": "console.writeintln", "text": " i A 32-bit value. i A 32-bit value.", "tags": "", "loc": "console.html#writeintln"}, - {"title": "console.writeintex", "text": " i A 32-bit value. attributes A 32-bit representation of the background/foreground colors. i A 32-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writeintex"}, - {"title": "console.writeintlnex", "text": " i A 32-bit value. attributes A 32-bit representation of the background/foreground colors. i A 32-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writeintlnex"}, - {"title": "console.writehexpair", "text": " b An 8-bit value. b An 8-bit value.", "tags": "", "loc": "console.html#writehexpair"}, - {"title": "console.writehex", "text": " i A 32-bit value. i A 32-bit value.", "tags": "", "loc": "console.html#writehex"}, - {"title": "console.writehexln", "text": " i A 32-bit value. i A 32-bit value.", "tags": "", "loc": "console.html#writehexln"}, - {"title": "console.writehexex", "text": " b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. b A 32-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writehexex"}, - {"title": "console.writehexlnex", "text": " b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. b A 32-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writehexlnex"}, - {"title": "console.writebin8", "text": " b An 8-bit value. b An 8-bit value.", "tags": "", "loc": "console.html#writebin8"}, - {"title": "console.writebin8ln", "text": " b An 8-bit value. b An 8-bit value.", "tags": "", "loc": "console.html#writebin8ln"}, - {"title": "console.writebin8ex", "text": " b An 8-bit value. attributes A 32-bit representation of the background/foreground colors. b An 8-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writebin8ex"}, - {"title": "console.writebin8lnex", "text": " b An 8-bit value. attributes A 32-bit representation of the background/foreground colors. b An 8-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writebin8lnex"}, - {"title": "console.writebin16", "text": " b A 16-bit value. b A 16-bit value.", "tags": "", "loc": "console.html#writebin16"}, - {"title": "console.writebin16ln", "text": " b A 16-bit value. b A 16-bit value.", "tags": "", "loc": "console.html#writebin16ln"}, - {"title": "console.writebin16ex", "text": " b A 16-bit value. attributes A 32-bit representation of the background/foreground colors. b A 16-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writebin16ex"}, - {"title": "console.writebin16lnex", "text": " b A 16-bit value. attributes A 32-bit representation of the background/foreground colors. b A 16-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writebin16lnex"}, - {"title": "console.writebin32", "text": " b A 32-bit value. b A 32-bit value.", "tags": "", "loc": "console.html#writebin32"}, - {"title": "console.writebin32ln", "text": " b A 32-bit value. b A 32-bit value.", "tags": "", "loc": "console.html#writebin32ln"}, - {"title": "console.writebin32ex", "text": " b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. b A 32-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writebin32ex"}, - {"title": "console.writebin32lnex", "text": " b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. b A 32-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writebin32lnex"}, - {"title": "console.backspace", "text": " ", "tags": "", "loc": "console.html#backspace"}, - {"title": "console.combinecolors", "text": " Foreground A 16-bit value representing the foreground color. Background A 16-bit value representing the background color. A 32-bit value representing an attribute set. (uint32) Foreground A 16-bit value representing the foreground color. Background A 16-bit value representing the background color.", "tags": "", "loc": "console.html#combinecolors"}, - {"title": "console._increment_x", "text": " ", "tags": "", "loc": "console.html#_increment_x"}, - {"title": "console._increment_y", "text": " ", "tags": "", "loc": "console.html#_increment_y"}, - {"title": "console._safeincrement_x", "text": " ", "tags": "", "loc": "console.html#_safeincrement_x"}, - {"title": "console._safeincrement_y", "text": " ", "tags": "", "loc": "console.html#_safeincrement_y"}, - {"title": "console._newline", "text": " ", "tags": "", "loc": "console.html#_newline"}, - {"title": "console.clearWND", "text": " WND A Window Handle. WND A Window Handle.", "tags": "", "loc": "console.html#clearWND"}, - {"title": "console.clearWNDEx", "text": " WND A Window Handle. Attributes A 32-bit value representing an attribute set. WND A Window Handle. Attributes A 32-bit value representing an attribute set.", "tags": "", "loc": "console.html#clearWNDEx"}, - {"title": "console.writecharWND", "text": " Character An 8-bit value representing an ASCII character. WND A 32-bit handle to a Window. Character An 8-bit value representing an ASCII character. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writecharWND"}, - {"title": "console.writecharlnWND", "text": " character An 8-bit value representing an ASCII character. WND A 32-bit handle to a Window. character An 8-bit value representing an ASCII character. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writecharlnWND"}, - {"title": "console.writecharexWND", "text": " character An 8-bit value representing an ASCII character. attributes A 32-bit value representing the colors for the background and foreground. WND A 32-bit handle to a Window. character An 8-bit value representing an ASCII character. attributes A 32-bit value representing the colors for the background and foreground. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writecharexWND"}, - {"title": "console.writecharlnexWND", "text": " character An 8-bit value representing an ASCII character. attributes A 32-bit value representing the colors for the background and foreground. WND A 32-bit handle to a Window. character An 8-bit value representing an ASCII character. attributes A 32-bit value representing the colors for the background and foreground. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writecharlnexWND"}, - {"title": "console.OutputWND", "text": " identifier A NULL terminated string with the name of the module printing the output. str A NULL terminated string with the debug message. WND A 32-bit handle to a Window. identifier A NULL terminated string with the name of the module printing the output. str A NULL terminated string with the debug message. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#OutputWND"}, - {"title": "console.OutputlnWND", "text": " identifier A NULL terminated string with the name of the module printing the output. str A NULL terminated string with the debug message. WND A 32-bit handle to a Window. identifier A NULL terminated string with the name of the module printing the output. str A NULL terminated string with the debug message. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#OutputlnWND"}, - {"title": "console.writestringWND", "text": " str A NULL terminated string with the debug message. WND A 32-bit handle to a Window. str A NULL terminated string with the debug message. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writestringWND"}, - {"title": "console.writestringlnWND", "text": " str A NULL terminated string with the debug message. WND A 32-bit handle to a Window. str A NULL terminated string with the debug message. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writestringlnWND"}, - {"title": "console.writestringexWND", "text": " str A NULL terminated string with the debug message. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. str A NULL terminated string with the debug message. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writestringexWND"}, - {"title": "console.writestringlnexWND", "text": " str A NULL terminated string with the debug message. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. str A NULL terminated string with the debug message. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writestringlnexWND"}, - {"title": "console.writeintWND", "text": " i A 32-bit value. WND A 32-bit handle to a Window. i A 32-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writeintWND"}, - {"title": "console.writeintlnWND", "text": " i A 32-bit value. WND A 32-bit handle to a Window. i A 32-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writeintlnWND"}, - {"title": "console.writeintexWND", "text": " i A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. i A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writeintexWND"}, - {"title": "console.writeintlnexWND", "text": " i A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. i A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writeintlnexWND"}, - {"title": "console.writehexpairWND", "text": " b An 8-bit value. WND A 32-bit handle to a Window. b An 8-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writehexpairWND"}, - {"title": "console.writehexpairExWND", "text": " b An 8-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. b An 8-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writehexpairExWND"}, - {"title": "console.writehexWND", "text": " i A 32-bit value. WND A 32-bit handle to a Window. i A 32-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writehexWND"}, - {"title": "console.writehexlnWND", "text": " i A 32-bit value. WND A 32-bit handle to a Window. i A 32-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writehexlnWND"}, - {"title": "console.writehexexWND", "text": " b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writehexexWND"}, - {"title": "console.writehexlnexWND", "text": " b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writehexlnexWND"}, - {"title": "console.writebin8WND", "text": " b An 8-bit value. WND A 32-bit handle to a Window. b An 8-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin8WND"}, - {"title": "console.writebin8lnWND", "text": " b An 8-bit value. WND A 32-bit handle to a Window. b An 8-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin8lnWND"}, - {"title": "console.writebin8exWND", "text": " b An 8-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. b An 8-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin8exWND"}, - {"title": "console.writebin8lnexWND", "text": " b An 8-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. b An 8-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin8lnexWND"}, - {"title": "console.writebin16WND", "text": " b A 16-bit value. WND A 32-bit handle to a Window. b A 16-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin16WND"}, - {"title": "console.writebin16lnWND", "text": " b A 16-bit value. WND A 32-bit handle to a Window. b A 16-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin16lnWND"}, - {"title": "console.writebin16exWND", "text": " b A 16-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. b A 16-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin16exWND"}, - {"title": "console.writebin16lnexWND", "text": " b A 16-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. b A 16-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin16lnexWND"}, - {"title": "console.writebin32WND", "text": " b A 32-bit value. WND A 32-bit handle to a Window. b A 32-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin32WND"}, - {"title": "console.writebin32lnWND", "text": " b A 32-bit value. WND A 32-bit handle to a Window. b A 32-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin32lnWND"}, - {"title": "console.writebin32exWND", "text": " b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin32exWND"}, - {"title": "console.writebin32lnexWND", "text": " b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin32lnexWND"}, - {"title": "console.backspaceWND", "text": " WND A 32-bit handle to a Window. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#backspaceWND"}, - {"title": "console.setCursorPosWND", "text": " X The new Horizontal position. Y The new Vertical postion. WND A 32-bit handle to a Window. X The new Horizontal position. Y The new Vertical postion. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#setCursorPosWND"}, - {"title": "console._increment_x_WND", "text": " WND A 32-bit handle to a Window. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#_increment_x_WND"}, - {"title": "console._increment_y_WND", "text": " WND A 32-bit handle to a Window. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#_increment_y_WND"}, - {"title": "console._safeincrement_y_WND", "text": " WND A 32-bit handle to a Window. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#_safeincrement_y_WND"}, - {"title": "console._safeincrement_x_WND", "text": " WND A 32-bit handle to a Window. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#_safeincrement_x_WND"}, - {"title": "console._newlineWND", "text": " WND A 32-bit handle to a Window. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#_newlineWND"}, - {"title": "console.outputChar", "text": " C An 8-bit ASCII Character. X An 8-bit Horizontal Cell position. Y An 8-bit Vertical Cell Position. fgcolor The 16-bit color of the Character. bgcolor The 16-bit background color of the cell. C An 8-bit ASCII Character. X An 8-bit Horizontal Cell position. Y An 8-bit Vertical Cell Position. fgcolor The 16-bit color of the Character. bgcolor The 16-bit background color of the cell.", "tags": "", "loc": "console.html#outputChar"}, - {"title": "console.outputCharToScreenSpace", "text": " C An 8-bit ASCII Character. X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. fgcolor The 16-bit color of the Character. bgcolor The 16-bit background color of the cell. C An 8-bit ASCII Character. X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. fgcolor The 16-bit color of the Character. bgcolor The 16-bit background color of the cell.", "tags": "", "loc": "console.html#outputCharToScreenSpace"}, - {"title": "console.outputCharTransparent", "text": " C An 8-bit ASCII Character. X An 8-bit Horizontal Cell position. Y An 8-bit Vertical Cell Position. fgcolor The 16-bit color of the Character. C An 8-bit ASCII Character. X An 8-bit Horizontal Cell position. Y An 8-bit Vertical Cell Position. fgcolor The 16-bit color of the Character.", "tags": "", "loc": "console.html#outputCharTransparent"}, - {"title": "console.getPixel", "text": " X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. 16-bits of Pixel Information X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position.", "tags": "", "loc": "console.html#getPixel"}, - {"title": "console.drawPixel", "text": " X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. color 16-bits of Pixel Information X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. color 16-bits of Pixel Information", "tags": "", "loc": "console.html#drawPixel"}, - {"title": "console.getPixel32", "text": " X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. 32-bits of Pixel Information X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position.", "tags": "", "loc": "console.html#getPixel32"}, - {"title": "console.drawPixel32", "text": " X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. color 32-bits of Pixel Information X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. color 32-bits of Pixel Information", "tags": "", "loc": "console.html#drawPixel32"}, - {"title": "console.getPixel64", "text": " X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. 64-bits of Pixel Information X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position.", "tags": "", "loc": "console.html#getPixel64"}, - {"title": "console.drawPixel64", "text": " X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. color 64-bits of Pixel Information X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. color 64-bits of Pixel Information", "tags": "", "loc": "console.html#drawPixel64"}, - {"title": "console.setMousePosition", "text": " X A 32-bit Horizontal Screen Position. Y A 32-bit Vertical Screen Position. X A 32-bit Horizontal Screen Position. Y A 32-bit Vertical Screen Position.", "tags": "", "loc": "console.html#setMousePosition"}, - {"title": "console.redrawWindows", "text": " ", "tags": "", "loc": "console.html#redrawWindows"}, - {"title": "console.toggleWNDVisible", "text": " WND A 32-bit handle to a Window. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#toggleWNDVisible"}, - {"title": "console.setWNDVisible", "text": " WND A 32-bit handle to a Window. Visible True or False. WND A 32-bit handle to a Window. Visible True or False.", "tags": "", "loc": "console.html#setWNDVisible"}, - {"title": "console.closeAllWindows", "text": " ", "tags": "", "loc": "console.html#closeAllWindows"}, - {"title": "console.newWindow", "text": " @retruns(A 32-bit Handle for the new Window.) X 32-bit Horizontal Cell for the top-left corner of the Window. Y 32-bit Vertical Cell for the top-left corner of the Window. Width 32-bit Width of the Window in Cells. Height 32-bit Height of the Window in Cells. Title NULL Terminated String used as the Title for the Window. X 32-bit Horizontal Cell for the top-left corner of the Window. Y 32-bit Vertical Cell for the top-left corner of the Window. Width 32-bit Width of the Window in Cells. Height 32-bit Height of the Window in Cells. Title NULL Terminated String used as the Title for the Window.", "tags": "", "loc": "console.html#newWindow"}, - {"title": "console.registerEventHandler", "text": " WND Handle for the Window the event should be registered against. Event Type of event to register. Handler Procedure to be called upon the event firing. True for success False for failure. WND Handle for the Window the event should be registered against. Event Type of event to register. Handler Procedure to be called upon the event firing.", "tags": "", "loc": "console.html#registerEventHandler"}, - {"title": "console.forceQuitAll", "text": " ", "tags": "", "loc": "console.html#forceQuitAll"}, - {"title": "console.closeWindow", "text": " WND The handle to the target Window. WND The handle to the target Window.", "tags": "", "loc": "console.html#closeWindow"}, - {"title": "console.bordersEnabled", "text": " WND A 32-bit Handle to the target Window. Enabled True for borders to be shown, False for borders to be hidden. WND A 32-bit Handle to the target Window. Enabled True for borders to be shown, False for borders to be hidden.", "tags": "", "loc": "console.html#bordersEnabled"}, - {"title": "console.SetShellWindow", "text": " WND 32-bit Handle for the target Window. b True to set Target as a Shell Window, False to set Target as a normal Window. WND 32-bit Handle for the target Window. b True to set Target as a Shell Window, False to set Target as a normal Window.", "tags": "", "loc": "console.html#SetShellWindow"}, - {"title": "console.getWindowName", "text": " WND 32-bit Handle for the target Window. NULL Terminated PChar. WND 32-bit Handle for the target Window.", "tags": "", "loc": "console.html#getWindowName"}, - {"title": "console.mouseEnabled", "text": " b True for mouse enabled, False for mouse disabled. b True for mouse enabled, False for mouse disabled.", "tags": "", "loc": "console.html#mouseEnabled"}, - {"title": "console._MouseDown", "text": " ", "tags": "", "loc": "console.html#_MouseDown"}, - {"title": "console._MouseUp", "text": " ", "tags": "", "loc": "console.html#_MouseUp"}, - {"title": "console._MouseClick", "text": " Left True for a Left-Click, False for a Right-Click. Left True for a Left-Click, False for a Right-Click.", "tags": "", "loc": "console.html#_MouseClick"}, - {"title": "console.setWindowColors", "text": " Colors A 32-bit value representing the attributes (background/foreground). Colors A 32-bit value representing the attributes (background/foreground).", "tags": "", "loc": "console.html#setWindowColors"}, - {"title": "console.getWindowColorPtr", "text": " A 32-bit pointer to the Borders Attribute. ", "tags": "", "loc": "console.html#getWindowColorPtr"}, - {"title": "console.TColor", "text": " Black Blue Green Aqua Red Purple Yellow White Gray lBlue lGreen lAqua lRed lPurple lYellow lWhite ", "tags": "", "loc": "console.html#TColor"}, - {"title": "console.TEventType", "text": " EVENT_DRAW EVENT_MOUSE_CLICK EVENT_MOUSE_MOVE EVENT_MOUSE_DOWN EVENT_MOUSE_UP EVENT_KEY_PRESSED EVENT_CLOSE EVENT_MINIMIZE EVENT_FOCUS EVENT_LOSE_FOCUS ", "tags": "", "loc": "console.html#TEventType"}, - {"title": "contextswitcher", "text": "

Kieron Morris ", "tags": "", "loc": "contextswitcher.html"}, - {"title": "cpu", "text": "

Kieron Morris ", "tags": "", "loc": "cpu.html"}, - {"title": "cpu.TClockSpeed", "text": " ", "tags": "", "loc": "cpu.TClockSpeed.html"}, - {"title": "cpu.TClockSpeed.Hz", "text": " ", "tags": "", "loc": "cpu.TClockSpeed.html#Hz"}, - {"title": "cpu.TClockSpeed.KHz", "text": " ", "tags": "", "loc": "cpu.TClockSpeed.html#KHz"}, - {"title": "cpu.TClockSpeed.MHz", "text": " ", "tags": "", "loc": "cpu.TClockSpeed.html#MHz"}, - {"title": "cpu.TClockSpeed.GHz", "text": " ", "tags": "", "loc": "cpu.TClockSpeed.html#GHz"}, - {"title": "cpu.TCPUID", "text": " ", "tags": "", "loc": "cpu.TCPUID.html"}, - {"title": "cpu.TCPUID.ClockSpeed", "text": " ", "tags": "", "loc": "cpu.TCPUID.html#ClockSpeed"}, - {"title": "cpu.TCPUID.Identifier", "text": " ", "tags": "", "loc": "cpu.TCPUID.html#Identifier"}, - {"title": "cpu.TCPUID.Capabilities0", "text": " ", "tags": "", "loc": "cpu.TCPUID.html#Capabilities0"}, - {"title": "cpu.TCPUID.Capabilities1", "text": " ", "tags": "", "loc": "cpu.TCPUID.html#Capabilities1"}, - {"title": "cpu.init", "text": " ", "tags": "", "loc": "cpu.html#init"}, - {"title": "cpu.PCapabilities_Old", "text": " ", "tags": "", "loc": "cpu.html#PCapabilities_Old"}, - {"title": "cpu.TCapabilities_Old", "text": " ", "tags": "", "loc": "cpu.html#TCapabilities_Old"}, - {"title": "cpu.PCapabilities_New", "text": " ", "tags": "", "loc": "cpu.html#PCapabilities_New"}, - {"title": "cpu.TCapabilities_New", "text": " ", "tags": "", "loc": "cpu.html#TCapabilities_New"}, - {"title": "cpu.CPUID", "text": " ", "tags": "", "loc": "cpu.html#CPUID"}, - {"title": "cpu.CAP_OLD", "text": " ", "tags": "", "loc": "cpu.html#CAP_OLD"}, - {"title": "cpu.CAP_NEW", "text": " ", "tags": "", "loc": "cpu.html#CAP_NEW"}, - {"title": "crc", "text": "

Kieron Morris ", "tags": "", "loc": "crc.html"}, - {"title": "crc.CRC32", "text": " ", "tags": "", "loc": "crc.html#CRC32"}, - {"title": "CSOE", "text": "

Kieron Morris ", "tags": "", "loc": "CSOE.html"}, - {"title": "CSOE.register", "text": " ", "tags": "", "loc": "CSOE.html#register"}, - {"title": "DBGE", "text": "

Kieron Morris ", "tags": "", "loc": "DBGE.html"}, - {"title": "DBGE.register", "text": " ", "tags": "", "loc": "DBGE.html#register"}, - {"title": "DBZ", "text": "

Kieron Morris ", "tags": "", "loc": "DBZ.html"}, - {"title": "DBZ.register", "text": " ", "tags": "", "loc": "DBZ.html#register"}, - {"title": "DFE", "text": "

Kieron Morris ", "tags": "", "loc": "DFE.html"}, - {"title": "DFE.register", "text": " ", "tags": "", "loc": "DFE.html#register"}, - {"title": "drivermanagement", "text": "

Kieron Morris ", "tags": "", "loc": "drivermanagement.html"}, - {"title": "drivermanagement.TDevEx", "text": " ", "tags": "", "loc": "drivermanagement.TDevEx.html"}, - {"title": "drivermanagement.TDevEx.idN", "text": " ", "tags": "", "loc": "drivermanagement.TDevEx.html#idN"}, - {"title": "drivermanagement.TDevEx.ex", "text": " ", "tags": "", "loc": "drivermanagement.TDevEx.html#ex"}, - {"title": "drivermanagement.TDeviceIdentifier", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceIdentifier.html"}, - {"title": "drivermanagement.TDeviceIdentifier.Bus", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceIdentifier.html#Bus"}, - {"title": "drivermanagement.TDeviceIdentifier.id0", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceIdentifier.html#id0"}, - {"title": "drivermanagement.TDeviceIdentifier.id1", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceIdentifier.html#id1"}, - {"title": "drivermanagement.TDeviceIdentifier.id2", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceIdentifier.html#id2"}, - {"title": "drivermanagement.TDeviceIdentifier.id3", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceIdentifier.html#id3"}, - {"title": "drivermanagement.TDeviceIdentifier.id4", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceIdentifier.html#id4"}, - {"title": "drivermanagement.TDeviceIdentifier.ex", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceIdentifier.html#ex"}, - {"title": "drivermanagement.TDriverRegistration", "text": " ", "tags": "", "loc": "drivermanagement.TDriverRegistration.html"}, - {"title": "drivermanagement.TDriverRegistration.Driver_Name", "text": " ", "tags": "", "loc": "drivermanagement.TDriverRegistration.html#Driver_Name"}, - {"title": "drivermanagement.TDriverRegistration.Identifier", "text": " ", "tags": "", "loc": "drivermanagement.TDriverRegistration.html#Identifier"}, - {"title": "drivermanagement.TDriverRegistration.Driver_Load", "text": " ", "tags": "", "loc": "drivermanagement.TDriverRegistration.html#Driver_Load"}, - {"title": "drivermanagement.TDriverRegistration.Loaded", "text": " ", "tags": "", "loc": "drivermanagement.TDriverRegistration.html#Loaded"}, - {"title": "drivermanagement.TDriverRegistration.Next", "text": " ", "tags": "", "loc": "drivermanagement.TDriverRegistration.html#Next"}, - {"title": "drivermanagement.TDeviceRegistration", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceRegistration.html"}, - {"title": "drivermanagement.TDeviceRegistration.Device_Name", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceRegistration.html#Device_Name"}, - {"title": "drivermanagement.TDeviceRegistration.Identifier", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceRegistration.html#Identifier"}, - {"title": "drivermanagement.TDeviceRegistration.Driver_Loaded", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceRegistration.html#Driver_Loaded"}, - {"title": "drivermanagement.TDeviceRegistration.Driver", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceRegistration.html#Driver"}, - {"title": "drivermanagement.TDeviceRegistration.Next", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceRegistration.html#Next"}, - {"title": "drivermanagement.idANY", "text": " ", "tags": "", "loc": "drivermanagement.html#idANY"}, - {"title": "drivermanagement.init", "text": " ", "tags": "", "loc": "drivermanagement.html#init"}, - {"title": "drivermanagement.register_driver", "text": " ", "tags": "", "loc": "drivermanagement.html#register_driver"}, - {"title": "drivermanagement.register_driver_ex", "text": " ", "tags": "", "loc": "drivermanagement.html#register_driver_ex"}, - {"title": "drivermanagement.register_device", "text": " ", "tags": "", "loc": "drivermanagement.html#register_device"}, - {"title": "drivermanagement.PDevEx", "text": " ", "tags": "", "loc": "drivermanagement.html#PDevEx"}, - {"title": "drivermanagement.TBusIdentifier", "text": " biUnknown biPCI biUSB bii2c biPCIe biANY ", "tags": "", "loc": "drivermanagement.html#TBusIdentifier"}, - {"title": "drivermanagement.PDeviceIdentifier", "text": " ", "tags": "", "loc": "drivermanagement.html#PDeviceIdentifier"}, - {"title": "drivermanagement.TDriverLoadCallback", "text": " ", "tags": "", "loc": "drivermanagement.html#TDriverLoadCallback"}, - {"title": "drivermanagement.PDriverRegistration", "text": " ", "tags": "", "loc": "drivermanagement.html#PDriverRegistration"}, - {"title": "drivermanagement.PDeviceRegistration", "text": " ", "tags": "", "loc": "drivermanagement.html#PDeviceRegistration"}, - {"title": "drivermanagement.Root", "text": " ", "tags": "", "loc": "drivermanagement.html#Root"}, - {"title": "drivermanagement.Dev", "text": " ", "tags": "", "loc": "drivermanagement.html#Dev"}, - {"title": "drivertypes", "text": "

Aaron Hance ", "tags": "", "loc": "drivertypes.html"}, - {"title": "drivertypes.PPCI_Device", "text": " ", "tags": "", "loc": "drivertypes.html#PPCI_Device"}, - {"title": "drivertypes.TPCI_Device", "text": " ", "tags": "", "loc": "drivertypes.html#TPCI_Device"}, - {"title": "drivertypes.TDeviceArray", "text": " ", "tags": "", "loc": "drivertypes.html#TDeviceArray"}, - {"title": "E1000", "text": "

Kieron Morris ", "tags": "", "loc": "E1000.html"}, - {"title": "E1000.INTEL_VEND", "text": " ", "tags": "", "loc": "E1000.html#INTEL_VEND"}, - {"title": "E1000.E1000_DEV", "text": " ", "tags": "", "loc": "E1000.html#E1000_DEV"}, - {"title": "E1000.I217_DEV", "text": " ", "tags": "", "loc": "E1000.html#I217_DEV"}, - {"title": "E1000.LM82577_DEV", "text": " ", "tags": "", "loc": "E1000.html#LM82577_DEV"}, - {"title": "E1000.REG_CTRL", "text": " ", "tags": "", "loc": "E1000.html#REG_CTRL"}, - {"title": "E1000.REG_STATUS", "text": " ", "tags": "", "loc": "E1000.html#REG_STATUS"}, - {"title": "E1000.REG_EEPROM", "text": " ", "tags": "", "loc": "E1000.html#REG_EEPROM"}, - {"title": "E1000.REG_CTRL_EXT", "text": " ", "tags": "", "loc": "E1000.html#REG_CTRL_EXT"}, - {"title": "E1000.REG_IMASK", "text": " ", "tags": "", "loc": "E1000.html#REG_IMASK"}, - {"title": "E1000.REG_RCTRL", "text": " ", "tags": "", "loc": "E1000.html#REG_RCTRL"}, - {"title": "E1000.REG_RXDESCLO", "text": " ", "tags": "", "loc": "E1000.html#REG_RXDESCLO"}, - {"title": "E1000.REG_RXDESCHI", "text": " ", "tags": "", "loc": "E1000.html#REG_RXDESCHI"}, - {"title": "E1000.REG_RXDESCLEN", "text": " ", "tags": "", "loc": "E1000.html#REG_RXDESCLEN"}, - {"title": "E1000.REG_RXDESCHEAD", "text": " ", "tags": "", "loc": "E1000.html#REG_RXDESCHEAD"}, - {"title": "E1000.REG_RXDESCTAIL", "text": " ", "tags": "", "loc": "E1000.html#REG_RXDESCTAIL"}, - {"title": "E1000.REG_TCTRL", "text": " ", "tags": "", "loc": "E1000.html#REG_TCTRL"}, - {"title": "E1000.REG_TXDESCLO", "text": " ", "tags": "", "loc": "E1000.html#REG_TXDESCLO"}, - {"title": "E1000.REG_TXDESCHI", "text": " ", "tags": "", "loc": "E1000.html#REG_TXDESCHI"}, - {"title": "E1000.REG_TXDESCLEN", "text": " ", "tags": "", "loc": "E1000.html#REG_TXDESCLEN"}, - {"title": "E1000.REG_TXDESCHEAD", "text": " ", "tags": "", "loc": "E1000.html#REG_TXDESCHEAD"}, - {"title": "E1000.REG_TXDESCTAIL", "text": " ", "tags": "", "loc": "E1000.html#REG_TXDESCTAIL"}, - {"title": "E1000.REG_RDTR", "text": " ", "tags": "", "loc": "E1000.html#REG_RDTR"}, - {"title": "E1000.REG_RXDCTL", "text": " ", "tags": "", "loc": "E1000.html#REG_RXDCTL"}, - {"title": "E1000.REG_RADV", "text": " ", "tags": "", "loc": "E1000.html#REG_RADV"}, - {"title": "E1000.REG_RSRPD", "text": " Absolute Delay Timer ", "tags": "", "loc": "E1000.html#REG_RSRPD"}, - {"title": "E1000.REG_TIPG", "text": " ", "tags": "", "loc": "E1000.html#REG_TIPG"}, - {"title": "E1000.ECTRL_SLU", "text": " ", "tags": "", "loc": "E1000.html#ECTRL_SLU"}, - {"title": "E1000.RCTL_EN", "text": " ", "tags": "", "loc": "E1000.html#RCTL_EN"}, - {"title": "E1000.RCTL_SBP", "text": " ", "tags": "", "loc": "E1000.html#RCTL_SBP"}, - {"title": "E1000.RCTL_UPE", "text": " ", "tags": "", "loc": "E1000.html#RCTL_UPE"}, - {"title": "E1000.RCTL_MPE", "text": " ", "tags": "", "loc": "E1000.html#RCTL_MPE"}, - {"title": "E1000.RCTL_LPE", "text": " ", "tags": "", "loc": "E1000.html#RCTL_LPE"}, - {"title": "E1000.RCTL_LBM_NONE", "text": " ", "tags": "", "loc": "E1000.html#RCTL_LBM_NONE"}, - {"title": "E1000.RCTL_LBM_PHY", "text": " ", "tags": "", "loc": "E1000.html#RCTL_LBM_PHY"}, - {"title": "E1000.RTCL_RDMTS_HALF", "text": " ", "tags": "", "loc": "E1000.html#RTCL_RDMTS_HALF"}, - {"title": "E1000.RTCL_RDMTS_QUARTER", "text": " ", "tags": "", "loc": "E1000.html#RTCL_RDMTS_QUARTER"}, - {"title": "E1000.RTCL_RDMTS_EIGHTH", "text": " ", "tags": "", "loc": "E1000.html#RTCL_RDMTS_EIGHTH"}, - {"title": "E1000.RCTL_MO_36", "text": " ", "tags": "", "loc": "E1000.html#RCTL_MO_36"}, - {"title": "E1000.RCTL_MO_35", "text": " ", "tags": "", "loc": "E1000.html#RCTL_MO_35"}, - {"title": "E1000.RCTL_MO_34", "text": " ", "tags": "", "loc": "E1000.html#RCTL_MO_34"}, - {"title": "E1000.RCTL_MO_32", "text": " ", "tags": "", "loc": "E1000.html#RCTL_MO_32"}, - {"title": "E1000.RCTL_BAM", "text": " ", "tags": "", "loc": "E1000.html#RCTL_BAM"}, - {"title": "E1000.RCTL_VFE", "text": " ", "tags": "", "loc": "E1000.html#RCTL_VFE"}, - {"title": "E1000.RCTL_CFIEN", "text": " ", "tags": "", "loc": "E1000.html#RCTL_CFIEN"}, - {"title": "E1000.RCTL_CFI", "text": " ", "tags": "", "loc": "E1000.html#RCTL_CFI"}, - {"title": "E1000.RCTL_DPF", "text": " ", "tags": "", "loc": "E1000.html#RCTL_DPF"}, - {"title": "E1000.RCTL_PMCF", "text": " ", "tags": "", "loc": "E1000.html#RCTL_PMCF"}, - {"title": "E1000.RCTL_SECRC", "text": " ", "tags": "", "loc": "E1000.html#RCTL_SECRC"}, - {"title": "E1000.RCTL_BSIZE_256", "text": " ", "tags": "", "loc": "E1000.html#RCTL_BSIZE_256"}, - {"title": "E1000.RCTL_BSIZE_512", "text": " ", "tags": "", "loc": "E1000.html#RCTL_BSIZE_512"}, - {"title": "E1000.RCTL_BSIZE_1024", "text": " ", "tags": "", "loc": "E1000.html#RCTL_BSIZE_1024"}, - {"title": "E1000.RCTL_BSIZE_2048", "text": " ", "tags": "", "loc": "E1000.html#RCTL_BSIZE_2048"}, - {"title": "E1000.RCTL_BSIZE_4096", "text": " ", "tags": "", "loc": "E1000.html#RCTL_BSIZE_4096"}, - {"title": "E1000.RCTL_BSIZE_8192", "text": " ", "tags": "", "loc": "E1000.html#RCTL_BSIZE_8192"}, - {"title": "E1000.RCTL_BSIZE_16384", "text": " ", "tags": "", "loc": "E1000.html#RCTL_BSIZE_16384"}, - {"title": "E1000.CMD_EOP", "text": " ", "tags": "", "loc": "E1000.html#CMD_EOP"}, - {"title": "E1000.CMD_IFCS", "text": " ", "tags": "", "loc": "E1000.html#CMD_IFCS"}, - {"title": "E1000.CMD_IC", "text": " ", "tags": "", "loc": "E1000.html#CMD_IC"}, - {"title": "E1000.CMD_RS", "text": " ", "tags": "", "loc": "E1000.html#CMD_RS"}, - {"title": "E1000.CMD_RPS", "text": " ", "tags": "", "loc": "E1000.html#CMD_RPS"}, - {"title": "E1000.CMD_VLE", "text": " ", "tags": "", "loc": "E1000.html#CMD_VLE"}, - {"title": "E1000.CMD_IDE", "text": " ", "tags": "", "loc": "E1000.html#CMD_IDE"}, - {"title": "E1000.TCTL_EN", "text": " ", "tags": "", "loc": "E1000.html#TCTL_EN"}, - {"title": "E1000.TCTL_PSP", "text": " ", "tags": "", "loc": "E1000.html#TCTL_PSP"}, - {"title": "E1000.TCTL_CT_SHIFT", "text": " ", "tags": "", "loc": "E1000.html#TCTL_CT_SHIFT"}, - {"title": "E1000.TCTL_COLD_SHIFT", "text": " ", "tags": "", "loc": "E1000.html#TCTL_COLD_SHIFT"}, - {"title": "E1000.TCTL_SWXOFF", "text": " ", "tags": "", "loc": "E1000.html#TCTL_SWXOFF"}, - {"title": "E1000.TCTL_RTLC", "text": " ", "tags": "", "loc": "E1000.html#TCTL_RTLC"}, - {"title": "E1000.TSTA_DD", "text": " ", "tags": "", "loc": "E1000.html#TSTA_DD"}, - {"title": "E1000.TSTA_EC", "text": " ", "tags": "", "loc": "E1000.html#TSTA_EC"}, - {"title": "E1000.TSTA_LC", "text": " ", "tags": "", "loc": "E1000.html#TSTA_LC"}, - {"title": "E1000.LSTA_TU", "text": " ", "tags": "", "loc": "E1000.html#LSTA_TU"}, - {"title": "E1000.E1000_NUM_RX_DESC", "text": " ", "tags": "", "loc": "E1000.html#E1000_NUM_RX_DESC"}, - {"title": "E1000.E1000_NUM_TX_DESC", "text": " ", "tags": "", "loc": "E1000.html#E1000_NUM_TX_DESC"}, - {"title": "E1000.init", "text": " ", "tags": "", "loc": "E1000.html#init"}, - {"title": "E1000.getMACAddress", "text": " ", "tags": "", "loc": "E1000.html#getMACAddress"}, - {"title": "E1000.sendPacket", "text": " ", "tags": "", "loc": "E1000.html#sendPacket"}, - {"title": "E1000.readStatus", "text": " ", "tags": "", "loc": "E1000.html#readStatus"}, - {"title": "E1000.PE1000_rx_desc", "text": " ", "tags": "", "loc": "E1000.html#PE1000_rx_desc"}, - {"title": "E1000.TE1000_rx_desc", "text": " ", "tags": "", "loc": "E1000.html#TE1000_rx_desc"}, - {"title": "E1000.PE1000_tx_desc", "text": " ", "tags": "", "loc": "E1000.html#PE1000_tx_desc"}, - {"title": "E1000.TE1000_tx_desc", "text": " ", "tags": "", "loc": "E1000.html#TE1000_tx_desc"}, - {"title": "E1000.TCardType", "text": " ctUnknown ctE1000 ctI217 ct82577LM ", "tags": "", "loc": "E1000.html#TCardType"}, - {"title": "EHCI", "text": "

Kieron Morris ", "tags": "", "loc": "EHCI.html"}, - {"title": "EHCI.load", "text": " ", "tags": "", "loc": "EHCI.html#load"}, - {"title": "eth2", "text": "

Kieron Morris ", "tags": "", "loc": "eth2.html"}, - {"title": "eth2.send", "text": " ", "tags": "", "loc": "eth2.html#send"}, - {"title": "eth2.registerType", "text": " ", "tags": "", "loc": "eth2.html#registerType"}, - {"title": "eth2.registerTypePromisc", "text": " ", "tags": "", "loc": "eth2.html#registerTypePromisc"}, - {"title": "eth2.register", "text": " ", "tags": "", "loc": "eth2.html#register"}, - {"title": "faults", "text": "

Kieron Morris ", "tags": "", "loc": "faults.html"}, - {"title": "faults.init", "text": " ", "tags": "", "loc": "faults.html#init"}, - {"title": "fonts", "text": "

Kieron Morris ", "tags": "", "loc": "fonts.html"}, - {"title": "fonts.Std_Mask", "text": " ", "tags": "", "loc": "fonts.html#Std_Mask"}, - {"title": "fonts.Std_Font", "text": " ", "tags": "", "loc": "fonts.html#Std_Font"}, - {"title": "gdt", "text": "

Kieron Morris ", "tags": "", "loc": "gdt.html"}, - {"title": "gdt.TGDT_Entry", "text": " ", "tags": "", "loc": "gdt.TGDT_Entry.html"}, - {"title": "gdt.TGDT_Entry.limit_low", "text": " ", "tags": "", "loc": "gdt.TGDT_Entry.html#limit_low"}, - {"title": "gdt.TGDT_Entry.base_low", "text": " ", "tags": "", "loc": "gdt.TGDT_Entry.html#base_low"}, - {"title": "gdt.TGDT_Entry.base_middle", "text": " ", "tags": "", "loc": "gdt.TGDT_Entry.html#base_middle"}, - {"title": "gdt.TGDT_Entry.access", "text": " ", "tags": "", "loc": "gdt.TGDT_Entry.html#access"}, - {"title": "gdt.TGDT_Entry.granularity", "text": " ", "tags": "", "loc": "gdt.TGDT_Entry.html#granularity"}, - {"title": "gdt.TGDT_Entry.base_high", "text": " ", "tags": "", "loc": "gdt.TGDT_Entry.html#base_high"}, - {"title": "gdt.TGDT_Pointer", "text": " ", "tags": "", "loc": "gdt.TGDT_Pointer.html"}, - {"title": "gdt.TGDT_Pointer.limit", "text": " ", "tags": "", "loc": "gdt.TGDT_Pointer.html#limit"}, - {"title": "gdt.TGDT_Pointer.base", "text": " ", "tags": "", "loc": "gdt.TGDT_Pointer.html#base"}, - {"title": "gdt.init", "text": " ", "tags": "", "loc": "gdt.html#init"}, - {"title": "gdt.set_gate", "text": " ", "tags": "", "loc": "gdt.html#set_gate"}, - {"title": "gdt.flush", "text": " ", "tags": "", "loc": "gdt.html#flush"}, - {"title": "gdt.reload", "text": " ", "tags": "", "loc": "gdt.html#reload"}, - {"title": "gdt.PGDT_Entry", "text": " ", "tags": "", "loc": "gdt.html#PGDT_Entry"}, - {"title": "gdt.gdt_entries", "text": " ", "tags": "", "loc": "gdt.html#gdt_entries"}, - {"title": "gdt.gdt_pointer", "text": " ", "tags": "", "loc": "gdt.html#gdt_pointer"}, - {"title": "GPF", "text": "

Kieron Morris ", "tags": "", "loc": "GPF.html"}, - {"title": "GPF.register", "text": " ", "tags": "", "loc": "GPF.html#register"}, - {"title": "icmp", "text": " Kieron Morris ", "tags": "", "loc": "icmp.html"}, - {"title": "icmp.TARPHandler", "text": " ", "tags": "", "loc": "icmp.TARPHandler.html"}, - {"title": "icmp.TARPHandler.Active", "text": " ", "tags": "", "loc": "icmp.TARPHandler.html#Active"}, - {"title": "icmp.TARPHandler.OnReply", "text": " ", "tags": "", "loc": "icmp.TARPHandler.html#OnReply"}, - {"title": "icmp.TARPHandler.OnError", "text": " ", "tags": "", "loc": "icmp.TARPHandler.html#OnError"}, - {"title": "icmp.register", "text": " ", "tags": "", "loc": "icmp.html#register"}, - {"title": "icmp.sendICMPRequest", "text": " ", "tags": "", "loc": "icmp.html#sendICMPRequest"}, - {"title": "icmp.ping_err", "text": " ", "tags": "", "loc": "icmp.html#ping_err"}, - {"title": "icmp.ping_rep", "text": " ", "tags": "", "loc": "icmp.html#ping_rep"}, - {"title": "icmp.TARPErrorCode", "text": " aecFailedToResolveHost aecNoRouteToHost aecTimeout aecTTLExpired ", "tags": "", "loc": "icmp.html#TARPErrorCode"}, - {"title": "icmp.TARPReplyCallback", "text": " ", "tags": "", "loc": "icmp.html#TARPReplyCallback"}, - {"title": "icmp.TARPErrorCallback", "text": " ", "tags": "", "loc": "icmp.html#TARPErrorCallback"}, - {"title": "IDOE", "text": "

Kieron Morris ", "tags": "", "loc": "IDOE.html"}, - {"title": "IDOE.register", "text": " ", "tags": "", "loc": "IDOE.html#register"}, - {"title": "idt", "text": "

Kieron Morris ", "tags": "", "loc": "idt.html"}, - {"title": "idt.TIDT_Entry", "text": " ", "tags": "", "loc": "idt.TIDT_Entry.html"}, - {"title": "idt.TIDT_Entry.base_low", "text": " ", "tags": "", "loc": "idt.TIDT_Entry.html#base_low"}, - {"title": "idt.TIDT_Entry.selector", "text": " ", "tags": "", "loc": "idt.TIDT_Entry.html#selector"}, - {"title": "idt.TIDT_Entry.always_0", "text": " ", "tags": "", "loc": "idt.TIDT_Entry.html#always_0"}, - {"title": "idt.TIDT_Entry.flags", "text": " ", "tags": "", "loc": "idt.TIDT_Entry.html#flags"}, - {"title": "idt.TIDT_Entry.base_high", "text": " ", "tags": "", "loc": "idt.TIDT_Entry.html#base_high"}, - {"title": "idt.TIDT_Pointer", "text": " ", "tags": "", "loc": "idt.TIDT_Pointer.html"}, - {"title": "idt.TIDT_Pointer.limit", "text": " ", "tags": "", "loc": "idt.TIDT_Pointer.html#limit"}, - {"title": "idt.TIDT_Pointer.base", "text": " ", "tags": "", "loc": "idt.TIDT_Pointer.html#base"}, - {"title": "idt.ISR_RING_0", "text": " ", "tags": "", "loc": "idt.html#ISR_RING_0"}, - {"title": "idt.ISR_RING_1", "text": " ", "tags": "", "loc": "idt.html#ISR_RING_1"}, - {"title": "idt.ISR_RING_2", "text": " ", "tags": "", "loc": "idt.html#ISR_RING_2"}, - {"title": "idt.ISR_RING_3", "text": " ", "tags": "", "loc": "idt.html#ISR_RING_3"}, - {"title": "idt.init", "text": " ", "tags": "", "loc": "idt.html#init"}, - {"title": "idt.set_gate", "text": " ", "tags": "", "loc": "idt.html#set_gate"}, - {"title": "idt.PIDT_Entry", "text": " ", "tags": "", "loc": "idt.html#PIDT_Entry"}, - {"title": "idt.PIDT_Pointer", "text": " ", "tags": "", "loc": "idt.html#PIDT_Pointer"}, - {"title": "idt.IDT_Entries", "text": " ", "tags": "", "loc": "idt.html#IDT_Entries"}, - {"title": "idt.IDT_Pointer", "text": " ", "tags": "", "loc": "idt.html#IDT_Pointer"}, - {"title": "IOPE", "text": "

Kieron Morris ", "tags": "", "loc": "IOPE.html"}, - {"title": "IOPE.register", "text": " ", "tags": "", "loc": "IOPE.html#register"}, - {"title": "ipv4", "text": "

Kieron Morris ", "tags": "", "loc": "ipv4.html"}, - {"title": "ipv4.send", "text": " ", "tags": "", "loc": "ipv4.html#send"}, - {"title": "ipv4.registerProtocol", "text": " ", "tags": "", "loc": "ipv4.html#registerProtocol"}, - {"title": "ipv4.getIPv4Config", "text": " ", "tags": "", "loc": "ipv4.html#getIPv4Config"}, - {"title": "ipv4.register", "text": " ", "tags": "", "loc": "ipv4.html#register"}, - {"title": "irq", "text": "

Aaron Hance ", "tags": "", "loc": "irq.html"}, - {"title": "irq.init", "text": " ", "tags": "", "loc": "irq.html#init"}, - {"title": "isr", "text": "

Kieron Morris ", "tags": "", "loc": "isr.html"}, - {"title": "isr.init", "text": " ", "tags": "", "loc": "isr.html#init"}, - {"title": "isrmanager", "text": "

Kieron Morris ", "tags": "", "loc": "isrmanager.html"}, - {"title": "isrmanager.init", "text": " ", "tags": "", "loc": "isrmanager.html#init"}, - {"title": "isrmanager.registerISR", "text": " ", "tags": "", "loc": "isrmanager.html#registerISR"}, - {"title": "isrmanager.TISRHook", "text": " ", "tags": "", "loc": "isrmanager.html#TISRHook"}, - {"title": "isrmanager.TISRNHookArray", "text": " ", "tags": "", "loc": "isrmanager.html#TISRNHookArray"}, - {"title": "isrmanager.TISRHookArray", "text": " ", "tags": "", "loc": "isrmanager.html#TISRHookArray"}, - {"title": "isr_types", "text": "

Kieron Morris ", "tags": "", "loc": "isr_types.html"}, - {"title": "isr_types.TRegisters", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html"}, - {"title": "isr_types.TRegisters.edi", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#edi"}, - {"title": "isr_types.TRegisters.esi", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#esi"}, - {"title": "isr_types.TRegisters.ebp", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#ebp"}, - {"title": "isr_types.TRegisters.esp", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#esp"}, - {"title": "isr_types.TRegisters.ebx", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#ebx"}, - {"title": "isr_types.TRegisters.edx", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#edx"}, - {"title": "isr_types.TRegisters.ecx", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#ecx"}, - {"title": "isr_types.TRegisters.eax", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#eax"}, - {"title": "isr_types.TRegisters.ErrorCode", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#ErrorCode"}, - {"title": "isr_types.TRegisters.eip", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#eip"}, - {"title": "isr_types.TRegisters.cs", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#cs"}, - {"title": "isr_types.TRegisters.eflags", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#eflags"}, - {"title": "isr_types.TRegisters.UserESP", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#UserESP"}, - {"title": "isr_types.TRegisters.ss", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#ss"}, - {"title": "isr_types.MAX_HOOKS", "text": " ", "tags": "", "loc": "isr_types.html#MAX_HOOKS"}, - {"title": "isr_types.PRegisters", "text": " ", "tags": "", "loc": "isr_types.html#PRegisters"}, - {"title": "isr_types.pp_hook_method", "text": " ", "tags": "", "loc": "isr_types.html#pp_hook_method"}, - {"title": "isr_types.pp_void", "text": " ", "tags": "", "loc": "isr_types.html#pp_void"}, - {"title": "kernel", "text": "

Kieron Morris Aaron Hance ", "tags": "", "loc": "kernel.html"}, - {"title": "kernel.kmain", "text": " ", "tags": "", "loc": "kernel.html#kmain"}, - {"title": "keyboard", "text": "

Aaron Hance ", "tags": "", "loc": "keyboard.html"}, - {"title": "keyboard.TKeyInfo", "text": " ", "tags": "", "loc": "keyboard.TKeyInfo.html"}, - {"title": "keyboard.TKeyInfo.key_code", "text": " ", "tags": "", "loc": "keyboard.TKeyInfo.html#key_code"}, - {"title": "keyboard.TKeyInfo.is_down_code", "text": " ", "tags": "", "loc": "keyboard.TKeyInfo.html#is_down_code"}, - {"title": "keyboard.TKeyInfo.SHIFT_DOWN", "text": " ", "tags": "", "loc": "keyboard.TKeyInfo.html#SHIFT_DOWN"}, - {"title": "keyboard.TKeyInfo.CTRL_DOWN", "text": " ", "tags": "", "loc": "keyboard.TKeyInfo.html#CTRL_DOWN"}, - {"title": "keyboard.TKeyInfo.ALT_DOWN", "text": " ", "tags": "", "loc": "keyboard.TKeyInfo.html#ALT_DOWN"}, - {"title": "keyboard.init", "text": " ", "tags": "", "loc": "keyboard.html#init"}, - {"title": "keyboard.hook", "text": " ", "tags": "", "loc": "keyboard.html#hook"}, - {"title": "keyboard.lang_USA", "text": " ", "tags": "", "loc": "keyboard.html#lang_USA"}, - {"title": "keyboard.PKeyInfo", "text": " ", "tags": "", "loc": "keyboard.html#PKeyInfo"}, - {"title": "keyboard.pp_hook_method", "text": " ", "tags": "", "loc": "keyboard.html#pp_hook_method"}, - {"title": "keyboard.key_matrix", "text": " ", "tags": "", "loc": "keyboard.html#key_matrix"}, - {"title": "keyboard.key_matrix_shift", "text": " ", "tags": "", "loc": "keyboard.html#key_matrix_shift"}, - {"title": "keyboard.captin_hook", "text": " ", "tags": "", "loc": "keyboard.html#captin_hook"}, - {"title": "keyboard.is_shift", "text": " ", "tags": "", "loc": "keyboard.html#is_shift"}, - {"title": "keyboard.is_ctrl", "text": " ", "tags": "", "loc": "keyboard.html#is_ctrl"}, - {"title": "keyboard.is_alt", "text": " ", "tags": "", "loc": "keyboard.html#is_alt"}, - {"title": "lists", "text": "

Kieron Morris ", "tags": "", "loc": "lists.html"}, - {"title": "lists.TLinkedList", "text": " ", "tags": "", "loc": "lists.TLinkedList.html"}, - {"title": "lists.TLinkedList.Previous", "text": " ", "tags": "", "loc": "lists.TLinkedList.html#Previous"}, - {"title": "lists.TLinkedList.Data", "text": " ", "tags": "", "loc": "lists.TLinkedList.html#Data"}, - {"title": "lists.TLinkedList.Next", "text": " ", "tags": "", "loc": "lists.TLinkedList.html#Next"}, - {"title": "lists.TLinkedListBase", "text": " ", "tags": "", "loc": "lists.TLinkedListBase.html"}, - {"title": "lists.TLinkedListBase.Count", "text": " ", "tags": "", "loc": "lists.TLinkedListBase.html#Count"}, - {"title": "lists.TLinkedListBase.Head", "text": " ", "tags": "", "loc": "lists.TLinkedListBase.html#Head"}, - {"title": "lists.TLinkedListBase.ElementSize", "text": " ", "tags": "", "loc": "lists.TLinkedListBase.html#ElementSize"}, - {"title": "lists.STRLL_Add", "text": " ", "tags": "", "loc": "lists.html#STRLL_Add"}, - {"title": "lists.STRLL_Get", "text": " ", "tags": "", "loc": "lists.html#STRLL_Get"}, - {"title": "lists.STRLL_New", "text": " ", "tags": "", "loc": "lists.html#STRLL_New"}, - {"title": "lists.STRLL_Size", "text": " ", "tags": "", "loc": "lists.html#STRLL_Size"}, - {"title": "lists.STRLL_Delete", "text": " ", "tags": "", "loc": "lists.html#STRLL_Delete"}, - {"title": "lists.STRLL_Free", "text": " ", "tags": "", "loc": "lists.html#STRLL_Free"}, - {"title": "lists.STRLL_Clear", "text": " ", "tags": "", "loc": "lists.html#STRLL_Clear"}, - {"title": "lists.STRLL_FromString", "text": " ", "tags": "", "loc": "lists.html#STRLL_FromString"}, - {"title": "lists.LL_New", "text": " ", "tags": "", "loc": "lists.html#LL_New"}, - {"title": "lists.LL_Add", "text": " ", "tags": "", "loc": "lists.html#LL_Add"}, - {"title": "lists.LL_Delete", "text": " ", "tags": "", "loc": "lists.html#LL_Delete"}, - {"title": "lists.LL_Size", "text": " ", "tags": "", "loc": "lists.html#LL_Size"}, - {"title": "lists.LL_Insert", "text": " ", "tags": "", "loc": "lists.html#LL_Insert"}, - {"title": "lists.LL_Get", "text": " ", "tags": "", "loc": "lists.html#LL_Get"}, - {"title": "lists.LL_Free", "text": " ", "tags": "", "loc": "lists.html#LL_Free"}, - {"title": "lists.LL_FromString", "text": " ", "tags": "", "loc": "lists.html#LL_FromString"}, - {"title": "lists.PLinkedList", "text": " ", "tags": "", "loc": "lists.html#PLinkedList"}, - {"title": "lists.PLinkedListBase", "text": " ", "tags": "", "loc": "lists.html#PLinkedListBase"}, - {"title": "lmemorymanager", "text": " Kieron Morris ", "tags": "", "loc": "lmemorymanager.html"}, - {"title": "lmemorymanager.THeapPage", "text": " ", "tags": "", "loc": "lmemorymanager.THeapPage.html"}, - {"title": "lmemorymanager.THeapPage.Next_Page", "text": " ", "tags": "", "loc": "lmemorymanager.THeapPage.html#Next_Page"}, - {"title": "lmemorymanager.THeapPage.Prev_Page", "text": " ", "tags": "", "loc": "lmemorymanager.THeapPage.html#Prev_Page"}, - {"title": "lmemorymanager.THeapPage.Entries", "text": " ", "tags": "", "loc": "lmemorymanager.THeapPage.html#Entries"}, - {"title": "lmemorymanager.ALLOC_SPACE", "text": " ", "tags": "", "loc": "lmemorymanager.html#ALLOC_SPACE"}, - {"title": "lmemorymanager.MAX_ENTRIES", "text": " ", "tags": "", "loc": "lmemorymanager.html#MAX_ENTRIES"}, - {"title": "lmemorymanager.DATA_OFFSET", "text": " ", "tags": "", "loc": "lmemorymanager.html#DATA_OFFSET"}, - {"title": "lmemorymanager.init", "text": " ", "tags": "", "loc": "lmemorymanager.html#init"}, - {"title": "lmemorymanager.kalloc", "text": " ", "tags": "", "loc": "lmemorymanager.html#kalloc"}, - {"title": "lmemorymanager.kpalloc", "text": " ", "tags": "", "loc": "lmemorymanager.html#kpalloc"}, - {"title": "lmemorymanager.kfree", "text": " ", "tags": "", "loc": "lmemorymanager.html#kfree"}, - {"title": "lmemorymanager.THeapEntry", "text": " ", "tags": "", "loc": "lmemorymanager.html#THeapEntry"}, - {"title": "lmemorymanager.PHeapPage", "text": " ", "tags": "", "loc": "lmemorymanager.html#PHeapPage"}, - {"title": "lmemorymanager.Root_Page", "text": " ", "tags": "", "loc": "lmemorymanager.html#Root_Page"}, - {"title": "lmemorymanager.Search_Page", "text": " ", "tags": "", "loc": "lmemorymanager.html#Search_Page"}, - {"title": "MCE", "text": "

Kieron Morris ", "tags": "", "loc": "MCE.html"}, - {"title": "MCE.register", "text": " ", "tags": "", "loc": "MCE.html#register"}, - {"title": "memview", "text": "

Kieron Morris ", "tags": "", "loc": "memview.html"}, - {"title": "memview.init", "text": " ", "tags": "", "loc": "memview.html#init"}, - {"title": "mouse", "text": "

Kieron Morris ", "tags": "", "loc": "mouse.html"}, - {"title": "mouse.TMousePacket", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html"}, - {"title": "mouse.TMousePacket.x_movement", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html#x_movement"}, - {"title": "mouse.TMousePacket.y_movement", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html#y_movement"}, - {"title": "mouse.TMousePacket.y_overflow", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html#y_overflow"}, - {"title": "mouse.TMousePacket.x_overflow", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html#x_overflow"}, - {"title": "mouse.TMousePacket.y_sign", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html#y_sign"}, - {"title": "mouse.TMousePacket.x_sign", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html#x_sign"}, - {"title": "mouse.TMousePacket.MMB_Down", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html#MMB_Down"}, - {"title": "mouse.TMousePacket.RMB_Down", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html#RMB_Down"}, - {"title": "mouse.TMousePacket.LMB_Down", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html#LMB_Down"}, - {"title": "mouse.TMousePos", "text": " ", "tags": "", "loc": "mouse.TMousePos.html"}, - {"title": "mouse.TMousePos.x", "text": " ", "tags": "", "loc": "mouse.TMousePos.html#x"}, - {"title": "mouse.TMousePos.y", "text": " ", "tags": "", "loc": "mouse.TMousePos.html#y"}, - {"title": "mouse.init", "text": " ", "tags": "", "loc": "mouse.html#init"}, - {"title": "mouse.DrawCursor", "text": " ", "tags": "", "loc": "mouse.html#DrawCursor"}, - {"title": "mouse.PMousePacket", "text": " ", "tags": "", "loc": "mouse.html#PMousePacket"}, - {"title": "multiboot", "text": "

Kieron Morris ", "tags": "", "loc": "multiboot.html"}, - {"title": "multiboot.elf_section_header_table_t", "text": " ", "tags": "", "loc": "multiboot.elf_section_header_table_t.html"}, - {"title": "multiboot.elf_section_header_table_t.num", "text": " ", "tags": "", "loc": "multiboot.elf_section_header_table_t.html#num"}, - {"title": "multiboot.elf_section_header_table_t.size", "text": " ", "tags": "", "loc": "multiboot.elf_section_header_table_t.html#size"}, - {"title": "multiboot.elf_section_header_table_t.addr", "text": " ", "tags": "", "loc": "multiboot.elf_section_header_table_t.html#addr"}, - {"title": "multiboot.elf_section_header_table_t.shndx", "text": " ", "tags": "", "loc": "multiboot.elf_section_header_table_t.html#shndx"}, - {"title": "multiboot.multiboot_info_t", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html"}, - {"title": "multiboot.multiboot_info_t.flags", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#flags"}, - {"title": "multiboot.multiboot_info_t.mem_lower", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#mem_lower"}, - {"title": "multiboot.multiboot_info_t.mem_upper", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#mem_upper"}, - {"title": "multiboot.multiboot_info_t.boot_device", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#boot_device"}, - {"title": "multiboot.multiboot_info_t.cmdline", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#cmdline"}, - {"title": "multiboot.multiboot_info_t.mods_count", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#mods_count"}, - {"title": "multiboot.multiboot_info_t.mods_addr", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#mods_addr"}, - {"title": "multiboot.multiboot_info_t.elf_sec", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#elf_sec"}, - {"title": "multiboot.multiboot_info_t.mmap_length", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#mmap_length"}, - {"title": "multiboot.multiboot_info_t.mmap_addr", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#mmap_addr"}, - {"title": "multiboot.multiboot_info_t.drives_legnth", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#drives_legnth"}, - {"title": "multiboot.multiboot_info_t.drives_addr", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#drives_addr"}, - {"title": "multiboot.multiboot_info_t.config_table", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#config_table"}, - {"title": "multiboot.multiboot_info_t.boot_loader_name", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#boot_loader_name"}, - {"title": "multiboot.multiboot_info_t.apm_table", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#apm_table"}, - {"title": "multiboot.multiboot_info_t.vbe_control_info", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#vbe_control_info"}, - {"title": "multiboot.multiboot_info_t.vbe_mode_info", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#vbe_mode_info"}, - {"title": "multiboot.multiboot_info_t.vbe_mode", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#vbe_mode"}, - {"title": "multiboot.multiboot_info_t.vbe_interface_seg", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#vbe_interface_seg"}, - {"title": "multiboot.multiboot_info_t.vbe_interface_off", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#vbe_interface_off"}, - {"title": "multiboot.multiboot_info_t.vbe_interface_len", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#vbe_interface_len"}, - {"title": "multiboot.multiboot_info_t.framebuffer_addr", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#framebuffer_addr"}, - {"title": "multiboot.multiboot_info_t.framebuffer_pitch", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#framebuffer_pitch"}, - {"title": "multiboot.multiboot_info_t.framebuffer_width", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#framebuffer_width"}, - {"title": "multiboot.multiboot_info_t.framebuffer_height", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#framebuffer_height"}, - {"title": "multiboot.multiboot_info_t.framebuffer_bpp", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#framebuffer_bpp"}, - {"title": "multiboot.module_t", "text": " ", "tags": "", "loc": "multiboot.module_t.html"}, - {"title": "multiboot.module_t.mod_start", "text": " ", "tags": "", "loc": "multiboot.module_t.html#mod_start"}, - {"title": "multiboot.module_t.mod_end", "text": " ", "tags": "", "loc": "multiboot.module_t.html#mod_end"}, - {"title": "multiboot.module_t.name", "text": " ", "tags": "", "loc": "multiboot.module_t.html#name"}, - {"title": "multiboot.module_t.reserved", "text": " ", "tags": "", "loc": "multiboot.module_t.html#reserved"}, - {"title": "multiboot.memory_map_t", "text": " ", "tags": "", "loc": "multiboot.memory_map_t.html"}, - {"title": "multiboot.memory_map_t.size", "text": " ", "tags": "", "loc": "multiboot.memory_map_t.html#size"}, - {"title": "multiboot.memory_map_t.base_addr", "text": " ", "tags": "", "loc": "multiboot.memory_map_t.html#base_addr"}, - {"title": "multiboot.memory_map_t.length", "text": " ", "tags": "", "loc": "multiboot.memory_map_t.html#length"}, - {"title": "multiboot.memory_map_t.mtype", "text": " ", "tags": "", "loc": "multiboot.memory_map_t.html#mtype"}, - {"title": "multiboot.KERNEL_STACKSIZE", "text": " ", "tags": "", "loc": "multiboot.html#KERNEL_STACKSIZE"}, - {"title": "multiboot.MULTIBOOT_BOOTLOADER_MAGIC", "text": " ", "tags": "", "loc": "multiboot.html#MULTIBOOT_BOOTLOADER_MAGIC"}, - {"title": "multiboot.Pelf_section_header_table_t", "text": " ", "tags": "", "loc": "multiboot.html#Pelf_section_header_table_t"}, - {"title": "multiboot.Pmultiboot_info_t", "text": " ", "tags": "", "loc": "multiboot.html#Pmultiboot_info_t"}, - {"title": "multiboot.Pmodule_t", "text": " ", "tags": "", "loc": "multiboot.html#Pmodule_t"}, - {"title": "multiboot.Pmemory_map_t", "text": " ", "tags": "", "loc": "multiboot.html#Pmemory_map_t"}, - {"title": "multiboot.multibootinfo", "text": " ", "tags": "", "loc": "multiboot.html#multibootinfo"}, - {"title": "multiboot.multibootmagic", "text": " ", "tags": "", "loc": "multiboot.html#multibootmagic"}, - {"title": "NCE", "text": "

Kieron Morris ", "tags": "", "loc": "NCE.html"}, - {"title": "NCE.register", "text": " ", "tags": "", "loc": "NCE.html#register"}, - {"title": "net", "text": "

Kieron Morris ", "tags": "", "loc": "net.html"}, - {"title": "net.init", "text": " ", "tags": "", "loc": "net.html#init"}, - {"title": "net.registerNetworkCard", "text": " ", "tags": "", "loc": "net.html#registerNetworkCard"}, - {"title": "net.registerNextLayer", "text": " ", "tags": "", "loc": "net.html#registerNextLayer"}, - {"title": "net.send", "text": " ", "tags": "", "loc": "net.html#send"}, - {"title": "net.recv", "text": " ", "tags": "", "loc": "net.html#recv"}, - {"title": "net.getMAC", "text": " ", "tags": "", "loc": "net.html#getMAC"}, - {"title": "net.writeToLog", "text": " ", "tags": "", "loc": "net.html#writeToLog"}, - {"title": "net.writeToLogLn", "text": " ", "tags": "", "loc": "net.html#writeToLogLn"}, - {"title": "netlog", "text": "

Kieron Morris ", "tags": "", "loc": "netlog.html"}, - {"title": "netlog.init", "text": " ", "tags": "", "loc": "netlog.html#init"}, - {"title": "netlog.getNetlogHWND", "text": " ", "tags": "", "loc": "netlog.html#getNetlogHWND"}, - {"title": "nettypes", "text": "

Kieron Morris ", "tags": "", "loc": "nettypes.html"}, - {"title": "nettypes.TMACPair", "text": " ", "tags": "", "loc": "nettypes.TMACPair.html"}, - {"title": "nettypes.TMACPair.Source", "text": " ", "tags": "", "loc": "nettypes.TMACPair.html#Source"}, - {"title": "nettypes.TMACPair.Destination", "text": " ", "tags": "", "loc": "nettypes.TMACPair.html#Destination"}, - {"title": "nettypes.TIPv4Pair", "text": " ", "tags": "", "loc": "nettypes.TIPv4Pair.html"}, - {"title": "nettypes.TIPv4Pair.Source", "text": " ", "tags": "", "loc": "nettypes.TIPv4Pair.html#Source"}, - {"title": "nettypes.TIPv4Pair.Destination", "text": " ", "tags": "", "loc": "nettypes.TIPv4Pair.html#Destination"}, - {"title": "nettypes.TProtocol", "text": " ", "tags": "", "loc": "nettypes.TProtocol.html"}, - {"title": "nettypes.TProtocol.L1", "text": " ", "tags": "", "loc": "nettypes.TProtocol.html#L1"}, - {"title": "nettypes.TProtocol.L2", "text": " ", "tags": "", "loc": "nettypes.TProtocol.html#L2"}, - {"title": "nettypes.TProtocol.L3", "text": " ", "tags": "", "loc": "nettypes.TProtocol.html#L3"}, - {"title": "nettypes.TProtocol.L4", "text": " ", "tags": "", "loc": "nettypes.TProtocol.html#L4"}, - {"title": "nettypes.TPacketContext", "text": " ", "tags": "", "loc": "nettypes.TPacketContext.html"}, - {"title": "nettypes.TPacketContext.MAC", "text": " ", "tags": "", "loc": "nettypes.TPacketContext.html#MAC"}, - {"title": "nettypes.TPacketContext.IP", "text": " ", "tags": "", "loc": "nettypes.TPacketContext.html#IP"}, - {"title": "nettypes.TPacketContext.Protocol", "text": " ", "tags": "", "loc": "nettypes.TPacketContext.html#Protocol"}, - {"title": "nettypes.TPacketContext.TTL", "text": " ", "tags": "", "loc": "nettypes.TPacketContext.html#TTL"}, - {"title": "nettypes.TIPv4Configuration", "text": " ", "tags": "", "loc": "nettypes.TIPv4Configuration.html"}, - {"title": "nettypes.TIPv4Configuration.Address", "text": " ", "tags": "", "loc": "nettypes.TIPv4Configuration.html#Address"}, - {"title": "nettypes.TIPv4Configuration.Gateway", "text": " ", "tags": "", "loc": "nettypes.TIPv4Configuration.html#Gateway"}, - {"title": "nettypes.TIPv4Configuration.Netmask", "text": " ", "tags": "", "loc": "nettypes.TIPv4Configuration.html#Netmask"}, - {"title": "nettypes.TIPv4Configuration.UP", "text": " ", "tags": "", "loc": "nettypes.TIPv4Configuration.html#UP"}, - {"title": "nettypes.TICMPHeader", "text": " ", "tags": "", "loc": "nettypes.TICMPHeader.html"}, - {"title": "nettypes.TICMPHeader.ICMP_Type", "text": " ", "tags": "", "loc": "nettypes.TICMPHeader.html#ICMP_Type"}, - {"title": "nettypes.TICMPHeader.ICMP_Code", "text": " ", "tags": "", "loc": "nettypes.TICMPHeader.html#ICMP_Code"}, - {"title": "nettypes.TICMPHeader.ICMP_CHK_Hi", "text": " ", "tags": "", "loc": "nettypes.TICMPHeader.html#ICMP_CHK_Hi"}, - {"title": "nettypes.TICMPHeader.ICMP_CHK_Lo", "text": " ", "tags": "", "loc": "nettypes.TICMPHeader.html#ICMP_CHK_Lo"}, - {"title": "nettypes.TICMPHeader.Identifier", "text": " ", "tags": "", "loc": "nettypes.TICMPHeader.html#Identifier"}, - {"title": "nettypes.TICMPHeader.Sequence", "text": " ", "tags": "", "loc": "nettypes.TICMPHeader.html#Sequence"}, - {"title": "nettypes.TARPAbstractHeader", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html"}, - {"title": "nettypes.TARPAbstractHeader.Hardware_Type", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html#Hardware_Type"}, - {"title": "nettypes.TARPAbstractHeader.Protocol_Type", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html#Protocol_Type"}, - {"title": "nettypes.TARPAbstractHeader.Hardware_Address_Length", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html#Hardware_Address_Length"}, - {"title": "nettypes.TARPAbstractHeader.Protocol_Address_Length", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html#Protocol_Address_Length"}, - {"title": "nettypes.TARPAbstractHeader.Operation", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html#Operation"}, - {"title": "nettypes.TARPAbstractHeader.Source_Hardware", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html#Source_Hardware"}, - {"title": "nettypes.TARPAbstractHeader.Source_Protocol", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html#Source_Protocol"}, - {"title": "nettypes.TARPAbstractHeader.Destination_Hardware", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html#Destination_Hardware"}, - {"title": "nettypes.TARPAbstractHeader.Destination_Protocol", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html#Destination_Protocol"}, - {"title": "nettypes.TTCPFlags", "text": " ", "tags": "", "loc": "nettypes.TTCPFlags.html"}, - {"title": "nettypes.TTCPFlags.RS", "text": " ", "tags": "", "loc": "nettypes.TTCPFlags.html#RS"}, - {"title": "nettypes.TTCPFlags.DF", "text": " ", "tags": "", "loc": "nettypes.TTCPFlags.html#DF"}, - {"title": "nettypes.TTCPFlags.MF", "text": " ", "tags": "", "loc": "nettypes.TTCPFlags.html#MF"}, - {"title": "nettypes.TIPV4AbstractHeader", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html"}, - {"title": "nettypes.TIPV4AbstractHeader.version", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#version"}, - {"title": "nettypes.TIPV4AbstractHeader.header_len", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#header_len"}, - {"title": "nettypes.TIPV4AbstractHeader.ToS", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#ToS"}, - {"title": "nettypes.TIPV4AbstractHeader.total_len", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#total_len"}, - {"title": "nettypes.TIPV4AbstractHeader.identifier", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#identifier"}, - {"title": "nettypes.TIPV4AbstractHeader.Flags", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#Flags"}, - {"title": "nettypes.TIPV4AbstractHeader.Fragment_Off", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#Fragment_Off"}, - {"title": "nettypes.TIPV4AbstractHeader.TTL", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#TTL"}, - {"title": "nettypes.TIPV4AbstractHeader.Protocol", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#Protocol"}, - {"title": "nettypes.TIPV4AbstractHeader.HDR_CHK", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#HDR_CHK"}, - {"title": "nettypes.TIPV4AbstractHeader.Src", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#Src"}, - {"title": "nettypes.TIPV4AbstractHeader.Dst", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#Dst"}, - {"title": "nettypes.TIPV4AbstractHeader.Options", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#Options"}, - {"title": "nettypes.BROADCAST_MAC", "text": " ", "tags": "", "loc": "nettypes.html#BROADCAST_MAC"}, - {"title": "nettypes.NULL_MAC", "text": " ", "tags": "", "loc": "nettypes.html#NULL_MAC"}, - {"title": "nettypes.FORCE_MAC", "text": " ", "tags": "", "loc": "nettypes.html#FORCE_MAC"}, - {"title": "nettypes.ICMP_DATA_GENERIC", "text": " ", "tags": "", "loc": "nettypes.html#ICMP_DATA_GENERIC"}, - {"title": "nettypes.TMACAddress", "text": " ", "tags": "", "loc": "nettypes.html#TMACAddress"}, - {"title": "nettypes.TIPv4Address", "text": " ", "tags": "", "loc": "nettypes.html#TIPv4Address"}, - {"title": "nettypes.PPacketContext", "text": " ", "tags": "", "loc": "nettypes.html#PPacketContext"}, - {"title": "nettypes.PIPv4Configuration", "text": " ", "tags": "", "loc": "nettypes.html#PIPv4Configuration"}, - {"title": "nettypes.PICMPHeader", "text": " ", "tags": "", "loc": "nettypes.html#PICMPHeader"}, - {"title": "nettypes.PARPHeader", "text": " ", "tags": "", "loc": "nettypes.html#PARPHeader"}, - {"title": "nettypes.TARPHeader", "text": " ", "tags": "", "loc": "nettypes.html#TARPHeader"}, - {"title": "nettypes.PEthernetHeader", "text": " ", "tags": "", "loc": "nettypes.html#PEthernetHeader"}, - {"title": "nettypes.TEthernetHeader", "text": " ", "tags": "", "loc": "nettypes.html#TEthernetHeader"}, - {"title": "nettypes.PIPV4Header", "text": " ", "tags": "", "loc": "nettypes.html#PIPV4Header"}, - {"title": "nettypes.TIPV4Header", "text": " ", "tags": "", "loc": "nettypes.html#TIPV4Header"}, - {"title": "nettypes.TNetSendCallback", "text": " ", "tags": "", "loc": "nettypes.html#TNetSendCallback"}, - {"title": "nettypes.TRecvCallback", "text": " ", "tags": "", "loc": "nettypes.html#TRecvCallback"}, - {"title": "netutils", "text": "

Kieron Morris ", "tags": "", "loc": "netutils.html"}, - {"title": "netutils.copyMAC", "text": " ", "tags": "", "loc": "netutils.html#copyMAC"}, - {"title": "netutils.copyIPv4", "text": " ", "tags": "", "loc": "netutils.html#copyIPv4"}, - {"title": "netutils.stringToMAC", "text": " ", "tags": "", "loc": "netutils.html#stringToMAC"}, - {"title": "netutils.stringToIPv4", "text": " ", "tags": "", "loc": "netutils.html#stringToIPv4"}, - {"title": "netutils.writeMACAddress", "text": " ", "tags": "", "loc": "netutils.html#writeMACAddress"}, - {"title": "netutils.writeIPv4Address", "text": " ", "tags": "", "loc": "netutils.html#writeIPv4Address"}, - {"title": "netutils.writeMACAddressEx", "text": " ", "tags": "", "loc": "netutils.html#writeMACAddressEx"}, - {"title": "netutils.writeIPv4AddressEx", "text": " ", "tags": "", "loc": "netutils.html#writeIPv4AddressEx"}, - {"title": "netutils.MACEqual", "text": " ", "tags": "", "loc": "netutils.html#MACEqual"}, - {"title": "netutils.IPEqual", "text": " ", "tags": "", "loc": "netutils.html#IPEqual"}, - {"title": "netutils.newPacketContext", "text": " ", "tags": "", "loc": "netutils.html#newPacketContext"}, - {"title": "netutils.freePacketContext", "text": " ", "tags": "", "loc": "netutils.html#freePacketContext"}, - {"title": "netutils.calculateChecksum", "text": " ", "tags": "", "loc": "netutils.html#calculateChecksum"}, - {"title": "netutils.verifyChecksum", "text": " ", "tags": "", "loc": "netutils.html#verifyChecksum"}, - {"title": "netutils.sameSubnetIPv4", "text": " ", "tags": "", "loc": "netutils.html#sameSubnetIPv4"}, - {"title": "netutils.contextMACSwitch", "text": " ", "tags": "", "loc": "netutils.html#contextMACSwitch"}, - {"title": "netutils.contextIPv4Switch", "text": " ", "tags": "", "loc": "netutils.html#contextIPv4Switch"}, - {"title": "NMIE", "text": "

Kieron Morris ", "tags": "", "loc": "NMIE.html"}, - {"title": "NMIE.register", "text": " ", "tags": "", "loc": "NMIE.html#register"}, - {"title": "OHCI", "text": "

Kieron Morris ", "tags": "", "loc": "OHCI.html"}, - {"title": "OHCI.TOHCI_MMR", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html"}, - {"title": "OHCI.TOHCI_MMR.HcRevision", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcRevision"}, - {"title": "OHCI.TOHCI_MMR.HcControl", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcControl"}, - {"title": "OHCI.TOHCI_MMR.HcCommandStatus", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcCommandStatus"}, - {"title": "OHCI.TOHCI_MMR.HcIntStatus", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcIntStatus"}, - {"title": "OHCI.TOHCI_MMR.HcIntEnable", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcIntEnable"}, - {"title": "OHCI.TOHCI_MMR.HcIntDisable", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcIntDisable"}, - {"title": "OHCI.TOHCI_MMR.HcHCCA", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcHCCA"}, - {"title": "OHCI.TOHCI_MMR.HcPeriodCurrentED", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcPeriodCurrentED"}, - {"title": "OHCI.TOHCI_MMR.HcControlHeadED", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcControlHeadED"}, - {"title": "OHCI.TOHCI_MMR.HcControlCurrentED", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcControlCurrentED"}, - {"title": "OHCI.TOHCI_MMR.HcBulkHeadED", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcBulkHeadED"}, - {"title": "OHCI.TOHCI_MMR.HcBulkCurrentED", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcBulkCurrentED"}, - {"title": "OHCI.TOHCI_MMR.HcDoneHead", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcDoneHead"}, - {"title": "OHCI.TOHCI_MMR.HcFmRemaining", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcFmRemaining"}, - {"title": "OHCI.TOHCI_MMR.HcFmNumber", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcFmNumber"}, - {"title": "OHCI.TOHCI_MMR.HcPeriodicStart", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcPeriodicStart"}, - {"title": "OHCI.TOHCI_MMR.HcLSThreshold", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcLSThreshold"}, - {"title": "OHCI.TOHCI_MMR.HcRhDescriptorA", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcRhDescriptorA"}, - {"title": "OHCI.TOHCI_MMR.HcRhDescriptorB", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcRhDescriptorB"}, - {"title": "OHCI.TOHCI_MMR.HcRhStatus", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcRhStatus"}, - {"title": "OHCI.load", "text": " ", "tags": "", "loc": "OHCI.html#load"}, - {"title": "OHCI.POHCI_MMR", "text": " ", "tags": "", "loc": "OHCI.html#POHCI_MMR"}, - {"title": "OOBE", "text": "

Kieron Morris ", "tags": "", "loc": "OOBE.html"}, - {"title": "OOBE.register", "text": " ", "tags": "", "loc": "OOBE.html#register"}, - {"title": "PCI", "text": "

Aaron Hance Kieron Morris ", "tags": "", "loc": "PCI.html"}, - {"title": "PCI.PCI_PORT_CONF_ADDR", "text": " ", "tags": "", "loc": "PCI.html#PCI_PORT_CONF_ADDR"}, - {"title": "PCI.PCI_PORT_CONF_DATA", "text": " ", "tags": "", "loc": "PCI.html#PCI_PORT_CONF_DATA"}, - {"title": "PCI.init", "text": " ", "tags": "", "loc": "PCI.html#init"}, - {"title": "PCI.scanBus", "text": " ", "tags": "", "loc": "PCI.html#scanBus"}, - {"title": "PCI.loadDeviceConfig", "text": " ", "tags": "", "loc": "PCI.html#loadDeviceConfig"}, - {"title": "PCI.getDeviceInfo", "text": " ", "tags": "", "loc": "PCI.html#getDeviceInfo"}, - {"title": "PCI.requestConfig", "text": " ", "tags": "", "loc": "PCI.html#requestConfig"}, - {"title": "PCI.writeConfig", "text": " ", "tags": "", "loc": "PCI.html#writeConfig"}, - {"title": "PCI.setBusMaster", "text": " ", "tags": "", "loc": "PCI.html#setBusMaster"}, - {"title": "PCI.TPCI_Device_Bridge", "text": " ", "tags": "", "loc": "PCI.html#TPCI_Device_Bridge"}, - {"title": "PCI.devices", "text": " ", "tags": "", "loc": "PCI.html#devices"}, - {"title": "PCI.busses", "text": " ", "tags": "", "loc": "PCI.html#busses"}, - {"title": "PCI.device_count", "text": " ", "tags": "", "loc": "PCI.html#device_count"}, - {"title": "PCI.bus_count", "text": " ", "tags": "", "loc": "PCI.html#bus_count"}, - {"title": "PCI.get_device_count", "text": " ", "tags": "", "loc": "PCI.html#get_device_count"}, - {"title": "PF", "text": "

Kieron Morris ", "tags": "", "loc": "PF.html"}, - {"title": "PF.register", "text": " ", "tags": "", "loc": "PF.html#register"}, - {"title": "pmemorymanager", "text": " Kieron Morris ", "tags": "", "loc": "pmemorymanager.html"}, - {"title": "pmemorymanager.TPhysicalMemoryEntry", "text": " ", "tags": "", "loc": "pmemorymanager.TPhysicalMemoryEntry.html"}, - {"title": "pmemorymanager.TPhysicalMemoryEntry.Scanned", "text": " ", "tags": "", "loc": "pmemorymanager.TPhysicalMemoryEntry.html#Scanned"}, - {"title": "pmemorymanager.TPhysicalMemoryEntry.Present", "text": " ", "tags": "", "loc": "pmemorymanager.TPhysicalMemoryEntry.html#Present"}, - {"title": "pmemorymanager.TPhysicalMemoryEntry.Allocated", "text": " ", "tags": "", "loc": "pmemorymanager.TPhysicalMemoryEntry.html#Allocated"}, - {"title": "pmemorymanager.TPhysicalMemoryEntry.MappedTo", "text": " ", "tags": "", "loc": "pmemorymanager.TPhysicalMemoryEntry.html#MappedTo"}, - {"title": "pmemorymanager.init", "text": " ", "tags": "", "loc": "pmemorymanager.html#init"}, - {"title": "pmemorymanager.alloc_block", "text": " ", "tags": "", "loc": "pmemorymanager.html#alloc_block"}, - {"title": "pmemorymanager.force_alloc_block", "text": " ", "tags": "", "loc": "pmemorymanager.html#force_alloc_block"}, - {"title": "pmemorymanager.new_block", "text": " ", "tags": "", "loc": "pmemorymanager.html#new_block"}, - {"title": "pmemorymanager.free_block", "text": " ", "tags": "", "loc": "pmemorymanager.html#free_block"}, - {"title": "pmemorymanager.TPhysicalMemory", "text": " ", "tags": "", "loc": "pmemorymanager.html#TPhysicalMemory"}, - {"title": "processloader", "text": "

Kieron Morris ", "tags": "", "loc": "processloader.html"}, - {"title": "PS2_KEYBOARD_ISR", "text": "

Aaron Hance Kieron Morris ", "tags": "", "loc": "PS2_KEYBOARD_ISR.html"}, - {"title": "PS2_KEYBOARD_ISR.register", "text": " ", "tags": "", "loc": "PS2_KEYBOARD_ISR.html#register"}, - {"title": "PS2_KEYBOARD_ISR.hook", "text": " ", "tags": "", "loc": "PS2_KEYBOARD_ISR.html#hook"}, - {"title": "PS2_KEYBOARD_ISR.unhook", "text": " ", "tags": "", "loc": "PS2_KEYBOARD_ISR.html#unhook"}, - {"title": "RTC", "text": "

Kieron Morris ", "tags": "", "loc": "RTC.html"}, - {"title": "RTC.TDateTime", "text": " ", "tags": "", "loc": "RTC.TDateTime.html"}, - {"title": "RTC.TDateTime.Seconds", "text": " ", "tags": "", "loc": "RTC.TDateTime.html#Seconds"}, - {"title": "RTC.TDateTime.Minutes", "text": " ", "tags": "", "loc": "RTC.TDateTime.html#Minutes"}, - {"title": "RTC.TDateTime.Hours", "text": " ", "tags": "", "loc": "RTC.TDateTime.html#Hours"}, - {"title": "RTC.TDateTime.Weekday", "text": " ", "tags": "", "loc": "RTC.TDateTime.html#Weekday"}, - {"title": "RTC.TDateTime.Day", "text": " ", "tags": "", "loc": "RTC.TDateTime.html#Day"}, - {"title": "RTC.TDateTime.Month", "text": " ", "tags": "", "loc": "RTC.TDateTime.html#Month"}, - {"title": "RTC.TDateTime.Year", "text": " ", "tags": "", "loc": "RTC.TDateTime.html#Year"}, - {"title": "RTC.TDateTime.Century", "text": " ", "tags": "", "loc": "RTC.TDateTime.html#Century"}, - {"title": "RTC.init", "text": " ", "tags": "", "loc": "RTC.html#init"}, - {"title": "RTC.getDateTime", "text": " ", "tags": "", "loc": "RTC.html#getDateTime"}, - {"title": "RTC.weekdayToString", "text": " ", "tags": "", "loc": "RTC.html#weekdayToString"}, - {"title": "scheduler", "text": "

Kieron Morris ", "tags": "", "loc": "scheduler.html"}, - {"title": "scheduler.TTaskState", "text": " ", "tags": "", "loc": "scheduler.TTaskState.html"}, - {"title": "scheduler.TScheduler_Entry", "text": " ", "tags": "", "loc": "scheduler.TScheduler_Entry.html"}, - {"title": "scheduler.TScheduler_Entry.ThreadID", "text": " ", "tags": "", "loc": "scheduler.TScheduler_Entry.html#ThreadID"}, - {"title": "scheduler.TScheduler_Entry.Priority", "text": " ", "tags": "", "loc": "scheduler.TScheduler_Entry.html#Priority"}, - {"title": "scheduler.TScheduler_Entry.Delta", "text": " ", "tags": "", "loc": "scheduler.TScheduler_Entry.html#Delta"}, - {"title": "scheduler.TScheduler_Entry.Next", "text": " ", "tags": "", "loc": "scheduler.TScheduler_Entry.html#Next"}, - {"title": "scheduler.Quantum", "text": " ", "tags": "", "loc": "scheduler.html#Quantum"}, - {"title": "scheduler.init", "text": " ", "tags": "", "loc": "scheduler.html#init"}, - {"title": "scheduler.add_task", "text": " ", "tags": "", "loc": "scheduler.html#add_task"}, - {"title": "scheduler.PScheduler_Entry", "text": " ", "tags": "", "loc": "scheduler.html#PScheduler_Entry"}, - {"title": "scheduler.Active", "text": " ", "tags": "", "loc": "scheduler.html#Active"}, - {"title": "serial", "text": "

Kieron Morris ", "tags": "", "loc": "serial.html"}, - {"title": "serial.COM1", "text": " ", "tags": "", "loc": "serial.html#COM1"}, - {"title": "serial.COM2", "text": " ", "tags": "", "loc": "serial.html#COM2"}, - {"title": "serial.COM3", "text": " ", "tags": "", "loc": "serial.html#COM3"}, - {"title": "serial.COM4", "text": " ", "tags": "", "loc": "serial.html#COM4"}, - {"title": "serial.init", "text": " ", "tags": "", "loc": "serial.html#init"}, - {"title": "serial.receive", "text": " ", "tags": "", "loc": "serial.html#receive"}, - {"title": "serial.send", "text": " ", "tags": "", "loc": "serial.html#send"}, - {"title": "serial.sendString", "text": " ", "tags": "", "loc": "serial.html#sendString"}, - {"title": "SFE", "text": "

Kieron Morris ", "tags": "", "loc": "SFE.html"}, - {"title": "SFE.register", "text": " ", "tags": "", "loc": "SFE.html#register"}, - {"title": "shell", "text": "

Kieron Morris ", "tags": "", "loc": "shell.html"}, - {"title": "shell.init", "text": " ", "tags": "", "loc": "shell.html#init"}, - {"title": "shell.getTaskbarColorsPtr", "text": " ", "tags": "", "loc": "shell.html#getTaskbarColorsPtr"}, - {"title": "shell.getExploreColorsPtr", "text": " ", "tags": "", "loc": "shell.html#getExploreColorsPtr"}, - {"title": "shell.getDesktopColorsPtr", "text": " ", "tags": "", "loc": "shell.html#getDesktopColorsPtr"}, - {"title": "SNPE", "text": "

Kieron Morris ", "tags": "", "loc": "SNPE.html"}, - {"title": "SNPE.register", "text": " ", "tags": "", "loc": "SNPE.html#register"}, - {"title": "splash", "text": "

Kieron Morris ", "tags": "", "loc": "splash.html"}, - {"title": "splash.init", "text": " ", "tags": "", "loc": "splash.html#init"}, - {"title": "strings", "text": "

Kieron Morris ", "tags": "", "loc": "strings.html"}, - {"title": "strings.stringToUpper", "text": " ", "tags": "", "loc": "strings.html#stringToUpper"}, - {"title": "strings.stringToLower", "text": " ", "tags": "", "loc": "strings.html#stringToLower"}, - {"title": "strings.stringEquals", "text": " ", "tags": "", "loc": "strings.html#stringEquals"}, - {"title": "strings.stringCopy", "text": " ", "tags": "", "loc": "strings.html#stringCopy"}, - {"title": "strings.stringNew", "text": " ", "tags": "", "loc": "strings.html#stringNew"}, - {"title": "strings.stringSize", "text": " ", "tags": "", "loc": "strings.html#stringSize"}, - {"title": "strings.stringConcat", "text": " ", "tags": "", "loc": "strings.html#stringConcat"}, - {"title": "strings.stringContains", "text": " ", "tags": "", "loc": "strings.html#stringContains"}, - {"title": "strings.stringToInt", "text": " ", "tags": "", "loc": "strings.html#stringToInt"}, - {"title": "strings.hexStringToInt", "text": " ", "tags": "", "loc": "strings.html#hexStringToInt"}, - {"title": "strings.intToString", "text": " ", "tags": "", "loc": "strings.html#intToString"}, - {"title": "strings.boolToString", "text": " ", "tags": "", "loc": "strings.html#boolToString"}, - {"title": "system", "text": "

Kieron Morris Aaron Hance ", "tags": "", "loc": "system.html"}, - {"title": "system.KERNEL_VIRTUAL_BASE", "text": " ", "tags": "", "loc": "system.html#KERNEL_VIRTUAL_BASE"}, - {"title": "system.KERNEL_PAGE_NUMBER", "text": " ", "tags": "", "loc": "system.html#KERNEL_PAGE_NUMBER"}, - {"title": "system.BSOD_ENABLE", "text": " ", "tags": "", "loc": "system.html#BSOD_ENABLE"}, - {"title": "system.TRACER_ENABLE", "text": " ", "tags": "", "loc": "system.html#TRACER_ENABLE"}, - {"title": "system.CONSOLE_SLOW_REDRAW", "text": " ", "tags": "", "loc": "system.html#CONSOLE_SLOW_REDRAW"}, - {"title": "system.cardinal", "text": " internal types ", "tags": "", "loc": "system.html#cardinal"}, - {"title": "system.hresult", "text": " ", "tags": "", "loc": "system.html#hresult"}, - {"title": "system.dword", "text": " ", "tags": "", "loc": "system.html#dword"}, - {"title": "system.integer", "text": " ", "tags": "", "loc": "system.html#integer"}, - {"title": "system.pchar", "text": " ", "tags": "", "loc": "system.html#pchar"}, - {"title": "system.uInt8", "text": " ", "tags": "", "loc": "system.html#uInt8"}, - {"title": "system.uInt16", "text": " ", "tags": "", "loc": "system.html#uInt16"}, - {"title": "system.uInt32", "text": " ", "tags": "", "loc": "system.html#uInt32"}, - {"title": "system.uInt64", "text": " ", "tags": "", "loc": "system.html#uInt64"}, - {"title": "system.sInt8", "text": " ", "tags": "", "loc": "system.html#sInt8"}, - {"title": "system.sInt16", "text": " ", "tags": "", "loc": "system.html#sInt16"}, - {"title": "system.sInt32", "text": " ", "tags": "", "loc": "system.html#sInt32"}, - {"title": "system.sInt64", "text": " ", "tags": "", "loc": "system.html#sInt64"}, - {"title": "system.Float", "text": " ", "tags": "", "loc": "system.html#Float"}, - {"title": "system.PuByte", "text": " ", "tags": "", "loc": "system.html#PuByte"}, - {"title": "system.PuInt8", "text": " ", "tags": "", "loc": "system.html#PuInt8"}, - {"title": "system.PuInt16", "text": " ", "tags": "", "loc": "system.html#PuInt16"}, - {"title": "system.PuInt32", "text": " ", "tags": "", "loc": "system.html#PuInt32"}, - {"title": "system.PuInt64", "text": " ", "tags": "", "loc": "system.html#PuInt64"}, - {"title": "system.PsInt8", "text": " ", "tags": "", "loc": "system.html#PsInt8"}, - {"title": "system.PsInt16", "text": " ", "tags": "", "loc": "system.html#PsInt16"}, - {"title": "system.PsInt32", "text": " ", "tags": "", "loc": "system.html#PsInt32"}, - {"title": "system.PsInt64", "text": " ", "tags": "", "loc": "system.html#PsInt64"}, - {"title": "system.PFloat", "text": " ", "tags": "", "loc": "system.html#PFloat"}, - {"title": "system.PDouble", "text": " ", "tags": "", "loc": "system.html#PDouble"}, - {"title": "system.Void", "text": " ", "tags": "", "loc": "system.html#Void"}, - {"title": "system.HWND", "text": " ", "tags": "", "loc": "system.html#HWND"}, - {"title": "system.UBit1", "text": " ", "tags": "", "loc": "system.html#UBit1"}, - {"title": "system.UBit2", "text": " ", "tags": "", "loc": "system.html#UBit2"}, - {"title": "system.UBit3", "text": " ", "tags": "", "loc": "system.html#UBit3"}, - {"title": "system.UBit4", "text": " ", "tags": "", "loc": "system.html#UBit4"}, - {"title": "system.UBit5", "text": " ", "tags": "", "loc": "system.html#UBit5"}, - {"title": "system.UBit6", "text": " ", "tags": "", "loc": "system.html#UBit6"}, - {"title": "system.UBit7", "text": " ", "tags": "", "loc": "system.html#UBit7"}, - {"title": "system.UBit9", "text": " ", "tags": "", "loc": "system.html#UBit9"}, - {"title": "system.UBit10", "text": " ", "tags": "", "loc": "system.html#UBit10"}, - {"title": "system.UBit11", "text": " ", "tags": "", "loc": "system.html#UBit11"}, - {"title": "system.UBit12", "text": " ", "tags": "", "loc": "system.html#UBit12"}, - {"title": "system.UBit13", "text": " ", "tags": "", "loc": "system.html#UBit13"}, - {"title": "system.UBit14", "text": " ", "tags": "", "loc": "system.html#UBit14"}, - {"title": "system.UBit15", "text": " ", "tags": "", "loc": "system.html#UBit15"}, - {"title": "system.UBit16", "text": " ", "tags": "", "loc": "system.html#UBit16"}, - {"title": "system.UBit17", "text": " ", "tags": "", "loc": "system.html#UBit17"}, - {"title": "system.UBit18", "text": " ", "tags": "", "loc": "system.html#UBit18"}, - {"title": "system.UBit19", "text": " ", "tags": "", "loc": "system.html#UBit19"}, - {"title": "system.UBit20", "text": " ", "tags": "", "loc": "system.html#UBit20"}, - {"title": "system.UBit21", "text": " ", "tags": "", "loc": "system.html#UBit21"}, - {"title": "system.UBit22", "text": " ", "tags": "", "loc": "system.html#UBit22"}, - {"title": "system.UBit23", "text": " ", "tags": "", "loc": "system.html#UBit23"}, - {"title": "system.UBit24", "text": " ", "tags": "", "loc": "system.html#UBit24"}, - {"title": "system.UBit25", "text": " ", "tags": "", "loc": "system.html#UBit25"}, - {"title": "system.UBit26", "text": " ", "tags": "", "loc": "system.html#UBit26"}, - {"title": "system.UBit27", "text": " ", "tags": "", "loc": "system.html#UBit27"}, - {"title": "system.UBit28", "text": " ", "tags": "", "loc": "system.html#UBit28"}, - {"title": "system.UBit30", "text": " ", "tags": "", "loc": "system.html#UBit30"}, - {"title": "system.UBit31", "text": " ", "tags": "", "loc": "system.html#UBit31"}, - {"title": "system.TBitMask", "text": " ", "tags": "", "loc": "system.html#TBitMask"}, - {"title": "system.PBitMask", "text": " ", "tags": "", "loc": "system.html#PBitMask"}, - {"title": "system.TMask", "text": " ", "tags": "", "loc": "system.html#TMask"}, - {"title": "system.PMask", "text": " ", "tags": "", "loc": "system.html#PMask"}, - {"title": "system.TRGB565", "text": " ", "tags": "", "loc": "system.html#TRGB565"}, - {"title": "system.PRGB565", "text": " ", "tags": "", "loc": "system.html#PRGB565"}, - {"title": "system.TRGB565Pair", "text": " ", "tags": "", "loc": "system.html#TRGB565Pair"}, - {"title": "system.PRGB565Pair", "text": " ", "tags": "", "loc": "system.html#PRGB565Pair"}, - {"title": "tcp", "text": "

Kieron Morris ", "tags": "", "loc": "tcp.html"}, - {"title": "terminal", "text": "

Kieron Morris ", "tags": "", "loc": "terminal.html"}, - {"title": "terminal.TParamList", "text": " ", "tags": "", "loc": "terminal.TParamList.html"}, - {"title": "terminal.TParamList.Param", "text": " ", "tags": "", "loc": "terminal.TParamList.html#Param"}, - {"title": "terminal.TParamList.Next", "text": " ", "tags": "", "loc": "terminal.TParamList.html#Next"}, - {"title": "terminal.THistory", "text": " ", "tags": "", "loc": "terminal.THistory.html"}, - {"title": "terminal.THistory.Command", "text": " ", "tags": "", "loc": "terminal.THistory.html#Command"}, - {"title": "terminal.THistory.Next", "text": " ", "tags": "", "loc": "terminal.THistory.html#Next"}, - {"title": "terminal.TCommand", "text": " ", "tags": "", "loc": "terminal.TCommand.html"}, - {"title": "terminal.TCommand.registered", "text": " ", "tags": "", "loc": "terminal.TCommand.html#registered"}, - {"title": "terminal.TCommand.hidden", "text": " ", "tags": "", "loc": "terminal.TCommand.html#hidden"}, - {"title": "terminal.TCommand.command", "text": " ", "tags": "", "loc": "terminal.TCommand.html#command"}, - {"title": "terminal.TCommand.method", "text": " ", "tags": "", "loc": "terminal.TCommand.html#method"}, - {"title": "terminal.TCommand.description", "text": " ", "tags": "", "loc": "terminal.TCommand.html#description"}, - {"title": "terminal.run", "text": " ", "tags": "", "loc": "terminal.html#run"}, - {"title": "terminal.init", "text": " ", "tags": "", "loc": "terminal.html#init"}, - {"title": "terminal.registerCommand", "text": " ", "tags": "", "loc": "terminal.html#registerCommand"}, - {"title": "terminal.registerCommandEx", "text": " ", "tags": "", "loc": "terminal.html#registerCommandEx"}, - {"title": "terminal.getParams", "text": " ", "tags": "", "loc": "terminal.html#getParams"}, - {"title": "terminal.paramCount", "text": " ", "tags": "", "loc": "terminal.html#paramCount"}, - {"title": "terminal.getParam", "text": " ", "tags": "", "loc": "terminal.html#getParam"}, - {"title": "terminal.setWorkingDirectory", "text": " ", "tags": "", "loc": "terminal.html#setWorkingDirectory"}, - {"title": "terminal.getWorkingDirectory", "text": " ", "tags": "", "loc": "terminal.html#getWorkingDirectory"}, - {"title": "terminal.getTerminalHWND", "text": " ", "tags": "", "loc": "terminal.html#getTerminalHWND"}, - {"title": "terminal.halt", "text": " ", "tags": "", "loc": "terminal.html#halt"}, - {"title": "terminal.done", "text": " ", "tags": "", "loc": "terminal.html#done"}, - {"title": "terminal.THaltCallback", "text": " ", "tags": "", "loc": "terminal.html#THaltCallback"}, - {"title": "terminal.PParamList", "text": " ", "tags": "", "loc": "terminal.html#PParamList"}, - {"title": "terminal.PHistory", "text": " ", "tags": "", "loc": "terminal.html#PHistory"}, - {"title": "terminal.TCommandBuffer", "text": " ", "tags": "", "loc": "terminal.html#TCommandBuffer"}, - {"title": "terminal.TCommandMethod", "text": " ", "tags": "", "loc": "terminal.html#TCommandMethod"}, - {"title": "terminal.buffer", "text": " ", "tags": "", "loc": "terminal.html#buffer"}, - {"title": "terminal.History", "text": " ", "tags": "", "loc": "terminal.html#History"}, - {"title": "terminal.bIndex", "text": " ", "tags": "", "loc": "terminal.html#bIndex"}, - {"title": "terminal.Commands", "text": " ", "tags": "", "loc": "terminal.html#Commands"}, - {"title": "terminal.Working_Directory", "text": " ", "tags": "", "loc": "terminal.html#Working_Directory"}, - {"title": "terminal.Halted", "text": " ", "tags": "", "loc": "terminal.html#Halted"}, - {"title": "terminal.HaltID", "text": " ", "tags": "", "loc": "terminal.html#HaltID"}, - {"title": "terminal.HaltCB", "text": " ", "tags": "", "loc": "terminal.html#HaltCB"}, - {"title": "testdriver", "text": "

Kieron Morris ", "tags": "", "loc": "testdriver.html"}, - {"title": "testdriver.init", "text": " ", "tags": "", "loc": "testdriver.html#init"}, - {"title": "themer", "text": "

Kieron Morris ", "tags": "", "loc": "themer.html"}, - {"title": "themer.init", "text": " ", "tags": "", "loc": "themer.html#init"}, - {"title": "TMR_0_ISR", "text": "

Kieron Morris ", "tags": "", "loc": "TMR_0_ISR.html"}, - {"title": "TMR_0_ISR.register", "text": " ", "tags": "", "loc": "TMR_0_ISR.html#register"}, - {"title": "TMR_0_ISR.hook", "text": " ", "tags": "", "loc": "TMR_0_ISR.html#hook"}, - {"title": "TMR_0_ISR.unhook", "text": " ", "tags": "", "loc": "TMR_0_ISR.html#unhook"}, - {"title": "TMR_1_ISR", "text": "

Kieron Morris ", "tags": "", "loc": "TMR_1_ISR.html"}, - {"title": "TMR_1_ISR.register", "text": " ", "tags": "", "loc": "TMR_1_ISR.html#register"}, - {"title": "TMR_1_ISR.hook", "text": " ", "tags": "", "loc": "TMR_1_ISR.html#hook"}, - {"title": "TMR_1_ISR.unhook", "text": " ", "tags": "", "loc": "TMR_1_ISR.html#unhook"}, - {"title": "tracer", "text": "

Kieron Morris ", "tags": "", "loc": "tracer.html"}, - {"title": "tracer.init", "text": " ", "tags": "", "loc": "tracer.html#init"}, - {"title": "tracer.push_trace", "text": " ", "tags": "", "loc": "tracer.html#push_trace"}, - {"title": "tracer.pop_trace", "text": " ", "tags": "", "loc": "tracer.html#pop_trace"}, - {"title": "tracer.get_last_trace", "text": " ", "tags": "", "loc": "tracer.html#get_last_trace"}, - {"title": "tracer.freeze", "text": " ", "tags": "", "loc": "tracer.html#freeze"}, - {"title": "tracer.get_trace_count", "text": " ", "tags": "", "loc": "tracer.html#get_trace_count"}, - {"title": "tracer.get_trace_N", "text": " ", "tags": "", "loc": "tracer.html#get_trace_N"}, - {"title": "tss", "text": "

Kieron Morris ", "tags": "", "loc": "tss.html"}, - {"title": "tss.TTaskStateSegment", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html"}, - {"title": "tss.TTaskStateSegment.link", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#link"}, - {"title": "tss.TTaskStateSegment.link_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#link_h"}, - {"title": "tss.TTaskStateSegment.esp0", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#esp0"}, - {"title": "tss.TTaskStateSegment.ss0", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ss0"}, - {"title": "tss.TTaskStateSegment.ss0_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ss0_h"}, - {"title": "tss.TTaskStateSegment.esp1", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#esp1"}, - {"title": "tss.TTaskStateSegment.ss1", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ss1"}, - {"title": "tss.TTaskStateSegment.ss1_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ss1_h"}, - {"title": "tss.TTaskStateSegment.esp2", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#esp2"}, - {"title": "tss.TTaskStateSegment.ss2", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ss2"}, - {"title": "tss.TTaskStateSegment.ss2_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ss2_h"}, - {"title": "tss.TTaskStateSegment.cr3", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#cr3"}, - {"title": "tss.TTaskStateSegment.eip", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#eip"}, - {"title": "tss.TTaskStateSegment.eflags", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#eflags"}, - {"title": "tss.TTaskStateSegment.eax", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#eax"}, - {"title": "tss.TTaskStateSegment.ecx", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ecx"}, - {"title": "tss.TTaskStateSegment.edx", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#edx"}, - {"title": "tss.TTaskStateSegment.ebx", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ebx"}, - {"title": "tss.TTaskStateSegment.esp", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#esp"}, - {"title": "tss.TTaskStateSegment.ebp", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ebp"}, - {"title": "tss.TTaskStateSegment.esi", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#esi"}, - {"title": "tss.TTaskStateSegment.edi", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#edi"}, - {"title": "tss.TTaskStateSegment.es", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#es"}, - {"title": "tss.TTaskStateSegment.es_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#es_h"}, - {"title": "tss.TTaskStateSegment.cs", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#cs"}, - {"title": "tss.TTaskStateSegment.cs_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#cs_h"}, - {"title": "tss.TTaskStateSegment.ss", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ss"}, - {"title": "tss.TTaskStateSegment.ss_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ss_h"}, - {"title": "tss.TTaskStateSegment.ds", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ds"}, - {"title": "tss.TTaskStateSegment.ds_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ds_h"}, - {"title": "tss.TTaskStateSegment.fs", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#fs"}, - {"title": "tss.TTaskStateSegment.fs_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#fs_h"}, - {"title": "tss.TTaskStateSegment.gs", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#gs"}, - {"title": "tss.TTaskStateSegment.gs_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#gs_h"}, - {"title": "tss.TTaskStateSegment.ldt", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ldt"}, - {"title": "tss.TTaskStateSegment.ldt_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ldt_h"}, - {"title": "tss.TTaskStateSegment.trap", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#trap"}, - {"title": "tss.TTaskStateSegment.iomap", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#iomap"}, - {"title": "tss.init", "text": " ", "tags": "", "loc": "tss.html#init"}, - {"title": "tss.PTaskStateSegment", "text": " ", "tags": "", "loc": "tss.html#PTaskStateSegment"}, - {"title": "tss.TaskStateSegment", "text": " ", "tags": "", "loc": "tss.html#TaskStateSegment"}, - {"title": "tss.ptrTaskStateSegment", "text": " ", "tags": "", "loc": "tss.html#ptrTaskStateSegment"}, - {"title": "types", "text": "

Kieron Morris ", "tags": "", "loc": "types.html"}, - {"title": "udp", "text": "

Kieron Morris ", "tags": "", "loc": "udp.html"}, - {"title": "UHCI", "text": "

Kieron Morris ", "tags": "", "loc": "UHCI.html"}, - {"title": "UHCI.load", "text": " ", "tags": "", "loc": "UHCI.html#load"}, - {"title": "UIE", "text": "

Kieron Morris ", "tags": "", "loc": "UIE.html"}, - {"title": "UIE.register", "text": " ", "tags": "", "loc": "UIE.html#register"}, - {"title": "USB", "text": "

Kieron Morris ", "tags": "", "loc": "USB.html"}, - {"title": "USB.init", "text": " ", "tags": "", "loc": "USB.html#init"}, - {"title": "util", "text": "

Kieron Morris ", "tags": "", "loc": "util.html"}, - {"title": "util.INTE", "text": " ", "tags": "", "loc": "util.html#INTE"}, - {"title": "util.CLI", "text": " ", "tags": "", "loc": "util.html#CLI"}, - {"title": "util.STI", "text": " ", "tags": "", "loc": "util.html#STI"}, - {"title": "util.GPF", "text": " ", "tags": "", "loc": "util.html#GPF"}, - {"title": "util.hi", "text": " ", "tags": "", "loc": "util.html#hi"}, - {"title": "util.lo", "text": " ", "tags": "", "loc": "util.html#lo"}, - {"title": "util.switchendian", "text": " ", "tags": "", "loc": "util.html#switchendian"}, - {"title": "util.switchendian32", "text": " ", "tags": "", "loc": "util.html#switchendian32"}, - {"title": "util.getWord", "text": " ", "tags": "", "loc": "util.html#getWord"}, - {"title": "util.getByte", "text": " ", "tags": "", "loc": "util.html#getByte"}, - {"title": "util.outb", "text": " ", "tags": "", "loc": "util.html#outb"}, - {"title": "util.outw", "text": " ", "tags": "", "loc": "util.html#outw"}, - {"title": "util.outl", "text": " ", "tags": "", "loc": "util.html#outl"}, - {"title": "util.inb", "text": " ", "tags": "", "loc": "util.html#inb"}, - {"title": "util.inw", "text": " ", "tags": "", "loc": "util.html#inw"}, - {"title": "util.inl", "text": " ", "tags": "", "loc": "util.html#inl"}, - {"title": "util.io_wait", "text": " ", "tags": "", "loc": "util.html#io_wait"}, - {"title": "util.memset", "text": " ", "tags": "", "loc": "util.html#memset"}, - {"title": "util.memcpy", "text": " ", "tags": "", "loc": "util.html#memcpy"}, - {"title": "util.printmemory", "text": " ", "tags": "", "loc": "util.html#printmemory"}, - {"title": "util.printmemoryWND", "text": " ", "tags": "", "loc": "util.html#printmemoryWND"}, - {"title": "util.halt_and_catch_fire", "text": " ", "tags": "", "loc": "util.html#halt_and_catch_fire"}, - {"title": "util.halt_and_dont_catch_fire", "text": " ", "tags": "", "loc": "util.html#halt_and_dont_catch_fire"}, - {"title": "util.BSOD", "text": " ", "tags": "", "loc": "util.html#BSOD"}, - {"title": "util.psleep", "text": " ", "tags": "", "loc": "util.html#psleep"}, - {"title": "util.sleep", "text": " ", "tags": "", "loc": "util.html#sleep"}, - {"title": "util.get16bitcounter", "text": " ", "tags": "", "loc": "util.html#get16bitcounter"}, - {"title": "util.get32bitcounter", "text": " ", "tags": "", "loc": "util.html#get32bitcounter"}, - {"title": "util.get64bitcounter", "text": " ", "tags": "", "loc": "util.html#get64bitcounter"}, - {"title": "util.getTSC", "text": " ", "tags": "", "loc": "util.html#getTSC"}, - {"title": "util.div6432", "text": " ", "tags": "", "loc": "util.html#div6432"}, - {"title": "util.BCDToUint8", "text": " ", "tags": "", "loc": "util.html#BCDToUint8"}, - {"title": "util.HexCharToDecimal", "text": " ", "tags": "", "loc": "util.html#HexCharToDecimal"}, - {"title": "util.resetSystem", "text": " ", "tags": "", "loc": "util.html#resetSystem"}, - {"title": "util.getESP", "text": " ", "tags": "", "loc": "util.html#getESP"}, - {"title": "util.MsSinceSystemBoot", "text": " ", "tags": "", "loc": "util.html#MsSinceSystemBoot"}, - {"title": "util.endptr", "text": " ", "tags": "", "loc": "util.html#endptr"}, - {"title": "util.stack", "text": " ", "tags": "", "loc": "util.html#stack"}, - {"title": "vmemorymanager", "text": "

Kieron Morris ", "tags": "", "loc": "vmemorymanager.html"}, - {"title": "vmemorymanager.init", "text": " ", "tags": "", "loc": "vmemorymanager.html#init"}, - {"title": "vmemorymanager.new_page", "text": " ", "tags": "", "loc": "vmemorymanager.html#new_page"}, - {"title": "vmemorymanager.map_page", "text": " ", "tags": "", "loc": "vmemorymanager.html#map_page"}, - {"title": "vmemorymanager.map_page_ex", "text": " ", "tags": "", "loc": "vmemorymanager.html#map_page_ex"}, - {"title": "vmemorymanager.new_page_at_address", "text": " ", "tags": "", "loc": "vmemorymanager.html#new_page_at_address"}, - {"title": "vmemorymanager.free_page", "text": " ", "tags": "", "loc": "vmemorymanager.html#free_page"}, - {"title": "vmemorymanager.free_page_at_address", "text": " ", "tags": "", "loc": "vmemorymanager.html#free_page_at_address"}, - {"title": "vmemorymanager.new_page_directory", "text": " ", "tags": "", "loc": "vmemorymanager.html#new_page_directory"}, - {"title": "vmemorymanager.new_kernel_mapped_page_directory", "text": " ", "tags": "", "loc": "vmemorymanager.html#new_kernel_mapped_page_directory"}, - {"title": "vmemorymanager.vtop", "text": " ", "tags": "", "loc": "vmemorymanager.html#vtop"}, - {"title": "vmemorymanager.PPageDirEntry", "text": " ", "tags": "", "loc": "vmemorymanager.html#PPageDirEntry"}, - {"title": "vmemorymanager.TPageDirEntry", "text": " ", "tags": "", "loc": "vmemorymanager.html#TPageDirEntry"}, - {"title": "vmemorymanager.TPageDirectory", "text": " ", "tags": "", "loc": "vmemorymanager.html#TPageDirectory"}, - {"title": "vmemorymanager.PPageDirectory", "text": " ", "tags": "", "loc": "vmemorymanager.html#PPageDirectory"}, - {"title": "vmemorymanager.KERNEL_PAGE_DIRECTORY", "text": " ", "tags": "", "loc": "vmemorymanager.html#KERNEL_PAGE_DIRECTORY"}, - {"title": "vmemorymanager.PageDirectory", "text": " ", "tags": "", "loc": "vmemorymanager.html#PageDirectory"}, - {"title": "vmlog", "text": "

Kieron Morris ", "tags": "", "loc": "vmlog.html"}, - {"title": "vmlog.init", "text": " ", "tags": "", "loc": "vmlog.html#init"}, - {"title": "vmlog.getVMLogHWND", "text": " ", "tags": "", "loc": "vmlog.html#getVMLogHWND"}, - {"title": "vmstate", "text": "

Kieron Morris ", "tags": "", "loc": "vmstate.html"}, - {"title": "vmstate.init", "text": " ", "tags": "", "loc": "vmstate.html#init"}, - {"title": "XHCI", "text": "

Kieron Morris ", "tags": "", "loc": "XHCI.html"}, - {"title": "XHCI.load", "text": " ", "tags": "", "loc": "XHCI.html#load"} -]}; +var tipuesearch = {"pages": [ + {"title": "ACE", "text": "

Kieron Morris ", "tags": "", "loc": "ACE.html"}, + {"title": "ACE.register", "text": " ", "tags": "", "loc": "ACE.html#register"}, + {"title": "arp", "text": "

Kieron Morris ", "tags": "", "loc": "arp.html"}, + {"title": "arp.TARPCacheRecord", "text": " ", "tags": "", "loc": "arp.TARPCacheRecord.html"}, + {"title": "arp.TARPCacheRecord.MAC", "text": " ", "tags": "", "loc": "arp.TARPCacheRecord.html#MAC"}, + {"title": "arp.TARPCacheRecord.IP", "text": " ", "tags": "", "loc": "arp.TARPCacheRecord.html#IP"}, + {"title": "arp.register", "text": " ", "tags": "", "loc": "arp.html#register"}, + {"title": "arp.IPv4ToMAC", "text": " ", "tags": "", "loc": "arp.html#IPv4ToMAC"}, + {"title": "arp.MACToIIPv4", "text": " ", "tags": "", "loc": "arp.html#MACToIIPv4"}, + {"title": "arp.sendGratuitous", "text": " ", "tags": "", "loc": "arp.html#sendGratuitous"}, + {"title": "arp.sendRequest", "text": " ", "tags": "", "loc": "arp.html#sendRequest"}, + {"title": "arp.send", "text": " ", "tags": "", "loc": "arp.html#send"}, + {"title": "arp.resolveIP", "text": " ", "tags": "", "loc": "arp.html#resolveIP"}, + {"title": "arp.PARPCacheRecord", "text": " ", "tags": "", "loc": "arp.html#PARPCacheRecord"}, + {"title": "asuro", "text": " Asuro Compilation Script ", "tags": "", "loc": "asuro.html"}, + {"title": "asuro.VERSION", "text": " ", "tags": "", "loc": "asuro.html#VERSION"}, + {"title": "asuro.VERSION_MAJOR", "text": " ", "tags": "", "loc": "asuro.html#VERSION_MAJOR"}, + {"title": "asuro.VERSION_MINOR", "text": " ", "tags": "", "loc": "asuro.html#VERSION_MINOR"}, + {"title": "asuro.VERSION_SUB", "text": " ", "tags": "", "loc": "asuro.html#VERSION_SUB"}, + {"title": "asuro.REVISION", "text": " ", "tags": "", "loc": "asuro.html#REVISION"}, + {"title": "asuro.RELEASE", "text": " ", "tags": "", "loc": "asuro.html#RELEASE"}, + {"title": "asuro.LINE_COUNT", "text": " ", "tags": "", "loc": "asuro.html#LINE_COUNT"}, + {"title": "asuro.FILE_COUNT", "text": " ", "tags": "", "loc": "asuro.html#FILE_COUNT"}, + {"title": "asuro.DRIVER_COUNT", "text": " ", "tags": "", "loc": "asuro.html#DRIVER_COUNT"}, + {"title": "asuro.FPC_VERSION", "text": " ", "tags": "", "loc": "asuro.html#FPC_VERSION"}, + {"title": "asuro.NASM_VERSION", "text": " ", "tags": "", "loc": "asuro.html#NASM_VERSION"}, + {"title": "asuro.MAKE_VERSION", "text": " ", "tags": "", "loc": "asuro.html#MAKE_VERSION"}, + {"title": "asuro.COMPILE_DATE", "text": " ", "tags": "", "loc": "asuro.html#COMPILE_DATE"}, + {"title": "asuro.COMPILE_TIME", "text": " ", "tags": "", "loc": "asuro.html#COMPILE_TIME"}, + {"title": "asuro.CHECKSUM", "text": " ", "tags": "", "loc": "asuro.html#CHECKSUM"}, + {"title": "bios_data_area", "text": "

Kieron Morris ", "tags": "", "loc": "bios_data_area.html"}, + {"title": "bios_data_area.TCounters", "text": " ", "tags": "", "loc": "bios_data_area.TCounters.html"}, + {"title": "bios_data_area.TCounters.c16", "text": " ", "tags": "", "loc": "bios_data_area.TCounters.html#c16"}, + {"title": "bios_data_area.TCounters.c32", "text": " ", "tags": "", "loc": "bios_data_area.TCounters.html#c32"}, + {"title": "bios_data_area.TCounters.c64", "text": " ", "tags": "", "loc": "bios_data_area.TCounters.html#c64"}, + {"title": "bios_data_area.BDA", "text": " ", "tags": "", "loc": "bios_data_area.html#BDA"}, + {"title": "bios_data_area.tick_update", "text": " ", "tags": "", "loc": "bios_data_area.html#tick_update"}, + {"title": "bios_data_area.TBDA", "text": " ", "tags": "", "loc": "bios_data_area.html#TBDA"}, + {"title": "bios_data_area.PBDA", "text": " ", "tags": "", "loc": "bios_data_area.html#PBDA"}, + {"title": "bios_data_area.TMCFG", "text": " ", "tags": "", "loc": "bios_data_area.html#TMCFG"}, + {"title": "bios_data_area.PMCFG", "text": " ", "tags": "", "loc": "bios_data_area.html#PMCFG"}, + {"title": "bios_data_area.Counters", "text": " ", "tags": "", "loc": "bios_data_area.html#Counters"}, + {"title": "BPE", "text": "

Kieron Morris ", "tags": "", "loc": "BPE.html"}, + {"title": "BPE.register", "text": " ", "tags": "", "loc": "BPE.html#register"}, + {"title": "BTSSE", "text": "

Kieron Morris ", "tags": "", "loc": "BTSSE.html"}, + {"title": "BTSSE.register", "text": " ", "tags": "", "loc": "BTSSE.html#register"}, + {"title": "CFE", "text": "

Kieron Morris ", "tags": "", "loc": "CFE.html"}, + {"title": "CFE.register", "text": " ", "tags": "", "loc": "CFE.html#register"}, + {"title": "console", "text": "

Kieron Morris ", "tags": "", "loc": "console.html"}, + {"title": "console.MAX_WINDOWS", "text": " ", "tags": "", "loc": "console.html#MAX_WINDOWS"}, + {"title": "console.DefaultWND", "text": " (Default). ", "tags": "", "loc": "console.html#DefaultWND"}, + {"title": "console.init", "text": " ", "tags": "", "loc": "console.html#init"}, + {"title": "console.clear", "text": " ", "tags": "", "loc": "console.html#clear"}, + {"title": "console.setdefaultattribute", "text": " attribute A 32-bit value representing the Foreground & Background colors. attribute A 32-bit value representing the Foreground & Background colors.", "tags": "", "loc": "console.html#setdefaultattribute"}, + {"title": "console.disable_cursor", "text": " ", "tags": "", "loc": "console.html#disable_cursor"}, + {"title": "console.writechar", "text": " character An 8-bit value representing an ASCII character. character An 8-bit value representing an ASCII character.", "tags": "", "loc": "console.html#writechar"}, + {"title": "console.writecharln", "text": " character An 8-bit value representing an ASCII character. character An 8-bit value representing an ASCII character.", "tags": "", "loc": "console.html#writecharln"}, + {"title": "console.writecharex", "text": " character An 8-bit value representing an ASCII character. attributes A 32-bit value representing the colors for the background and foreground. character An 8-bit value representing an ASCII character. attributes A 32-bit value representing the colors for the background and foreground.", "tags": "", "loc": "console.html#writecharex"}, + {"title": "console.writecharlnex", "text": " character An 8-bit value representing an ASCII character. attributes A 32-bit value representing the colors for the background and foreground. character An 8-bit value representing an ASCII character. attributes A 32-bit value representing the colors for the background and foreground.", "tags": "", "loc": "console.html#writecharlnex"}, + {"title": "console.Output", "text": " identifier A NULL terminated string with the name of the module printing the output. str A NULL terminated string with the debug message. identifier A NULL terminated string with the name of the module printing the output. str A NULL terminated string with the debug message.", "tags": "", "loc": "console.html#Output"}, + {"title": "console.Outputln", "text": " identifier A NULL terminated string with the name of the module printing the output. str A NULL terminated string with the debug message. identifier A NULL terminated string with the name of the module printing the output. str A NULL terminated string with the debug message.", "tags": "", "loc": "console.html#Outputln"}, + {"title": "console.writestring", "text": " str A NULL terminated string with the debug message. str A NULL terminated string with the debug message.", "tags": "", "loc": "console.html#writestring"}, + {"title": "console.writestringln", "text": " str A NULL terminated string with the debug message. str A NULL terminated string with the debug message.", "tags": "", "loc": "console.html#writestringln"}, + {"title": "console.writestringex", "text": " str A NULL terminated string with the debug message. attributes A 32-bit representation of the background/foreground colors. str A NULL terminated string with the debug message. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writestringex"}, + {"title": "console.writestringlnex", "text": " str A NULL terminated string with the debug message. attributes A 32-bit representation of the background/foreground colors. str A NULL terminated string with the debug message. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writestringlnex"}, + {"title": "console.writeint", "text": " i A 32-bit value. i A 32-bit value.", "tags": "", "loc": "console.html#writeint"}, + {"title": "console.writeintln", "text": " i A 32-bit value. i A 32-bit value.", "tags": "", "loc": "console.html#writeintln"}, + {"title": "console.writeintex", "text": " i A 32-bit value. attributes A 32-bit representation of the background/foreground colors. i A 32-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writeintex"}, + {"title": "console.writeintlnex", "text": " i A 32-bit value. attributes A 32-bit representation of the background/foreground colors. i A 32-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writeintlnex"}, + {"title": "console.writehexpair", "text": " b An 8-bit value. b An 8-bit value.", "tags": "", "loc": "console.html#writehexpair"}, + {"title": "console.writehex", "text": " i A 32-bit value. i A 32-bit value.", "tags": "", "loc": "console.html#writehex"}, + {"title": "console.writehexln", "text": " i A 32-bit value. i A 32-bit value.", "tags": "", "loc": "console.html#writehexln"}, + {"title": "console.writehexex", "text": " b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. b A 32-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writehexex"}, + {"title": "console.writehexlnex", "text": " b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. b A 32-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writehexlnex"}, + {"title": "console.writebin8", "text": " b An 8-bit value. b An 8-bit value.", "tags": "", "loc": "console.html#writebin8"}, + {"title": "console.writebin8ln", "text": " b An 8-bit value. b An 8-bit value.", "tags": "", "loc": "console.html#writebin8ln"}, + {"title": "console.writebin8ex", "text": " b An 8-bit value. attributes A 32-bit representation of the background/foreground colors. b An 8-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writebin8ex"}, + {"title": "console.writebin8lnex", "text": " b An 8-bit value. attributes A 32-bit representation of the background/foreground colors. b An 8-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writebin8lnex"}, + {"title": "console.writebin16", "text": " b A 16-bit value. b A 16-bit value.", "tags": "", "loc": "console.html#writebin16"}, + {"title": "console.writebin16ln", "text": " b A 16-bit value. b A 16-bit value.", "tags": "", "loc": "console.html#writebin16ln"}, + {"title": "console.writebin16ex", "text": " b A 16-bit value. attributes A 32-bit representation of the background/foreground colors. b A 16-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writebin16ex"}, + {"title": "console.writebin16lnex", "text": " b A 16-bit value. attributes A 32-bit representation of the background/foreground colors. b A 16-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writebin16lnex"}, + {"title": "console.writebin32", "text": " b A 32-bit value. b A 32-bit value.", "tags": "", "loc": "console.html#writebin32"}, + {"title": "console.writebin32ln", "text": " b A 32-bit value. b A 32-bit value.", "tags": "", "loc": "console.html#writebin32ln"}, + {"title": "console.writebin32ex", "text": " b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. b A 32-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writebin32ex"}, + {"title": "console.writebin32lnex", "text": " b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. b A 32-bit value. attributes A 32-bit representation of the background/foreground colors.", "tags": "", "loc": "console.html#writebin32lnex"}, + {"title": "console.backspace", "text": " ", "tags": "", "loc": "console.html#backspace"}, + {"title": "console.combinecolors", "text": " Foreground A 16-bit value representing the foreground color. Background A 16-bit value representing the background color. A 32-bit value representing an attribute set. (uint32) Foreground A 16-bit value representing the foreground color. Background A 16-bit value representing the background color.", "tags": "", "loc": "console.html#combinecolors"}, + {"title": "console._increment_x", "text": " ", "tags": "", "loc": "console.html#_increment_x"}, + {"title": "console._increment_y", "text": " ", "tags": "", "loc": "console.html#_increment_y"}, + {"title": "console._safeincrement_x", "text": " ", "tags": "", "loc": "console.html#_safeincrement_x"}, + {"title": "console._safeincrement_y", "text": " ", "tags": "", "loc": "console.html#_safeincrement_y"}, + {"title": "console._newline", "text": " ", "tags": "", "loc": "console.html#_newline"}, + {"title": "console.clearWND", "text": " WND A Window Handle. WND A Window Handle.", "tags": "", "loc": "console.html#clearWND"}, + {"title": "console.clearWNDEx", "text": " WND A Window Handle. Attributes A 32-bit value representing an attribute set. WND A Window Handle. Attributes A 32-bit value representing an attribute set.", "tags": "", "loc": "console.html#clearWNDEx"}, + {"title": "console.writecharWND", "text": " Character An 8-bit value representing an ASCII character. WND A 32-bit handle to a Window. Character An 8-bit value representing an ASCII character. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writecharWND"}, + {"title": "console.writecharlnWND", "text": " character An 8-bit value representing an ASCII character. WND A 32-bit handle to a Window. character An 8-bit value representing an ASCII character. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writecharlnWND"}, + {"title": "console.writecharexWND", "text": " character An 8-bit value representing an ASCII character. attributes A 32-bit value representing the colors for the background and foreground. WND A 32-bit handle to a Window. character An 8-bit value representing an ASCII character. attributes A 32-bit value representing the colors for the background and foreground. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writecharexWND"}, + {"title": "console.writecharlnexWND", "text": " character An 8-bit value representing an ASCII character. attributes A 32-bit value representing the colors for the background and foreground. WND A 32-bit handle to a Window. character An 8-bit value representing an ASCII character. attributes A 32-bit value representing the colors for the background and foreground. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writecharlnexWND"}, + {"title": "console.OutputWND", "text": " identifier A NULL terminated string with the name of the module printing the output. str A NULL terminated string with the debug message. WND A 32-bit handle to a Window. identifier A NULL terminated string with the name of the module printing the output. str A NULL terminated string with the debug message. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#OutputWND"}, + {"title": "console.OutputlnWND", "text": " identifier A NULL terminated string with the name of the module printing the output. str A NULL terminated string with the debug message. WND A 32-bit handle to a Window. identifier A NULL terminated string with the name of the module printing the output. str A NULL terminated string with the debug message. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#OutputlnWND"}, + {"title": "console.writestringWND", "text": " str A NULL terminated string with the debug message. WND A 32-bit handle to a Window. str A NULL terminated string with the debug message. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writestringWND"}, + {"title": "console.writestringlnWND", "text": " str A NULL terminated string with the debug message. WND A 32-bit handle to a Window. str A NULL terminated string with the debug message. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writestringlnWND"}, + {"title": "console.writestringexWND", "text": " str A NULL terminated string with the debug message. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. str A NULL terminated string with the debug message. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writestringexWND"}, + {"title": "console.writestringlnexWND", "text": " str A NULL terminated string with the debug message. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. str A NULL terminated string with the debug message. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writestringlnexWND"}, + {"title": "console.writeintWND", "text": " i A 32-bit value. WND A 32-bit handle to a Window. i A 32-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writeintWND"}, + {"title": "console.writeintlnWND", "text": " i A 32-bit value. WND A 32-bit handle to a Window. i A 32-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writeintlnWND"}, + {"title": "console.writeintexWND", "text": " i A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. i A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writeintexWND"}, + {"title": "console.writeintlnexWND", "text": " i A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. i A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writeintlnexWND"}, + {"title": "console.writehexpairWND", "text": " b An 8-bit value. WND A 32-bit handle to a Window. b An 8-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writehexpairWND"}, + {"title": "console.writehexpairExWND", "text": " b An 8-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. b An 8-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writehexpairExWND"}, + {"title": "console.writehexWND", "text": " i A 32-bit value. WND A 32-bit handle to a Window. i A 32-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writehexWND"}, + {"title": "console.writehexlnWND", "text": " i A 32-bit value. WND A 32-bit handle to a Window. i A 32-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writehexlnWND"}, + {"title": "console.writehexexWND", "text": " b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writehexexWND"}, + {"title": "console.writehexlnexWND", "text": " b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writehexlnexWND"}, + {"title": "console.writebin8WND", "text": " b An 8-bit value. WND A 32-bit handle to a Window. b An 8-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin8WND"}, + {"title": "console.writebin8lnWND", "text": " b An 8-bit value. WND A 32-bit handle to a Window. b An 8-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin8lnWND"}, + {"title": "console.writebin8exWND", "text": " b An 8-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. b An 8-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin8exWND"}, + {"title": "console.writebin8lnexWND", "text": " b An 8-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. b An 8-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin8lnexWND"}, + {"title": "console.writebin16WND", "text": " b A 16-bit value. WND A 32-bit handle to a Window. b A 16-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin16WND"}, + {"title": "console.writebin16lnWND", "text": " b A 16-bit value. WND A 32-bit handle to a Window. b A 16-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin16lnWND"}, + {"title": "console.writebin16exWND", "text": " b A 16-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. b A 16-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin16exWND"}, + {"title": "console.writebin16lnexWND", "text": " b A 16-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. b A 16-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin16lnexWND"}, + {"title": "console.writebin32WND", "text": " b A 32-bit value. WND A 32-bit handle to a Window. b A 32-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin32WND"}, + {"title": "console.writebin32lnWND", "text": " b A 32-bit value. WND A 32-bit handle to a Window. b A 32-bit value. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin32lnWND"}, + {"title": "console.writebin32exWND", "text": " b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin32exWND"}, + {"title": "console.writebin32lnexWND", "text": " b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window. b A 32-bit value. attributes A 32-bit representation of the background/foreground colors. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#writebin32lnexWND"}, + {"title": "console.backspaceWND", "text": " WND A 32-bit handle to a Window. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#backspaceWND"}, + {"title": "console.setCursorPosWND", "text": " X The new Horizontal position. Y The new Vertical postion. WND A 32-bit handle to a Window. X The new Horizontal position. Y The new Vertical postion. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#setCursorPosWND"}, + {"title": "console._increment_x_WND", "text": " WND A 32-bit handle to a Window. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#_increment_x_WND"}, + {"title": "console._increment_y_WND", "text": " WND A 32-bit handle to a Window. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#_increment_y_WND"}, + {"title": "console._safeincrement_y_WND", "text": " WND A 32-bit handle to a Window. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#_safeincrement_y_WND"}, + {"title": "console._safeincrement_x_WND", "text": " WND A 32-bit handle to a Window. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#_safeincrement_x_WND"}, + {"title": "console._newlineWND", "text": " WND A 32-bit handle to a Window. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#_newlineWND"}, + {"title": "console.outputChar", "text": " C An 8-bit ASCII Character. X An 8-bit Horizontal Cell position. Y An 8-bit Vertical Cell Position. fgcolor The 16-bit color of the Character. bgcolor The 16-bit background color of the cell. C An 8-bit ASCII Character. X An 8-bit Horizontal Cell position. Y An 8-bit Vertical Cell Position. fgcolor The 16-bit color of the Character. bgcolor The 16-bit background color of the cell.", "tags": "", "loc": "console.html#outputChar"}, + {"title": "console.outputCharToScreenSpace", "text": " C An 8-bit ASCII Character. X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. fgcolor The 16-bit color of the Character. bgcolor The 16-bit background color of the cell. C An 8-bit ASCII Character. X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. fgcolor The 16-bit color of the Character. bgcolor The 16-bit background color of the cell.", "tags": "", "loc": "console.html#outputCharToScreenSpace"}, + {"title": "console.outputCharTransparent", "text": " C An 8-bit ASCII Character. X An 8-bit Horizontal Cell position. Y An 8-bit Vertical Cell Position. fgcolor The 16-bit color of the Character. C An 8-bit ASCII Character. X An 8-bit Horizontal Cell position. Y An 8-bit Vertical Cell Position. fgcolor The 16-bit color of the Character.", "tags": "", "loc": "console.html#outputCharTransparent"}, + {"title": "console.getPixel", "text": " X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. 16-bits of Pixel Information X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position.", "tags": "", "loc": "console.html#getPixel"}, + {"title": "console.drawPixel", "text": " X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. color 16-bits of Pixel Information X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. color 16-bits of Pixel Information", "tags": "", "loc": "console.html#drawPixel"}, + {"title": "console.getPixel32", "text": " X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. 32-bits of Pixel Information X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position.", "tags": "", "loc": "console.html#getPixel32"}, + {"title": "console.drawPixel32", "text": " X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. color 32-bits of Pixel Information X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. color 32-bits of Pixel Information", "tags": "", "loc": "console.html#drawPixel32"}, + {"title": "console.getPixel64", "text": " X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. 64-bits of Pixel Information X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position.", "tags": "", "loc": "console.html#getPixel64"}, + {"title": "console.drawPixel64", "text": " X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. color 64-bits of Pixel Information X A 32-bit Horizontal Screen position. Y A 32-bit Vertical Screen Position. color 64-bits of Pixel Information", "tags": "", "loc": "console.html#drawPixel64"}, + {"title": "console.setMousePosition", "text": " X A 32-bit Horizontal Screen Position. Y A 32-bit Vertical Screen Position. X A 32-bit Horizontal Screen Position. Y A 32-bit Vertical Screen Position.", "tags": "", "loc": "console.html#setMousePosition"}, + {"title": "console.redrawWindows", "text": " ", "tags": "", "loc": "console.html#redrawWindows"}, + {"title": "console.toggleWNDVisible", "text": " WND A 32-bit handle to a Window. WND A 32-bit handle to a Window.", "tags": "", "loc": "console.html#toggleWNDVisible"}, + {"title": "console.setWNDVisible", "text": " WND A 32-bit handle to a Window. Visible True or False. WND A 32-bit handle to a Window. Visible True or False.", "tags": "", "loc": "console.html#setWNDVisible"}, + {"title": "console.closeAllWindows", "text": " ", "tags": "", "loc": "console.html#closeAllWindows"}, + {"title": "console.newWindow", "text": " @retruns(A 32-bit Handle for the new Window.) X 32-bit Horizontal Cell for the top-left corner of the Window. Y 32-bit Vertical Cell for the top-left corner of the Window. Width 32-bit Width of the Window in Cells. Height 32-bit Height of the Window in Cells. Title NULL Terminated String used as the Title for the Window. X 32-bit Horizontal Cell for the top-left corner of the Window. Y 32-bit Vertical Cell for the top-left corner of the Window. Width 32-bit Width of the Window in Cells. Height 32-bit Height of the Window in Cells. Title NULL Terminated String used as the Title for the Window.", "tags": "", "loc": "console.html#newWindow"}, + {"title": "console.registerEventHandler", "text": " WND Handle for the Window the event should be registered against. Event Type of event to register. Handler Procedure to be called upon the event firing. True for success False for failure. WND Handle for the Window the event should be registered against. Event Type of event to register. Handler Procedure to be called upon the event firing.", "tags": "", "loc": "console.html#registerEventHandler"}, + {"title": "console.forceQuitAll", "text": " ", "tags": "", "loc": "console.html#forceQuitAll"}, + {"title": "console.closeWindow", "text": " WND The handle to the target Window. WND The handle to the target Window.", "tags": "", "loc": "console.html#closeWindow"}, + {"title": "console.bordersEnabled", "text": " WND A 32-bit Handle to the target Window. Enabled True for borders to be shown, False for borders to be hidden. WND A 32-bit Handle to the target Window. Enabled True for borders to be shown, False for borders to be hidden.", "tags": "", "loc": "console.html#bordersEnabled"}, + {"title": "console.SetShellWindow", "text": " WND 32-bit Handle for the target Window. b True to set Target as a Shell Window, False to set Target as a normal Window. WND 32-bit Handle for the target Window. b True to set Target as a Shell Window, False to set Target as a normal Window.", "tags": "", "loc": "console.html#SetShellWindow"}, + {"title": "console.getWindowName", "text": " WND 32-bit Handle for the target Window. NULL Terminated PChar. WND 32-bit Handle for the target Window.", "tags": "", "loc": "console.html#getWindowName"}, + {"title": "console.mouseEnabled", "text": " b True for mouse enabled, False for mouse disabled. b True for mouse enabled, False for mouse disabled.", "tags": "", "loc": "console.html#mouseEnabled"}, + {"title": "console._MouseDown", "text": " ", "tags": "", "loc": "console.html#_MouseDown"}, + {"title": "console._MouseUp", "text": " ", "tags": "", "loc": "console.html#_MouseUp"}, + {"title": "console._MouseClick", "text": " Left True for a Left-Click, False for a Right-Click. Left True for a Left-Click, False for a Right-Click.", "tags": "", "loc": "console.html#_MouseClick"}, + {"title": "console.setWindowColors", "text": " Colors A 32-bit value representing the attributes (background/foreground). Colors A 32-bit value representing the attributes (background/foreground).", "tags": "", "loc": "console.html#setWindowColors"}, + {"title": "console.getWindowColorPtr", "text": " A 32-bit pointer to the Borders Attribute. ", "tags": "", "loc": "console.html#getWindowColorPtr"}, + {"title": "console.TColor", "text": " Black Blue Green Aqua Red Purple Yellow White Gray lBlue lGreen lAqua lRed lPurple lYellow lWhite ", "tags": "", "loc": "console.html#TColor"}, + {"title": "console.TEventType", "text": " EVENT_DRAW EVENT_MOUSE_CLICK EVENT_MOUSE_MOVE EVENT_MOUSE_DOWN EVENT_MOUSE_UP EVENT_KEY_PRESSED EVENT_CLOSE EVENT_MINIMIZE EVENT_FOCUS EVENT_LOSE_FOCUS ", "tags": "", "loc": "console.html#TEventType"}, + {"title": "contextswitcher", "text": "

Kieron Morris ", "tags": "", "loc": "contextswitcher.html"}, + {"title": "cpu", "text": "

Kieron Morris ", "tags": "", "loc": "cpu.html"}, + {"title": "cpu.TClockSpeed", "text": " ", "tags": "", "loc": "cpu.TClockSpeed.html"}, + {"title": "cpu.TClockSpeed.Hz", "text": " ", "tags": "", "loc": "cpu.TClockSpeed.html#Hz"}, + {"title": "cpu.TClockSpeed.KHz", "text": " ", "tags": "", "loc": "cpu.TClockSpeed.html#KHz"}, + {"title": "cpu.TClockSpeed.MHz", "text": " ", "tags": "", "loc": "cpu.TClockSpeed.html#MHz"}, + {"title": "cpu.TClockSpeed.GHz", "text": " ", "tags": "", "loc": "cpu.TClockSpeed.html#GHz"}, + {"title": "cpu.TCPUID", "text": " ", "tags": "", "loc": "cpu.TCPUID.html"}, + {"title": "cpu.TCPUID.ClockSpeed", "text": " ", "tags": "", "loc": "cpu.TCPUID.html#ClockSpeed"}, + {"title": "cpu.TCPUID.Identifier", "text": " ", "tags": "", "loc": "cpu.TCPUID.html#Identifier"}, + {"title": "cpu.TCPUID.Capabilities0", "text": " ", "tags": "", "loc": "cpu.TCPUID.html#Capabilities0"}, + {"title": "cpu.TCPUID.Capabilities1", "text": " ", "tags": "", "loc": "cpu.TCPUID.html#Capabilities1"}, + {"title": "cpu.init", "text": " ", "tags": "", "loc": "cpu.html#init"}, + {"title": "cpu.PCapabilities_Old", "text": " ", "tags": "", "loc": "cpu.html#PCapabilities_Old"}, + {"title": "cpu.TCapabilities_Old", "text": " ", "tags": "", "loc": "cpu.html#TCapabilities_Old"}, + {"title": "cpu.PCapabilities_New", "text": " ", "tags": "", "loc": "cpu.html#PCapabilities_New"}, + {"title": "cpu.TCapabilities_New", "text": " ", "tags": "", "loc": "cpu.html#TCapabilities_New"}, + {"title": "cpu.CPUID", "text": " ", "tags": "", "loc": "cpu.html#CPUID"}, + {"title": "cpu.CAP_OLD", "text": " ", "tags": "", "loc": "cpu.html#CAP_OLD"}, + {"title": "cpu.CAP_NEW", "text": " ", "tags": "", "loc": "cpu.html#CAP_NEW"}, + {"title": "crc", "text": "

Kieron Morris ", "tags": "", "loc": "crc.html"}, + {"title": "crc.CRC32", "text": " ", "tags": "", "loc": "crc.html#CRC32"}, + {"title": "CSOE", "text": "

Kieron Morris ", "tags": "", "loc": "CSOE.html"}, + {"title": "CSOE.register", "text": " ", "tags": "", "loc": "CSOE.html#register"}, + {"title": "DBGE", "text": "

Kieron Morris ", "tags": "", "loc": "DBGE.html"}, + {"title": "DBGE.register", "text": " ", "tags": "", "loc": "DBGE.html#register"}, + {"title": "DBZ", "text": "

Kieron Morris ", "tags": "", "loc": "DBZ.html"}, + {"title": "DBZ.register", "text": " ", "tags": "", "loc": "DBZ.html#register"}, + {"title": "DFE", "text": "

Kieron Morris ", "tags": "", "loc": "DFE.html"}, + {"title": "DFE.register", "text": " ", "tags": "", "loc": "DFE.html#register"}, + {"title": "drivermanagement", "text": "

Kieron Morris ", "tags": "", "loc": "drivermanagement.html"}, + {"title": "drivermanagement.TDevEx", "text": " ", "tags": "", "loc": "drivermanagement.TDevEx.html"}, + {"title": "drivermanagement.TDevEx.idN", "text": " ", "tags": "", "loc": "drivermanagement.TDevEx.html#idN"}, + {"title": "drivermanagement.TDevEx.ex", "text": " ", "tags": "", "loc": "drivermanagement.TDevEx.html#ex"}, + {"title": "drivermanagement.TDeviceIdentifier", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceIdentifier.html"}, + {"title": "drivermanagement.TDeviceIdentifier.Bus", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceIdentifier.html#Bus"}, + {"title": "drivermanagement.TDeviceIdentifier.id0", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceIdentifier.html#id0"}, + {"title": "drivermanagement.TDeviceIdentifier.id1", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceIdentifier.html#id1"}, + {"title": "drivermanagement.TDeviceIdentifier.id2", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceIdentifier.html#id2"}, + {"title": "drivermanagement.TDeviceIdentifier.id3", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceIdentifier.html#id3"}, + {"title": "drivermanagement.TDeviceIdentifier.id4", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceIdentifier.html#id4"}, + {"title": "drivermanagement.TDeviceIdentifier.ex", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceIdentifier.html#ex"}, + {"title": "drivermanagement.TDriverRegistration", "text": " ", "tags": "", "loc": "drivermanagement.TDriverRegistration.html"}, + {"title": "drivermanagement.TDriverRegistration.Driver_Name", "text": " ", "tags": "", "loc": "drivermanagement.TDriverRegistration.html#Driver_Name"}, + {"title": "drivermanagement.TDriverRegistration.Identifier", "text": " ", "tags": "", "loc": "drivermanagement.TDriverRegistration.html#Identifier"}, + {"title": "drivermanagement.TDriverRegistration.Driver_Load", "text": " ", "tags": "", "loc": "drivermanagement.TDriverRegistration.html#Driver_Load"}, + {"title": "drivermanagement.TDriverRegistration.Loaded", "text": " ", "tags": "", "loc": "drivermanagement.TDriverRegistration.html#Loaded"}, + {"title": "drivermanagement.TDriverRegistration.Next", "text": " ", "tags": "", "loc": "drivermanagement.TDriverRegistration.html#Next"}, + {"title": "drivermanagement.TDeviceRegistration", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceRegistration.html"}, + {"title": "drivermanagement.TDeviceRegistration.Device_Name", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceRegistration.html#Device_Name"}, + {"title": "drivermanagement.TDeviceRegistration.Identifier", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceRegistration.html#Identifier"}, + {"title": "drivermanagement.TDeviceRegistration.Driver_Loaded", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceRegistration.html#Driver_Loaded"}, + {"title": "drivermanagement.TDeviceRegistration.Driver", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceRegistration.html#Driver"}, + {"title": "drivermanagement.TDeviceRegistration.Next", "text": " ", "tags": "", "loc": "drivermanagement.TDeviceRegistration.html#Next"}, + {"title": "drivermanagement.idANY", "text": " ", "tags": "", "loc": "drivermanagement.html#idANY"}, + {"title": "drivermanagement.init", "text": " ", "tags": "", "loc": "drivermanagement.html#init"}, + {"title": "drivermanagement.register_driver", "text": " ", "tags": "", "loc": "drivermanagement.html#register_driver"}, + {"title": "drivermanagement.register_driver_ex", "text": " ", "tags": "", "loc": "drivermanagement.html#register_driver_ex"}, + {"title": "drivermanagement.register_device", "text": " ", "tags": "", "loc": "drivermanagement.html#register_device"}, + {"title": "drivermanagement.PDevEx", "text": " ", "tags": "", "loc": "drivermanagement.html#PDevEx"}, + {"title": "drivermanagement.TBusIdentifier", "text": " biUnknown biPCI biUSB bii2c biPCIe biANY ", "tags": "", "loc": "drivermanagement.html#TBusIdentifier"}, + {"title": "drivermanagement.PDeviceIdentifier", "text": " ", "tags": "", "loc": "drivermanagement.html#PDeviceIdentifier"}, + {"title": "drivermanagement.TDriverLoadCallback", "text": " ", "tags": "", "loc": "drivermanagement.html#TDriverLoadCallback"}, + {"title": "drivermanagement.PDriverRegistration", "text": " ", "tags": "", "loc": "drivermanagement.html#PDriverRegistration"}, + {"title": "drivermanagement.PDeviceRegistration", "text": " ", "tags": "", "loc": "drivermanagement.html#PDeviceRegistration"}, + {"title": "drivermanagement.Root", "text": " ", "tags": "", "loc": "drivermanagement.html#Root"}, + {"title": "drivermanagement.Dev", "text": " ", "tags": "", "loc": "drivermanagement.html#Dev"}, + {"title": "drivertypes", "text": "

Aaron Hance ", "tags": "", "loc": "drivertypes.html"}, + {"title": "drivertypes.PPCI_Device", "text": " ", "tags": "", "loc": "drivertypes.html#PPCI_Device"}, + {"title": "drivertypes.TPCI_Device", "text": " ", "tags": "", "loc": "drivertypes.html#TPCI_Device"}, + {"title": "drivertypes.TDeviceArray", "text": " ", "tags": "", "loc": "drivertypes.html#TDeviceArray"}, + {"title": "E1000", "text": "

Kieron Morris ", "tags": "", "loc": "E1000.html"}, + {"title": "E1000.INTEL_VEND", "text": " ", "tags": "", "loc": "E1000.html#INTEL_VEND"}, + {"title": "E1000.E1000_DEV", "text": " ", "tags": "", "loc": "E1000.html#E1000_DEV"}, + {"title": "E1000.I217_DEV", "text": " ", "tags": "", "loc": "E1000.html#I217_DEV"}, + {"title": "E1000.LM82577_DEV", "text": " ", "tags": "", "loc": "E1000.html#LM82577_DEV"}, + {"title": "E1000.REG_CTRL", "text": " ", "tags": "", "loc": "E1000.html#REG_CTRL"}, + {"title": "E1000.REG_STATUS", "text": " ", "tags": "", "loc": "E1000.html#REG_STATUS"}, + {"title": "E1000.REG_EEPROM", "text": " ", "tags": "", "loc": "E1000.html#REG_EEPROM"}, + {"title": "E1000.REG_CTRL_EXT", "text": " ", "tags": "", "loc": "E1000.html#REG_CTRL_EXT"}, + {"title": "E1000.REG_IMASK", "text": " ", "tags": "", "loc": "E1000.html#REG_IMASK"}, + {"title": "E1000.REG_RCTRL", "text": " ", "tags": "", "loc": "E1000.html#REG_RCTRL"}, + {"title": "E1000.REG_RXDESCLO", "text": " ", "tags": "", "loc": "E1000.html#REG_RXDESCLO"}, + {"title": "E1000.REG_RXDESCHI", "text": " ", "tags": "", "loc": "E1000.html#REG_RXDESCHI"}, + {"title": "E1000.REG_RXDESCLEN", "text": " ", "tags": "", "loc": "E1000.html#REG_RXDESCLEN"}, + {"title": "E1000.REG_RXDESCHEAD", "text": " ", "tags": "", "loc": "E1000.html#REG_RXDESCHEAD"}, + {"title": "E1000.REG_RXDESCTAIL", "text": " ", "tags": "", "loc": "E1000.html#REG_RXDESCTAIL"}, + {"title": "E1000.REG_TCTRL", "text": " ", "tags": "", "loc": "E1000.html#REG_TCTRL"}, + {"title": "E1000.REG_TXDESCLO", "text": " ", "tags": "", "loc": "E1000.html#REG_TXDESCLO"}, + {"title": "E1000.REG_TXDESCHI", "text": " ", "tags": "", "loc": "E1000.html#REG_TXDESCHI"}, + {"title": "E1000.REG_TXDESCLEN", "text": " ", "tags": "", "loc": "E1000.html#REG_TXDESCLEN"}, + {"title": "E1000.REG_TXDESCHEAD", "text": " ", "tags": "", "loc": "E1000.html#REG_TXDESCHEAD"}, + {"title": "E1000.REG_TXDESCTAIL", "text": " ", "tags": "", "loc": "E1000.html#REG_TXDESCTAIL"}, + {"title": "E1000.REG_RDTR", "text": " ", "tags": "", "loc": "E1000.html#REG_RDTR"}, + {"title": "E1000.REG_RXDCTL", "text": " ", "tags": "", "loc": "E1000.html#REG_RXDCTL"}, + {"title": "E1000.REG_RADV", "text": " ", "tags": "", "loc": "E1000.html#REG_RADV"}, + {"title": "E1000.REG_RSRPD", "text": " Absolute Delay Timer ", "tags": "", "loc": "E1000.html#REG_RSRPD"}, + {"title": "E1000.REG_TIPG", "text": " ", "tags": "", "loc": "E1000.html#REG_TIPG"}, + {"title": "E1000.ECTRL_SLU", "text": " ", "tags": "", "loc": "E1000.html#ECTRL_SLU"}, + {"title": "E1000.RCTL_EN", "text": " ", "tags": "", "loc": "E1000.html#RCTL_EN"}, + {"title": "E1000.RCTL_SBP", "text": " ", "tags": "", "loc": "E1000.html#RCTL_SBP"}, + {"title": "E1000.RCTL_UPE", "text": " ", "tags": "", "loc": "E1000.html#RCTL_UPE"}, + {"title": "E1000.RCTL_MPE", "text": " ", "tags": "", "loc": "E1000.html#RCTL_MPE"}, + {"title": "E1000.RCTL_LPE", "text": " ", "tags": "", "loc": "E1000.html#RCTL_LPE"}, + {"title": "E1000.RCTL_LBM_NONE", "text": " ", "tags": "", "loc": "E1000.html#RCTL_LBM_NONE"}, + {"title": "E1000.RCTL_LBM_PHY", "text": " ", "tags": "", "loc": "E1000.html#RCTL_LBM_PHY"}, + {"title": "E1000.RTCL_RDMTS_HALF", "text": " ", "tags": "", "loc": "E1000.html#RTCL_RDMTS_HALF"}, + {"title": "E1000.RTCL_RDMTS_QUARTER", "text": " ", "tags": "", "loc": "E1000.html#RTCL_RDMTS_QUARTER"}, + {"title": "E1000.RTCL_RDMTS_EIGHTH", "text": " ", "tags": "", "loc": "E1000.html#RTCL_RDMTS_EIGHTH"}, + {"title": "E1000.RCTL_MO_36", "text": " ", "tags": "", "loc": "E1000.html#RCTL_MO_36"}, + {"title": "E1000.RCTL_MO_35", "text": " ", "tags": "", "loc": "E1000.html#RCTL_MO_35"}, + {"title": "E1000.RCTL_MO_34", "text": " ", "tags": "", "loc": "E1000.html#RCTL_MO_34"}, + {"title": "E1000.RCTL_MO_32", "text": " ", "tags": "", "loc": "E1000.html#RCTL_MO_32"}, + {"title": "E1000.RCTL_BAM", "text": " ", "tags": "", "loc": "E1000.html#RCTL_BAM"}, + {"title": "E1000.RCTL_VFE", "text": " ", "tags": "", "loc": "E1000.html#RCTL_VFE"}, + {"title": "E1000.RCTL_CFIEN", "text": " ", "tags": "", "loc": "E1000.html#RCTL_CFIEN"}, + {"title": "E1000.RCTL_CFI", "text": " ", "tags": "", "loc": "E1000.html#RCTL_CFI"}, + {"title": "E1000.RCTL_DPF", "text": " ", "tags": "", "loc": "E1000.html#RCTL_DPF"}, + {"title": "E1000.RCTL_PMCF", "text": " ", "tags": "", "loc": "E1000.html#RCTL_PMCF"}, + {"title": "E1000.RCTL_SECRC", "text": " ", "tags": "", "loc": "E1000.html#RCTL_SECRC"}, + {"title": "E1000.RCTL_BSIZE_256", "text": " ", "tags": "", "loc": "E1000.html#RCTL_BSIZE_256"}, + {"title": "E1000.RCTL_BSIZE_512", "text": " ", "tags": "", "loc": "E1000.html#RCTL_BSIZE_512"}, + {"title": "E1000.RCTL_BSIZE_1024", "text": " ", "tags": "", "loc": "E1000.html#RCTL_BSIZE_1024"}, + {"title": "E1000.RCTL_BSIZE_2048", "text": " ", "tags": "", "loc": "E1000.html#RCTL_BSIZE_2048"}, + {"title": "E1000.RCTL_BSIZE_4096", "text": " ", "tags": "", "loc": "E1000.html#RCTL_BSIZE_4096"}, + {"title": "E1000.RCTL_BSIZE_8192", "text": " ", "tags": "", "loc": "E1000.html#RCTL_BSIZE_8192"}, + {"title": "E1000.RCTL_BSIZE_16384", "text": " ", "tags": "", "loc": "E1000.html#RCTL_BSIZE_16384"}, + {"title": "E1000.CMD_EOP", "text": " ", "tags": "", "loc": "E1000.html#CMD_EOP"}, + {"title": "E1000.CMD_IFCS", "text": " ", "tags": "", "loc": "E1000.html#CMD_IFCS"}, + {"title": "E1000.CMD_IC", "text": " ", "tags": "", "loc": "E1000.html#CMD_IC"}, + {"title": "E1000.CMD_RS", "text": " ", "tags": "", "loc": "E1000.html#CMD_RS"}, + {"title": "E1000.CMD_RPS", "text": " ", "tags": "", "loc": "E1000.html#CMD_RPS"}, + {"title": "E1000.CMD_VLE", "text": " ", "tags": "", "loc": "E1000.html#CMD_VLE"}, + {"title": "E1000.CMD_IDE", "text": " ", "tags": "", "loc": "E1000.html#CMD_IDE"}, + {"title": "E1000.TCTL_EN", "text": " ", "tags": "", "loc": "E1000.html#TCTL_EN"}, + {"title": "E1000.TCTL_PSP", "text": " ", "tags": "", "loc": "E1000.html#TCTL_PSP"}, + {"title": "E1000.TCTL_CT_SHIFT", "text": " ", "tags": "", "loc": "E1000.html#TCTL_CT_SHIFT"}, + {"title": "E1000.TCTL_COLD_SHIFT", "text": " ", "tags": "", "loc": "E1000.html#TCTL_COLD_SHIFT"}, + {"title": "E1000.TCTL_SWXOFF", "text": " ", "tags": "", "loc": "E1000.html#TCTL_SWXOFF"}, + {"title": "E1000.TCTL_RTLC", "text": " ", "tags": "", "loc": "E1000.html#TCTL_RTLC"}, + {"title": "E1000.TSTA_DD", "text": " ", "tags": "", "loc": "E1000.html#TSTA_DD"}, + {"title": "E1000.TSTA_EC", "text": " ", "tags": "", "loc": "E1000.html#TSTA_EC"}, + {"title": "E1000.TSTA_LC", "text": " ", "tags": "", "loc": "E1000.html#TSTA_LC"}, + {"title": "E1000.LSTA_TU", "text": " ", "tags": "", "loc": "E1000.html#LSTA_TU"}, + {"title": "E1000.E1000_NUM_RX_DESC", "text": " ", "tags": "", "loc": "E1000.html#E1000_NUM_RX_DESC"}, + {"title": "E1000.E1000_NUM_TX_DESC", "text": " ", "tags": "", "loc": "E1000.html#E1000_NUM_TX_DESC"}, + {"title": "E1000.init", "text": " ", "tags": "", "loc": "E1000.html#init"}, + {"title": "E1000.getMACAddress", "text": " ", "tags": "", "loc": "E1000.html#getMACAddress"}, + {"title": "E1000.sendPacket", "text": " ", "tags": "", "loc": "E1000.html#sendPacket"}, + {"title": "E1000.readStatus", "text": " ", "tags": "", "loc": "E1000.html#readStatus"}, + {"title": "E1000.PE1000_rx_desc", "text": " ", "tags": "", "loc": "E1000.html#PE1000_rx_desc"}, + {"title": "E1000.TE1000_rx_desc", "text": " ", "tags": "", "loc": "E1000.html#TE1000_rx_desc"}, + {"title": "E1000.PE1000_tx_desc", "text": " ", "tags": "", "loc": "E1000.html#PE1000_tx_desc"}, + {"title": "E1000.TE1000_tx_desc", "text": " ", "tags": "", "loc": "E1000.html#TE1000_tx_desc"}, + {"title": "E1000.TCardType", "text": " ctUnknown ctE1000 ctI217 ct82577LM ", "tags": "", "loc": "E1000.html#TCardType"}, + {"title": "EHCI", "text": "

Kieron Morris ", "tags": "", "loc": "EHCI.html"}, + {"title": "EHCI.load", "text": " ", "tags": "", "loc": "EHCI.html#load"}, + {"title": "eth2", "text": "

Kieron Morris ", "tags": "", "loc": "eth2.html"}, + {"title": "eth2.send", "text": " ", "tags": "", "loc": "eth2.html#send"}, + {"title": "eth2.registerType", "text": " ", "tags": "", "loc": "eth2.html#registerType"}, + {"title": "eth2.registerTypePromisc", "text": " ", "tags": "", "loc": "eth2.html#registerTypePromisc"}, + {"title": "eth2.register", "text": " ", "tags": "", "loc": "eth2.html#register"}, + {"title": "faults", "text": "

Kieron Morris ", "tags": "", "loc": "faults.html"}, + {"title": "faults.init", "text": " ", "tags": "", "loc": "faults.html#init"}, + {"title": "fonts", "text": "

Kieron Morris ", "tags": "", "loc": "fonts.html"}, + {"title": "fonts.Std_Mask", "text": " ", "tags": "", "loc": "fonts.html#Std_Mask"}, + {"title": "fonts.Std_Font", "text": " ", "tags": "", "loc": "fonts.html#Std_Font"}, + {"title": "gdt", "text": "

Kieron Morris ", "tags": "", "loc": "gdt.html"}, + {"title": "gdt.TGDT_Entry", "text": " ", "tags": "", "loc": "gdt.TGDT_Entry.html"}, + {"title": "gdt.TGDT_Entry.limit_low", "text": " ", "tags": "", "loc": "gdt.TGDT_Entry.html#limit_low"}, + {"title": "gdt.TGDT_Entry.base_low", "text": " ", "tags": "", "loc": "gdt.TGDT_Entry.html#base_low"}, + {"title": "gdt.TGDT_Entry.base_middle", "text": " ", "tags": "", "loc": "gdt.TGDT_Entry.html#base_middle"}, + {"title": "gdt.TGDT_Entry.access", "text": " ", "tags": "", "loc": "gdt.TGDT_Entry.html#access"}, + {"title": "gdt.TGDT_Entry.granularity", "text": " ", "tags": "", "loc": "gdt.TGDT_Entry.html#granularity"}, + {"title": "gdt.TGDT_Entry.base_high", "text": " ", "tags": "", "loc": "gdt.TGDT_Entry.html#base_high"}, + {"title": "gdt.TGDT_Pointer", "text": " ", "tags": "", "loc": "gdt.TGDT_Pointer.html"}, + {"title": "gdt.TGDT_Pointer.limit", "text": " ", "tags": "", "loc": "gdt.TGDT_Pointer.html#limit"}, + {"title": "gdt.TGDT_Pointer.base", "text": " ", "tags": "", "loc": "gdt.TGDT_Pointer.html#base"}, + {"title": "gdt.init", "text": " ", "tags": "", "loc": "gdt.html#init"}, + {"title": "gdt.set_gate", "text": " ", "tags": "", "loc": "gdt.html#set_gate"}, + {"title": "gdt.flush", "text": " ", "tags": "", "loc": "gdt.html#flush"}, + {"title": "gdt.reload", "text": " ", "tags": "", "loc": "gdt.html#reload"}, + {"title": "gdt.PGDT_Entry", "text": " ", "tags": "", "loc": "gdt.html#PGDT_Entry"}, + {"title": "gdt.gdt_entries", "text": " ", "tags": "", "loc": "gdt.html#gdt_entries"}, + {"title": "gdt.gdt_pointer", "text": " ", "tags": "", "loc": "gdt.html#gdt_pointer"}, + {"title": "GPF", "text": "

Kieron Morris ", "tags": "", "loc": "GPF.html"}, + {"title": "GPF.register", "text": " ", "tags": "", "loc": "GPF.html#register"}, + {"title": "icmp", "text": " Kieron Morris ", "tags": "", "loc": "icmp.html"}, + {"title": "icmp.TARPHandler", "text": " ", "tags": "", "loc": "icmp.TARPHandler.html"}, + {"title": "icmp.TARPHandler.Active", "text": " ", "tags": "", "loc": "icmp.TARPHandler.html#Active"}, + {"title": "icmp.TARPHandler.OnReply", "text": " ", "tags": "", "loc": "icmp.TARPHandler.html#OnReply"}, + {"title": "icmp.TARPHandler.OnError", "text": " ", "tags": "", "loc": "icmp.TARPHandler.html#OnError"}, + {"title": "icmp.register", "text": " ", "tags": "", "loc": "icmp.html#register"}, + {"title": "icmp.sendICMPRequest", "text": " ", "tags": "", "loc": "icmp.html#sendICMPRequest"}, + {"title": "icmp.ping_err", "text": " ", "tags": "", "loc": "icmp.html#ping_err"}, + {"title": "icmp.ping_rep", "text": " ", "tags": "", "loc": "icmp.html#ping_rep"}, + {"title": "icmp.TARPErrorCode", "text": " aecFailedToResolveHost aecNoRouteToHost aecTimeout aecTTLExpired ", "tags": "", "loc": "icmp.html#TARPErrorCode"}, + {"title": "icmp.TARPReplyCallback", "text": " ", "tags": "", "loc": "icmp.html#TARPReplyCallback"}, + {"title": "icmp.TARPErrorCallback", "text": " ", "tags": "", "loc": "icmp.html#TARPErrorCallback"}, + {"title": "IDOE", "text": "

Kieron Morris ", "tags": "", "loc": "IDOE.html"}, + {"title": "IDOE.register", "text": " ", "tags": "", "loc": "IDOE.html#register"}, + {"title": "idt", "text": "

Kieron Morris ", "tags": "", "loc": "idt.html"}, + {"title": "idt.TIDT_Entry", "text": " ", "tags": "", "loc": "idt.TIDT_Entry.html"}, + {"title": "idt.TIDT_Entry.base_low", "text": " ", "tags": "", "loc": "idt.TIDT_Entry.html#base_low"}, + {"title": "idt.TIDT_Entry.selector", "text": " ", "tags": "", "loc": "idt.TIDT_Entry.html#selector"}, + {"title": "idt.TIDT_Entry.always_0", "text": " ", "tags": "", "loc": "idt.TIDT_Entry.html#always_0"}, + {"title": "idt.TIDT_Entry.flags", "text": " ", "tags": "", "loc": "idt.TIDT_Entry.html#flags"}, + {"title": "idt.TIDT_Entry.base_high", "text": " ", "tags": "", "loc": "idt.TIDT_Entry.html#base_high"}, + {"title": "idt.TIDT_Pointer", "text": " ", "tags": "", "loc": "idt.TIDT_Pointer.html"}, + {"title": "idt.TIDT_Pointer.limit", "text": " ", "tags": "", "loc": "idt.TIDT_Pointer.html#limit"}, + {"title": "idt.TIDT_Pointer.base", "text": " ", "tags": "", "loc": "idt.TIDT_Pointer.html#base"}, + {"title": "idt.ISR_RING_0", "text": " ", "tags": "", "loc": "idt.html#ISR_RING_0"}, + {"title": "idt.ISR_RING_1", "text": " ", "tags": "", "loc": "idt.html#ISR_RING_1"}, + {"title": "idt.ISR_RING_2", "text": " ", "tags": "", "loc": "idt.html#ISR_RING_2"}, + {"title": "idt.ISR_RING_3", "text": " ", "tags": "", "loc": "idt.html#ISR_RING_3"}, + {"title": "idt.init", "text": " ", "tags": "", "loc": "idt.html#init"}, + {"title": "idt.set_gate", "text": " ", "tags": "", "loc": "idt.html#set_gate"}, + {"title": "idt.PIDT_Entry", "text": " ", "tags": "", "loc": "idt.html#PIDT_Entry"}, + {"title": "idt.PIDT_Pointer", "text": " ", "tags": "", "loc": "idt.html#PIDT_Pointer"}, + {"title": "idt.IDT_Entries", "text": " ", "tags": "", "loc": "idt.html#IDT_Entries"}, + {"title": "idt.IDT_Pointer", "text": " ", "tags": "", "loc": "idt.html#IDT_Pointer"}, + {"title": "IOPE", "text": "

Kieron Morris ", "tags": "", "loc": "IOPE.html"}, + {"title": "IOPE.register", "text": " ", "tags": "", "loc": "IOPE.html#register"}, + {"title": "ipv4", "text": "

Kieron Morris ", "tags": "", "loc": "ipv4.html"}, + {"title": "ipv4.send", "text": " ", "tags": "", "loc": "ipv4.html#send"}, + {"title": "ipv4.registerProtocol", "text": " ", "tags": "", "loc": "ipv4.html#registerProtocol"}, + {"title": "ipv4.getIPv4Config", "text": " ", "tags": "", "loc": "ipv4.html#getIPv4Config"}, + {"title": "ipv4.register", "text": " ", "tags": "", "loc": "ipv4.html#register"}, + {"title": "irq", "text": "

Aaron Hance ", "tags": "", "loc": "irq.html"}, + {"title": "irq.init", "text": " ", "tags": "", "loc": "irq.html#init"}, + {"title": "isr", "text": "

Kieron Morris ", "tags": "", "loc": "isr.html"}, + {"title": "isr.init", "text": " ", "tags": "", "loc": "isr.html#init"}, + {"title": "isrmanager", "text": "

Kieron Morris ", "tags": "", "loc": "isrmanager.html"}, + {"title": "isrmanager.init", "text": " ", "tags": "", "loc": "isrmanager.html#init"}, + {"title": "isrmanager.registerISR", "text": " ", "tags": "", "loc": "isrmanager.html#registerISR"}, + {"title": "isrmanager.TISRHook", "text": " ", "tags": "", "loc": "isrmanager.html#TISRHook"}, + {"title": "isrmanager.TISRNHookArray", "text": " ", "tags": "", "loc": "isrmanager.html#TISRNHookArray"}, + {"title": "isrmanager.TISRHookArray", "text": " ", "tags": "", "loc": "isrmanager.html#TISRHookArray"}, + {"title": "isr_types", "text": "

Kieron Morris ", "tags": "", "loc": "isr_types.html"}, + {"title": "isr_types.TRegisters", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html"}, + {"title": "isr_types.TRegisters.edi", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#edi"}, + {"title": "isr_types.TRegisters.esi", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#esi"}, + {"title": "isr_types.TRegisters.ebp", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#ebp"}, + {"title": "isr_types.TRegisters.esp", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#esp"}, + {"title": "isr_types.TRegisters.ebx", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#ebx"}, + {"title": "isr_types.TRegisters.edx", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#edx"}, + {"title": "isr_types.TRegisters.ecx", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#ecx"}, + {"title": "isr_types.TRegisters.eax", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#eax"}, + {"title": "isr_types.TRegisters.ErrorCode", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#ErrorCode"}, + {"title": "isr_types.TRegisters.eip", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#eip"}, + {"title": "isr_types.TRegisters.cs", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#cs"}, + {"title": "isr_types.TRegisters.eflags", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#eflags"}, + {"title": "isr_types.TRegisters.UserESP", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#UserESP"}, + {"title": "isr_types.TRegisters.ss", "text": " ", "tags": "", "loc": "isr_types.TRegisters.html#ss"}, + {"title": "isr_types.MAX_HOOKS", "text": " ", "tags": "", "loc": "isr_types.html#MAX_HOOKS"}, + {"title": "isr_types.PRegisters", "text": " ", "tags": "", "loc": "isr_types.html#PRegisters"}, + {"title": "isr_types.pp_hook_method", "text": " ", "tags": "", "loc": "isr_types.html#pp_hook_method"}, + {"title": "isr_types.pp_void", "text": " ", "tags": "", "loc": "isr_types.html#pp_void"}, + {"title": "kernel", "text": "

Kieron Morris Aaron Hance ", "tags": "", "loc": "kernel.html"}, + {"title": "kernel.kmain", "text": " ", "tags": "", "loc": "kernel.html#kmain"}, + {"title": "keyboard", "text": "

Aaron Hance ", "tags": "", "loc": "keyboard.html"}, + {"title": "keyboard.TKeyInfo", "text": " ", "tags": "", "loc": "keyboard.TKeyInfo.html"}, + {"title": "keyboard.TKeyInfo.key_code", "text": " ", "tags": "", "loc": "keyboard.TKeyInfo.html#key_code"}, + {"title": "keyboard.TKeyInfo.is_down_code", "text": " ", "tags": "", "loc": "keyboard.TKeyInfo.html#is_down_code"}, + {"title": "keyboard.TKeyInfo.SHIFT_DOWN", "text": " ", "tags": "", "loc": "keyboard.TKeyInfo.html#SHIFT_DOWN"}, + {"title": "keyboard.TKeyInfo.CTRL_DOWN", "text": " ", "tags": "", "loc": "keyboard.TKeyInfo.html#CTRL_DOWN"}, + {"title": "keyboard.TKeyInfo.ALT_DOWN", "text": " ", "tags": "", "loc": "keyboard.TKeyInfo.html#ALT_DOWN"}, + {"title": "keyboard.init", "text": " ", "tags": "", "loc": "keyboard.html#init"}, + {"title": "keyboard.hook", "text": " ", "tags": "", "loc": "keyboard.html#hook"}, + {"title": "keyboard.lang_USA", "text": " ", "tags": "", "loc": "keyboard.html#lang_USA"}, + {"title": "keyboard.PKeyInfo", "text": " ", "tags": "", "loc": "keyboard.html#PKeyInfo"}, + {"title": "keyboard.pp_hook_method", "text": " ", "tags": "", "loc": "keyboard.html#pp_hook_method"}, + {"title": "keyboard.key_matrix", "text": " ", "tags": "", "loc": "keyboard.html#key_matrix"}, + {"title": "keyboard.key_matrix_shift", "text": " ", "tags": "", "loc": "keyboard.html#key_matrix_shift"}, + {"title": "keyboard.captin_hook", "text": " ", "tags": "", "loc": "keyboard.html#captin_hook"}, + {"title": "keyboard.is_shift", "text": " ", "tags": "", "loc": "keyboard.html#is_shift"}, + {"title": "keyboard.is_ctrl", "text": " ", "tags": "", "loc": "keyboard.html#is_ctrl"}, + {"title": "keyboard.is_alt", "text": " ", "tags": "", "loc": "keyboard.html#is_alt"}, + {"title": "lists", "text": "

Kieron Morris ", "tags": "", "loc": "lists.html"}, + {"title": "lists.TLinkedList", "text": " ", "tags": "", "loc": "lists.TLinkedList.html"}, + {"title": "lists.TLinkedList.Previous", "text": " ", "tags": "", "loc": "lists.TLinkedList.html#Previous"}, + {"title": "lists.TLinkedList.Data", "text": " ", "tags": "", "loc": "lists.TLinkedList.html#Data"}, + {"title": "lists.TLinkedList.Next", "text": " ", "tags": "", "loc": "lists.TLinkedList.html#Next"}, + {"title": "lists.TLinkedListBase", "text": " ", "tags": "", "loc": "lists.TLinkedListBase.html"}, + {"title": "lists.TLinkedListBase.Count", "text": " ", "tags": "", "loc": "lists.TLinkedListBase.html#Count"}, + {"title": "lists.TLinkedListBase.Head", "text": " ", "tags": "", "loc": "lists.TLinkedListBase.html#Head"}, + {"title": "lists.TLinkedListBase.ElementSize", "text": " ", "tags": "", "loc": "lists.TLinkedListBase.html#ElementSize"}, + {"title": "lists.STRLL_Add", "text": " ", "tags": "", "loc": "lists.html#STRLL_Add"}, + {"title": "lists.STRLL_Get", "text": " ", "tags": "", "loc": "lists.html#STRLL_Get"}, + {"title": "lists.STRLL_New", "text": " ", "tags": "", "loc": "lists.html#STRLL_New"}, + {"title": "lists.STRLL_Size", "text": " ", "tags": "", "loc": "lists.html#STRLL_Size"}, + {"title": "lists.STRLL_Delete", "text": " ", "tags": "", "loc": "lists.html#STRLL_Delete"}, + {"title": "lists.STRLL_Free", "text": " ", "tags": "", "loc": "lists.html#STRLL_Free"}, + {"title": "lists.STRLL_Clear", "text": " ", "tags": "", "loc": "lists.html#STRLL_Clear"}, + {"title": "lists.STRLL_FromString", "text": " ", "tags": "", "loc": "lists.html#STRLL_FromString"}, + {"title": "lists.LL_New", "text": " ", "tags": "", "loc": "lists.html#LL_New"}, + {"title": "lists.LL_Add", "text": " ", "tags": "", "loc": "lists.html#LL_Add"}, + {"title": "lists.LL_Delete", "text": " ", "tags": "", "loc": "lists.html#LL_Delete"}, + {"title": "lists.LL_Size", "text": " ", "tags": "", "loc": "lists.html#LL_Size"}, + {"title": "lists.LL_Insert", "text": " ", "tags": "", "loc": "lists.html#LL_Insert"}, + {"title": "lists.LL_Get", "text": " ", "tags": "", "loc": "lists.html#LL_Get"}, + {"title": "lists.LL_Free", "text": " ", "tags": "", "loc": "lists.html#LL_Free"}, + {"title": "lists.LL_FromString", "text": " ", "tags": "", "loc": "lists.html#LL_FromString"}, + {"title": "lists.PLinkedList", "text": " ", "tags": "", "loc": "lists.html#PLinkedList"}, + {"title": "lists.PLinkedListBase", "text": " ", "tags": "", "loc": "lists.html#PLinkedListBase"}, + {"title": "lmemorymanager", "text": " Kieron Morris ", "tags": "", "loc": "lmemorymanager.html"}, + {"title": "lmemorymanager.THeapPage", "text": " ", "tags": "", "loc": "lmemorymanager.THeapPage.html"}, + {"title": "lmemorymanager.THeapPage.Next_Page", "text": " ", "tags": "", "loc": "lmemorymanager.THeapPage.html#Next_Page"}, + {"title": "lmemorymanager.THeapPage.Prev_Page", "text": " ", "tags": "", "loc": "lmemorymanager.THeapPage.html#Prev_Page"}, + {"title": "lmemorymanager.THeapPage.Entries", "text": " ", "tags": "", "loc": "lmemorymanager.THeapPage.html#Entries"}, + {"title": "lmemorymanager.ALLOC_SPACE", "text": " ", "tags": "", "loc": "lmemorymanager.html#ALLOC_SPACE"}, + {"title": "lmemorymanager.MAX_ENTRIES", "text": " ", "tags": "", "loc": "lmemorymanager.html#MAX_ENTRIES"}, + {"title": "lmemorymanager.DATA_OFFSET", "text": " ", "tags": "", "loc": "lmemorymanager.html#DATA_OFFSET"}, + {"title": "lmemorymanager.init", "text": " ", "tags": "", "loc": "lmemorymanager.html#init"}, + {"title": "lmemorymanager.kalloc", "text": " ", "tags": "", "loc": "lmemorymanager.html#kalloc"}, + {"title": "lmemorymanager.kpalloc", "text": " ", "tags": "", "loc": "lmemorymanager.html#kpalloc"}, + {"title": "lmemorymanager.kfree", "text": " ", "tags": "", "loc": "lmemorymanager.html#kfree"}, + {"title": "lmemorymanager.THeapEntry", "text": " ", "tags": "", "loc": "lmemorymanager.html#THeapEntry"}, + {"title": "lmemorymanager.PHeapPage", "text": " ", "tags": "", "loc": "lmemorymanager.html#PHeapPage"}, + {"title": "lmemorymanager.Root_Page", "text": " ", "tags": "", "loc": "lmemorymanager.html#Root_Page"}, + {"title": "lmemorymanager.Search_Page", "text": " ", "tags": "", "loc": "lmemorymanager.html#Search_Page"}, + {"title": "MCE", "text": "

Kieron Morris ", "tags": "", "loc": "MCE.html"}, + {"title": "MCE.register", "text": " ", "tags": "", "loc": "MCE.html#register"}, + {"title": "memview", "text": "

Kieron Morris ", "tags": "", "loc": "memview.html"}, + {"title": "memview.init", "text": " ", "tags": "", "loc": "memview.html#init"}, + {"title": "mouse", "text": "

Kieron Morris ", "tags": "", "loc": "mouse.html"}, + {"title": "mouse.TMousePacket", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html"}, + {"title": "mouse.TMousePacket.x_movement", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html#x_movement"}, + {"title": "mouse.TMousePacket.y_movement", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html#y_movement"}, + {"title": "mouse.TMousePacket.y_overflow", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html#y_overflow"}, + {"title": "mouse.TMousePacket.x_overflow", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html#x_overflow"}, + {"title": "mouse.TMousePacket.y_sign", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html#y_sign"}, + {"title": "mouse.TMousePacket.x_sign", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html#x_sign"}, + {"title": "mouse.TMousePacket.MMB_Down", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html#MMB_Down"}, + {"title": "mouse.TMousePacket.RMB_Down", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html#RMB_Down"}, + {"title": "mouse.TMousePacket.LMB_Down", "text": " ", "tags": "", "loc": "mouse.TMousePacket.html#LMB_Down"}, + {"title": "mouse.TMousePos", "text": " ", "tags": "", "loc": "mouse.TMousePos.html"}, + {"title": "mouse.TMousePos.x", "text": " ", "tags": "", "loc": "mouse.TMousePos.html#x"}, + {"title": "mouse.TMousePos.y", "text": " ", "tags": "", "loc": "mouse.TMousePos.html#y"}, + {"title": "mouse.init", "text": " ", "tags": "", "loc": "mouse.html#init"}, + {"title": "mouse.DrawCursor", "text": " ", "tags": "", "loc": "mouse.html#DrawCursor"}, + {"title": "mouse.PMousePacket", "text": " ", "tags": "", "loc": "mouse.html#PMousePacket"}, + {"title": "multiboot", "text": "

Kieron Morris ", "tags": "", "loc": "multiboot.html"}, + {"title": "multiboot.elf_section_header_table_t", "text": " ", "tags": "", "loc": "multiboot.elf_section_header_table_t.html"}, + {"title": "multiboot.elf_section_header_table_t.num", "text": " ", "tags": "", "loc": "multiboot.elf_section_header_table_t.html#num"}, + {"title": "multiboot.elf_section_header_table_t.size", "text": " ", "tags": "", "loc": "multiboot.elf_section_header_table_t.html#size"}, + {"title": "multiboot.elf_section_header_table_t.addr", "text": " ", "tags": "", "loc": "multiboot.elf_section_header_table_t.html#addr"}, + {"title": "multiboot.elf_section_header_table_t.shndx", "text": " ", "tags": "", "loc": "multiboot.elf_section_header_table_t.html#shndx"}, + {"title": "multiboot.multiboot_info_t", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html"}, + {"title": "multiboot.multiboot_info_t.flags", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#flags"}, + {"title": "multiboot.multiboot_info_t.mem_lower", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#mem_lower"}, + {"title": "multiboot.multiboot_info_t.mem_upper", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#mem_upper"}, + {"title": "multiboot.multiboot_info_t.boot_device", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#boot_device"}, + {"title": "multiboot.multiboot_info_t.cmdline", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#cmdline"}, + {"title": "multiboot.multiboot_info_t.mods_count", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#mods_count"}, + {"title": "multiboot.multiboot_info_t.mods_addr", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#mods_addr"}, + {"title": "multiboot.multiboot_info_t.elf_sec", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#elf_sec"}, + {"title": "multiboot.multiboot_info_t.mmap_length", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#mmap_length"}, + {"title": "multiboot.multiboot_info_t.mmap_addr", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#mmap_addr"}, + {"title": "multiboot.multiboot_info_t.drives_legnth", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#drives_legnth"}, + {"title": "multiboot.multiboot_info_t.drives_addr", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#drives_addr"}, + {"title": "multiboot.multiboot_info_t.config_table", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#config_table"}, + {"title": "multiboot.multiboot_info_t.boot_loader_name", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#boot_loader_name"}, + {"title": "multiboot.multiboot_info_t.apm_table", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#apm_table"}, + {"title": "multiboot.multiboot_info_t.vbe_control_info", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#vbe_control_info"}, + {"title": "multiboot.multiboot_info_t.vbe_mode_info", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#vbe_mode_info"}, + {"title": "multiboot.multiboot_info_t.vbe_mode", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#vbe_mode"}, + {"title": "multiboot.multiboot_info_t.vbe_interface_seg", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#vbe_interface_seg"}, + {"title": "multiboot.multiboot_info_t.vbe_interface_off", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#vbe_interface_off"}, + {"title": "multiboot.multiboot_info_t.vbe_interface_len", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#vbe_interface_len"}, + {"title": "multiboot.multiboot_info_t.framebuffer_addr", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#framebuffer_addr"}, + {"title": "multiboot.multiboot_info_t.framebuffer_pitch", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#framebuffer_pitch"}, + {"title": "multiboot.multiboot_info_t.framebuffer_width", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#framebuffer_width"}, + {"title": "multiboot.multiboot_info_t.framebuffer_height", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#framebuffer_height"}, + {"title": "multiboot.multiboot_info_t.framebuffer_bpp", "text": " ", "tags": "", "loc": "multiboot.multiboot_info_t.html#framebuffer_bpp"}, + {"title": "multiboot.module_t", "text": " ", "tags": "", "loc": "multiboot.module_t.html"}, + {"title": "multiboot.module_t.mod_start", "text": " ", "tags": "", "loc": "multiboot.module_t.html#mod_start"}, + {"title": "multiboot.module_t.mod_end", "text": " ", "tags": "", "loc": "multiboot.module_t.html#mod_end"}, + {"title": "multiboot.module_t.name", "text": " ", "tags": "", "loc": "multiboot.module_t.html#name"}, + {"title": "multiboot.module_t.reserved", "text": " ", "tags": "", "loc": "multiboot.module_t.html#reserved"}, + {"title": "multiboot.memory_map_t", "text": " ", "tags": "", "loc": "multiboot.memory_map_t.html"}, + {"title": "multiboot.memory_map_t.size", "text": " ", "tags": "", "loc": "multiboot.memory_map_t.html#size"}, + {"title": "multiboot.memory_map_t.base_addr", "text": " ", "tags": "", "loc": "multiboot.memory_map_t.html#base_addr"}, + {"title": "multiboot.memory_map_t.length", "text": " ", "tags": "", "loc": "multiboot.memory_map_t.html#length"}, + {"title": "multiboot.memory_map_t.mtype", "text": " ", "tags": "", "loc": "multiboot.memory_map_t.html#mtype"}, + {"title": "multiboot.KERNEL_STACKSIZE", "text": " ", "tags": "", "loc": "multiboot.html#KERNEL_STACKSIZE"}, + {"title": "multiboot.MULTIBOOT_BOOTLOADER_MAGIC", "text": " ", "tags": "", "loc": "multiboot.html#MULTIBOOT_BOOTLOADER_MAGIC"}, + {"title": "multiboot.Pelf_section_header_table_t", "text": " ", "tags": "", "loc": "multiboot.html#Pelf_section_header_table_t"}, + {"title": "multiboot.Pmultiboot_info_t", "text": " ", "tags": "", "loc": "multiboot.html#Pmultiboot_info_t"}, + {"title": "multiboot.Pmodule_t", "text": " ", "tags": "", "loc": "multiboot.html#Pmodule_t"}, + {"title": "multiboot.Pmemory_map_t", "text": " ", "tags": "", "loc": "multiboot.html#Pmemory_map_t"}, + {"title": "multiboot.multibootinfo", "text": " ", "tags": "", "loc": "multiboot.html#multibootinfo"}, + {"title": "multiboot.multibootmagic", "text": " ", "tags": "", "loc": "multiboot.html#multibootmagic"}, + {"title": "NCE", "text": "

Kieron Morris ", "tags": "", "loc": "NCE.html"}, + {"title": "NCE.register", "text": " ", "tags": "", "loc": "NCE.html#register"}, + {"title": "net", "text": "

Kieron Morris ", "tags": "", "loc": "net.html"}, + {"title": "net.init", "text": " ", "tags": "", "loc": "net.html#init"}, + {"title": "net.registerNetworkCard", "text": " ", "tags": "", "loc": "net.html#registerNetworkCard"}, + {"title": "net.registerNextLayer", "text": " ", "tags": "", "loc": "net.html#registerNextLayer"}, + {"title": "net.send", "text": " ", "tags": "", "loc": "net.html#send"}, + {"title": "net.recv", "text": " ", "tags": "", "loc": "net.html#recv"}, + {"title": "net.getMAC", "text": " ", "tags": "", "loc": "net.html#getMAC"}, + {"title": "net.writeToLog", "text": " ", "tags": "", "loc": "net.html#writeToLog"}, + {"title": "net.writeToLogLn", "text": " ", "tags": "", "loc": "net.html#writeToLogLn"}, + {"title": "netlog", "text": "

Kieron Morris ", "tags": "", "loc": "netlog.html"}, + {"title": "netlog.init", "text": " ", "tags": "", "loc": "netlog.html#init"}, + {"title": "netlog.getNetlogHWND", "text": " ", "tags": "", "loc": "netlog.html#getNetlogHWND"}, + {"title": "nettypes", "text": "

Kieron Morris ", "tags": "", "loc": "nettypes.html"}, + {"title": "nettypes.TMACPair", "text": " ", "tags": "", "loc": "nettypes.TMACPair.html"}, + {"title": "nettypes.TMACPair.Source", "text": " ", "tags": "", "loc": "nettypes.TMACPair.html#Source"}, + {"title": "nettypes.TMACPair.Destination", "text": " ", "tags": "", "loc": "nettypes.TMACPair.html#Destination"}, + {"title": "nettypes.TIPv4Pair", "text": " ", "tags": "", "loc": "nettypes.TIPv4Pair.html"}, + {"title": "nettypes.TIPv4Pair.Source", "text": " ", "tags": "", "loc": "nettypes.TIPv4Pair.html#Source"}, + {"title": "nettypes.TIPv4Pair.Destination", "text": " ", "tags": "", "loc": "nettypes.TIPv4Pair.html#Destination"}, + {"title": "nettypes.TProtocol", "text": " ", "tags": "", "loc": "nettypes.TProtocol.html"}, + {"title": "nettypes.TProtocol.L1", "text": " ", "tags": "", "loc": "nettypes.TProtocol.html#L1"}, + {"title": "nettypes.TProtocol.L2", "text": " ", "tags": "", "loc": "nettypes.TProtocol.html#L2"}, + {"title": "nettypes.TProtocol.L3", "text": " ", "tags": "", "loc": "nettypes.TProtocol.html#L3"}, + {"title": "nettypes.TProtocol.L4", "text": " ", "tags": "", "loc": "nettypes.TProtocol.html#L4"}, + {"title": "nettypes.TPacketContext", "text": " ", "tags": "", "loc": "nettypes.TPacketContext.html"}, + {"title": "nettypes.TPacketContext.MAC", "text": " ", "tags": "", "loc": "nettypes.TPacketContext.html#MAC"}, + {"title": "nettypes.TPacketContext.IP", "text": " ", "tags": "", "loc": "nettypes.TPacketContext.html#IP"}, + {"title": "nettypes.TPacketContext.Protocol", "text": " ", "tags": "", "loc": "nettypes.TPacketContext.html#Protocol"}, + {"title": "nettypes.TPacketContext.TTL", "text": " ", "tags": "", "loc": "nettypes.TPacketContext.html#TTL"}, + {"title": "nettypes.TIPv4Configuration", "text": " ", "tags": "", "loc": "nettypes.TIPv4Configuration.html"}, + {"title": "nettypes.TIPv4Configuration.Address", "text": " ", "tags": "", "loc": "nettypes.TIPv4Configuration.html#Address"}, + {"title": "nettypes.TIPv4Configuration.Gateway", "text": " ", "tags": "", "loc": "nettypes.TIPv4Configuration.html#Gateway"}, + {"title": "nettypes.TIPv4Configuration.Netmask", "text": " ", "tags": "", "loc": "nettypes.TIPv4Configuration.html#Netmask"}, + {"title": "nettypes.TIPv4Configuration.UP", "text": " ", "tags": "", "loc": "nettypes.TIPv4Configuration.html#UP"}, + {"title": "nettypes.TICMPHeader", "text": " ", "tags": "", "loc": "nettypes.TICMPHeader.html"}, + {"title": "nettypes.TICMPHeader.ICMP_Type", "text": " ", "tags": "", "loc": "nettypes.TICMPHeader.html#ICMP_Type"}, + {"title": "nettypes.TICMPHeader.ICMP_Code", "text": " ", "tags": "", "loc": "nettypes.TICMPHeader.html#ICMP_Code"}, + {"title": "nettypes.TICMPHeader.ICMP_CHK_Hi", "text": " ", "tags": "", "loc": "nettypes.TICMPHeader.html#ICMP_CHK_Hi"}, + {"title": "nettypes.TICMPHeader.ICMP_CHK_Lo", "text": " ", "tags": "", "loc": "nettypes.TICMPHeader.html#ICMP_CHK_Lo"}, + {"title": "nettypes.TICMPHeader.Identifier", "text": " ", "tags": "", "loc": "nettypes.TICMPHeader.html#Identifier"}, + {"title": "nettypes.TICMPHeader.Sequence", "text": " ", "tags": "", "loc": "nettypes.TICMPHeader.html#Sequence"}, + {"title": "nettypes.TARPAbstractHeader", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html"}, + {"title": "nettypes.TARPAbstractHeader.Hardware_Type", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html#Hardware_Type"}, + {"title": "nettypes.TARPAbstractHeader.Protocol_Type", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html#Protocol_Type"}, + {"title": "nettypes.TARPAbstractHeader.Hardware_Address_Length", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html#Hardware_Address_Length"}, + {"title": "nettypes.TARPAbstractHeader.Protocol_Address_Length", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html#Protocol_Address_Length"}, + {"title": "nettypes.TARPAbstractHeader.Operation", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html#Operation"}, + {"title": "nettypes.TARPAbstractHeader.Source_Hardware", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html#Source_Hardware"}, + {"title": "nettypes.TARPAbstractHeader.Source_Protocol", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html#Source_Protocol"}, + {"title": "nettypes.TARPAbstractHeader.Destination_Hardware", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html#Destination_Hardware"}, + {"title": "nettypes.TARPAbstractHeader.Destination_Protocol", "text": " ", "tags": "", "loc": "nettypes.TARPAbstractHeader.html#Destination_Protocol"}, + {"title": "nettypes.TTCPFlags", "text": " ", "tags": "", "loc": "nettypes.TTCPFlags.html"}, + {"title": "nettypes.TTCPFlags.RS", "text": " ", "tags": "", "loc": "nettypes.TTCPFlags.html#RS"}, + {"title": "nettypes.TTCPFlags.DF", "text": " ", "tags": "", "loc": "nettypes.TTCPFlags.html#DF"}, + {"title": "nettypes.TTCPFlags.MF", "text": " ", "tags": "", "loc": "nettypes.TTCPFlags.html#MF"}, + {"title": "nettypes.TIPV4AbstractHeader", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html"}, + {"title": "nettypes.TIPV4AbstractHeader.version", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#version"}, + {"title": "nettypes.TIPV4AbstractHeader.header_len", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#header_len"}, + {"title": "nettypes.TIPV4AbstractHeader.ToS", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#ToS"}, + {"title": "nettypes.TIPV4AbstractHeader.total_len", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#total_len"}, + {"title": "nettypes.TIPV4AbstractHeader.identifier", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#identifier"}, + {"title": "nettypes.TIPV4AbstractHeader.Flags", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#Flags"}, + {"title": "nettypes.TIPV4AbstractHeader.Fragment_Off", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#Fragment_Off"}, + {"title": "nettypes.TIPV4AbstractHeader.TTL", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#TTL"}, + {"title": "nettypes.TIPV4AbstractHeader.Protocol", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#Protocol"}, + {"title": "nettypes.TIPV4AbstractHeader.HDR_CHK", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#HDR_CHK"}, + {"title": "nettypes.TIPV4AbstractHeader.Src", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#Src"}, + {"title": "nettypes.TIPV4AbstractHeader.Dst", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#Dst"}, + {"title": "nettypes.TIPV4AbstractHeader.Options", "text": " ", "tags": "", "loc": "nettypes.TIPV4AbstractHeader.html#Options"}, + {"title": "nettypes.BROADCAST_MAC", "text": " ", "tags": "", "loc": "nettypes.html#BROADCAST_MAC"}, + {"title": "nettypes.NULL_MAC", "text": " ", "tags": "", "loc": "nettypes.html#NULL_MAC"}, + {"title": "nettypes.FORCE_MAC", "text": " ", "tags": "", "loc": "nettypes.html#FORCE_MAC"}, + {"title": "nettypes.ICMP_DATA_GENERIC", "text": " ", "tags": "", "loc": "nettypes.html#ICMP_DATA_GENERIC"}, + {"title": "nettypes.TMACAddress", "text": " ", "tags": "", "loc": "nettypes.html#TMACAddress"}, + {"title": "nettypes.TIPv4Address", "text": " ", "tags": "", "loc": "nettypes.html#TIPv4Address"}, + {"title": "nettypes.PPacketContext", "text": " ", "tags": "", "loc": "nettypes.html#PPacketContext"}, + {"title": "nettypes.PIPv4Configuration", "text": " ", "tags": "", "loc": "nettypes.html#PIPv4Configuration"}, + {"title": "nettypes.PICMPHeader", "text": " ", "tags": "", "loc": "nettypes.html#PICMPHeader"}, + {"title": "nettypes.PARPHeader", "text": " ", "tags": "", "loc": "nettypes.html#PARPHeader"}, + {"title": "nettypes.TARPHeader", "text": " ", "tags": "", "loc": "nettypes.html#TARPHeader"}, + {"title": "nettypes.PEthernetHeader", "text": " ", "tags": "", "loc": "nettypes.html#PEthernetHeader"}, + {"title": "nettypes.TEthernetHeader", "text": " ", "tags": "", "loc": "nettypes.html#TEthernetHeader"}, + {"title": "nettypes.PIPV4Header", "text": " ", "tags": "", "loc": "nettypes.html#PIPV4Header"}, + {"title": "nettypes.TIPV4Header", "text": " ", "tags": "", "loc": "nettypes.html#TIPV4Header"}, + {"title": "nettypes.TNetSendCallback", "text": " ", "tags": "", "loc": "nettypes.html#TNetSendCallback"}, + {"title": "nettypes.TRecvCallback", "text": " ", "tags": "", "loc": "nettypes.html#TRecvCallback"}, + {"title": "netutils", "text": "

Kieron Morris ", "tags": "", "loc": "netutils.html"}, + {"title": "netutils.copyMAC", "text": " ", "tags": "", "loc": "netutils.html#copyMAC"}, + {"title": "netutils.copyIPv4", "text": " ", "tags": "", "loc": "netutils.html#copyIPv4"}, + {"title": "netutils.stringToMAC", "text": " ", "tags": "", "loc": "netutils.html#stringToMAC"}, + {"title": "netutils.stringToIPv4", "text": " ", "tags": "", "loc": "netutils.html#stringToIPv4"}, + {"title": "netutils.writeMACAddress", "text": " ", "tags": "", "loc": "netutils.html#writeMACAddress"}, + {"title": "netutils.writeIPv4Address", "text": " ", "tags": "", "loc": "netutils.html#writeIPv4Address"}, + {"title": "netutils.writeMACAddressEx", "text": " ", "tags": "", "loc": "netutils.html#writeMACAddressEx"}, + {"title": "netutils.writeIPv4AddressEx", "text": " ", "tags": "", "loc": "netutils.html#writeIPv4AddressEx"}, + {"title": "netutils.MACEqual", "text": " ", "tags": "", "loc": "netutils.html#MACEqual"}, + {"title": "netutils.IPEqual", "text": " ", "tags": "", "loc": "netutils.html#IPEqual"}, + {"title": "netutils.newPacketContext", "text": " ", "tags": "", "loc": "netutils.html#newPacketContext"}, + {"title": "netutils.freePacketContext", "text": " ", "tags": "", "loc": "netutils.html#freePacketContext"}, + {"title": "netutils.calculateChecksum", "text": " ", "tags": "", "loc": "netutils.html#calculateChecksum"}, + {"title": "netutils.verifyChecksum", "text": " ", "tags": "", "loc": "netutils.html#verifyChecksum"}, + {"title": "netutils.sameSubnetIPv4", "text": " ", "tags": "", "loc": "netutils.html#sameSubnetIPv4"}, + {"title": "netutils.contextMACSwitch", "text": " ", "tags": "", "loc": "netutils.html#contextMACSwitch"}, + {"title": "netutils.contextIPv4Switch", "text": " ", "tags": "", "loc": "netutils.html#contextIPv4Switch"}, + {"title": "NMIE", "text": "

Kieron Morris ", "tags": "", "loc": "NMIE.html"}, + {"title": "NMIE.register", "text": " ", "tags": "", "loc": "NMIE.html#register"}, + {"title": "OHCI", "text": "

Kieron Morris ", "tags": "", "loc": "OHCI.html"}, + {"title": "OHCI.TOHCI_MMR", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html"}, + {"title": "OHCI.TOHCI_MMR.HcRevision", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcRevision"}, + {"title": "OHCI.TOHCI_MMR.HcControl", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcControl"}, + {"title": "OHCI.TOHCI_MMR.HcCommandStatus", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcCommandStatus"}, + {"title": "OHCI.TOHCI_MMR.HcIntStatus", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcIntStatus"}, + {"title": "OHCI.TOHCI_MMR.HcIntEnable", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcIntEnable"}, + {"title": "OHCI.TOHCI_MMR.HcIntDisable", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcIntDisable"}, + {"title": "OHCI.TOHCI_MMR.HcHCCA", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcHCCA"}, + {"title": "OHCI.TOHCI_MMR.HcPeriodCurrentED", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcPeriodCurrentED"}, + {"title": "OHCI.TOHCI_MMR.HcControlHeadED", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcControlHeadED"}, + {"title": "OHCI.TOHCI_MMR.HcControlCurrentED", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcControlCurrentED"}, + {"title": "OHCI.TOHCI_MMR.HcBulkHeadED", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcBulkHeadED"}, + {"title": "OHCI.TOHCI_MMR.HcBulkCurrentED", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcBulkCurrentED"}, + {"title": "OHCI.TOHCI_MMR.HcDoneHead", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcDoneHead"}, + {"title": "OHCI.TOHCI_MMR.HcFmRemaining", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcFmRemaining"}, + {"title": "OHCI.TOHCI_MMR.HcFmNumber", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcFmNumber"}, + {"title": "OHCI.TOHCI_MMR.HcPeriodicStart", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcPeriodicStart"}, + {"title": "OHCI.TOHCI_MMR.HcLSThreshold", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcLSThreshold"}, + {"title": "OHCI.TOHCI_MMR.HcRhDescriptorA", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcRhDescriptorA"}, + {"title": "OHCI.TOHCI_MMR.HcRhDescriptorB", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcRhDescriptorB"}, + {"title": "OHCI.TOHCI_MMR.HcRhStatus", "text": " ", "tags": "", "loc": "OHCI.TOHCI_MMR.html#HcRhStatus"}, + {"title": "OHCI.load", "text": " ", "tags": "", "loc": "OHCI.html#load"}, + {"title": "OHCI.POHCI_MMR", "text": " ", "tags": "", "loc": "OHCI.html#POHCI_MMR"}, + {"title": "OOBE", "text": "

Kieron Morris ", "tags": "", "loc": "OOBE.html"}, + {"title": "OOBE.register", "text": " ", "tags": "", "loc": "OOBE.html#register"}, + {"title": "PCI", "text": "

Aaron Hance Kieron Morris ", "tags": "", "loc": "PCI.html"}, + {"title": "PCI.PCI_PORT_CONF_ADDR", "text": " ", "tags": "", "loc": "PCI.html#PCI_PORT_CONF_ADDR"}, + {"title": "PCI.PCI_PORT_CONF_DATA", "text": " ", "tags": "", "loc": "PCI.html#PCI_PORT_CONF_DATA"}, + {"title": "PCI.init", "text": " ", "tags": "", "loc": "PCI.html#init"}, + {"title": "PCI.scanBus", "text": " ", "tags": "", "loc": "PCI.html#scanBus"}, + {"title": "PCI.loadDeviceConfig", "text": " ", "tags": "", "loc": "PCI.html#loadDeviceConfig"}, + {"title": "PCI.getDeviceInfo", "text": " ", "tags": "", "loc": "PCI.html#getDeviceInfo"}, + {"title": "PCI.requestConfig", "text": " ", "tags": "", "loc": "PCI.html#requestConfig"}, + {"title": "PCI.writeConfig", "text": " ", "tags": "", "loc": "PCI.html#writeConfig"}, + {"title": "PCI.setBusMaster", "text": " ", "tags": "", "loc": "PCI.html#setBusMaster"}, + {"title": "PCI.TPCI_Device_Bridge", "text": " ", "tags": "", "loc": "PCI.html#TPCI_Device_Bridge"}, + {"title": "PCI.devices", "text": " ", "tags": "", "loc": "PCI.html#devices"}, + {"title": "PCI.busses", "text": " ", "tags": "", "loc": "PCI.html#busses"}, + {"title": "PCI.device_count", "text": " ", "tags": "", "loc": "PCI.html#device_count"}, + {"title": "PCI.bus_count", "text": " ", "tags": "", "loc": "PCI.html#bus_count"}, + {"title": "PCI.get_device_count", "text": " ", "tags": "", "loc": "PCI.html#get_device_count"}, + {"title": "PF", "text": "

Kieron Morris ", "tags": "", "loc": "PF.html"}, + {"title": "PF.register", "text": " ", "tags": "", "loc": "PF.html#register"}, + {"title": "pmemorymanager", "text": " Kieron Morris ", "tags": "", "loc": "pmemorymanager.html"}, + {"title": "pmemorymanager.TPhysicalMemoryEntry", "text": " ", "tags": "", "loc": "pmemorymanager.TPhysicalMemoryEntry.html"}, + {"title": "pmemorymanager.TPhysicalMemoryEntry.Scanned", "text": " ", "tags": "", "loc": "pmemorymanager.TPhysicalMemoryEntry.html#Scanned"}, + {"title": "pmemorymanager.TPhysicalMemoryEntry.Present", "text": " ", "tags": "", "loc": "pmemorymanager.TPhysicalMemoryEntry.html#Present"}, + {"title": "pmemorymanager.TPhysicalMemoryEntry.Allocated", "text": " ", "tags": "", "loc": "pmemorymanager.TPhysicalMemoryEntry.html#Allocated"}, + {"title": "pmemorymanager.TPhysicalMemoryEntry.MappedTo", "text": " ", "tags": "", "loc": "pmemorymanager.TPhysicalMemoryEntry.html#MappedTo"}, + {"title": "pmemorymanager.init", "text": " ", "tags": "", "loc": "pmemorymanager.html#init"}, + {"title": "pmemorymanager.alloc_block", "text": " ", "tags": "", "loc": "pmemorymanager.html#alloc_block"}, + {"title": "pmemorymanager.force_alloc_block", "text": " ", "tags": "", "loc": "pmemorymanager.html#force_alloc_block"}, + {"title": "pmemorymanager.new_block", "text": " ", "tags": "", "loc": "pmemorymanager.html#new_block"}, + {"title": "pmemorymanager.free_block", "text": " ", "tags": "", "loc": "pmemorymanager.html#free_block"}, + {"title": "pmemorymanager.TPhysicalMemory", "text": " ", "tags": "", "loc": "pmemorymanager.html#TPhysicalMemory"}, + {"title": "processloader", "text": "

Kieron Morris ", "tags": "", "loc": "processloader.html"}, + {"title": "PS2_KEYBOARD_ISR", "text": "

Aaron Hance Kieron Morris ", "tags": "", "loc": "PS2_KEYBOARD_ISR.html"}, + {"title": "PS2_KEYBOARD_ISR.register", "text": " ", "tags": "", "loc": "PS2_KEYBOARD_ISR.html#register"}, + {"title": "PS2_KEYBOARD_ISR.hook", "text": " ", "tags": "", "loc": "PS2_KEYBOARD_ISR.html#hook"}, + {"title": "PS2_KEYBOARD_ISR.unhook", "text": " ", "tags": "", "loc": "PS2_KEYBOARD_ISR.html#unhook"}, + {"title": "RTC", "text": "

Kieron Morris ", "tags": "", "loc": "RTC.html"}, + {"title": "RTC.TDateTime", "text": " ", "tags": "", "loc": "RTC.TDateTime.html"}, + {"title": "RTC.TDateTime.Seconds", "text": " ", "tags": "", "loc": "RTC.TDateTime.html#Seconds"}, + {"title": "RTC.TDateTime.Minutes", "text": " ", "tags": "", "loc": "RTC.TDateTime.html#Minutes"}, + {"title": "RTC.TDateTime.Hours", "text": " ", "tags": "", "loc": "RTC.TDateTime.html#Hours"}, + {"title": "RTC.TDateTime.Weekday", "text": " ", "tags": "", "loc": "RTC.TDateTime.html#Weekday"}, + {"title": "RTC.TDateTime.Day", "text": " ", "tags": "", "loc": "RTC.TDateTime.html#Day"}, + {"title": "RTC.TDateTime.Month", "text": " ", "tags": "", "loc": "RTC.TDateTime.html#Month"}, + {"title": "RTC.TDateTime.Year", "text": " ", "tags": "", "loc": "RTC.TDateTime.html#Year"}, + {"title": "RTC.TDateTime.Century", "text": " ", "tags": "", "loc": "RTC.TDateTime.html#Century"}, + {"title": "RTC.init", "text": " ", "tags": "", "loc": "RTC.html#init"}, + {"title": "RTC.getDateTime", "text": " ", "tags": "", "loc": "RTC.html#getDateTime"}, + {"title": "RTC.weekdayToString", "text": " ", "tags": "", "loc": "RTC.html#weekdayToString"}, + {"title": "scheduler", "text": "

Kieron Morris ", "tags": "", "loc": "scheduler.html"}, + {"title": "scheduler.TTaskState", "text": " ", "tags": "", "loc": "scheduler.TTaskState.html"}, + {"title": "scheduler.TScheduler_Entry", "text": " ", "tags": "", "loc": "scheduler.TScheduler_Entry.html"}, + {"title": "scheduler.TScheduler_Entry.ThreadID", "text": " ", "tags": "", "loc": "scheduler.TScheduler_Entry.html#ThreadID"}, + {"title": "scheduler.TScheduler_Entry.Priority", "text": " ", "tags": "", "loc": "scheduler.TScheduler_Entry.html#Priority"}, + {"title": "scheduler.TScheduler_Entry.Delta", "text": " ", "tags": "", "loc": "scheduler.TScheduler_Entry.html#Delta"}, + {"title": "scheduler.TScheduler_Entry.Next", "text": " ", "tags": "", "loc": "scheduler.TScheduler_Entry.html#Next"}, + {"title": "scheduler.Quantum", "text": " ", "tags": "", "loc": "scheduler.html#Quantum"}, + {"title": "scheduler.init", "text": " ", "tags": "", "loc": "scheduler.html#init"}, + {"title": "scheduler.add_task", "text": " ", "tags": "", "loc": "scheduler.html#add_task"}, + {"title": "scheduler.PScheduler_Entry", "text": " ", "tags": "", "loc": "scheduler.html#PScheduler_Entry"}, + {"title": "scheduler.Active", "text": " ", "tags": "", "loc": "scheduler.html#Active"}, + {"title": "serial", "text": "

Kieron Morris ", "tags": "", "loc": "serial.html"}, + {"title": "serial.COM1", "text": " ", "tags": "", "loc": "serial.html#COM1"}, + {"title": "serial.COM2", "text": " ", "tags": "", "loc": "serial.html#COM2"}, + {"title": "serial.COM3", "text": " ", "tags": "", "loc": "serial.html#COM3"}, + {"title": "serial.COM4", "text": " ", "tags": "", "loc": "serial.html#COM4"}, + {"title": "serial.init", "text": " ", "tags": "", "loc": "serial.html#init"}, + {"title": "serial.receive", "text": " ", "tags": "", "loc": "serial.html#receive"}, + {"title": "serial.send", "text": " ", "tags": "", "loc": "serial.html#send"}, + {"title": "serial.sendString", "text": " ", "tags": "", "loc": "serial.html#sendString"}, + {"title": "SFE", "text": "

Kieron Morris ", "tags": "", "loc": "SFE.html"}, + {"title": "SFE.register", "text": " ", "tags": "", "loc": "SFE.html#register"}, + {"title": "shell", "text": "

Kieron Morris ", "tags": "", "loc": "shell.html"}, + {"title": "shell.init", "text": " ", "tags": "", "loc": "shell.html#init"}, + {"title": "shell.getTaskbarColorsPtr", "text": " ", "tags": "", "loc": "shell.html#getTaskbarColorsPtr"}, + {"title": "shell.getExploreColorsPtr", "text": " ", "tags": "", "loc": "shell.html#getExploreColorsPtr"}, + {"title": "shell.getDesktopColorsPtr", "text": " ", "tags": "", "loc": "shell.html#getDesktopColorsPtr"}, + {"title": "SNPE", "text": "

Kieron Morris ", "tags": "", "loc": "SNPE.html"}, + {"title": "SNPE.register", "text": " ", "tags": "", "loc": "SNPE.html#register"}, + {"title": "splash", "text": "

Kieron Morris ", "tags": "", "loc": "splash.html"}, + {"title": "splash.init", "text": " ", "tags": "", "loc": "splash.html#init"}, + {"title": "strings", "text": "

Kieron Morris ", "tags": "", "loc": "strings.html"}, + {"title": "strings.stringToUpper", "text": " ", "tags": "", "loc": "strings.html#stringToUpper"}, + {"title": "strings.stringToLower", "text": " ", "tags": "", "loc": "strings.html#stringToLower"}, + {"title": "strings.stringEquals", "text": " ", "tags": "", "loc": "strings.html#stringEquals"}, + {"title": "strings.stringCopy", "text": " ", "tags": "", "loc": "strings.html#stringCopy"}, + {"title": "strings.stringNew", "text": " ", "tags": "", "loc": "strings.html#stringNew"}, + {"title": "strings.stringSize", "text": " ", "tags": "", "loc": "strings.html#stringSize"}, + {"title": "strings.stringConcat", "text": " ", "tags": "", "loc": "strings.html#stringConcat"}, + {"title": "strings.stringContains", "text": " ", "tags": "", "loc": "strings.html#stringContains"}, + {"title": "strings.stringToInt", "text": " ", "tags": "", "loc": "strings.html#stringToInt"}, + {"title": "strings.hexStringToInt", "text": " ", "tags": "", "loc": "strings.html#hexStringToInt"}, + {"title": "strings.intToString", "text": " ", "tags": "", "loc": "strings.html#intToString"}, + {"title": "strings.boolToString", "text": " ", "tags": "", "loc": "strings.html#boolToString"}, + {"title": "system", "text": "

Kieron Morris Aaron Hance ", "tags": "", "loc": "system.html"}, + {"title": "system.KERNEL_VIRTUAL_BASE", "text": " ", "tags": "", "loc": "system.html#KERNEL_VIRTUAL_BASE"}, + {"title": "system.KERNEL_PAGE_NUMBER", "text": " ", "tags": "", "loc": "system.html#KERNEL_PAGE_NUMBER"}, + {"title": "system.BSOD_ENABLE", "text": " ", "tags": "", "loc": "system.html#BSOD_ENABLE"}, + {"title": "system.TRACER_ENABLE", "text": " ", "tags": "", "loc": "system.html#TRACER_ENABLE"}, + {"title": "system.CONSOLE_SLOW_REDRAW", "text": " ", "tags": "", "loc": "system.html#CONSOLE_SLOW_REDRAW"}, + {"title": "system.cardinal", "text": " internal types ", "tags": "", "loc": "system.html#cardinal"}, + {"title": "system.hresult", "text": " ", "tags": "", "loc": "system.html#hresult"}, + {"title": "system.dword", "text": " ", "tags": "", "loc": "system.html#dword"}, + {"title": "system.integer", "text": " ", "tags": "", "loc": "system.html#integer"}, + {"title": "system.pchar", "text": " ", "tags": "", "loc": "system.html#pchar"}, + {"title": "system.uInt8", "text": " ", "tags": "", "loc": "system.html#uInt8"}, + {"title": "system.uInt16", "text": " ", "tags": "", "loc": "system.html#uInt16"}, + {"title": "system.uInt32", "text": " ", "tags": "", "loc": "system.html#uInt32"}, + {"title": "system.uInt64", "text": " ", "tags": "", "loc": "system.html#uInt64"}, + {"title": "system.sInt8", "text": " ", "tags": "", "loc": "system.html#sInt8"}, + {"title": "system.sInt16", "text": " ", "tags": "", "loc": "system.html#sInt16"}, + {"title": "system.sInt32", "text": " ", "tags": "", "loc": "system.html#sInt32"}, + {"title": "system.sInt64", "text": " ", "tags": "", "loc": "system.html#sInt64"}, + {"title": "system.Float", "text": " ", "tags": "", "loc": "system.html#Float"}, + {"title": "system.PuByte", "text": " ", "tags": "", "loc": "system.html#PuByte"}, + {"title": "system.PuInt8", "text": " ", "tags": "", "loc": "system.html#PuInt8"}, + {"title": "system.PuInt16", "text": " ", "tags": "", "loc": "system.html#PuInt16"}, + {"title": "system.PuInt32", "text": " ", "tags": "", "loc": "system.html#PuInt32"}, + {"title": "system.PuInt64", "text": " ", "tags": "", "loc": "system.html#PuInt64"}, + {"title": "system.PsInt8", "text": " ", "tags": "", "loc": "system.html#PsInt8"}, + {"title": "system.PsInt16", "text": " ", "tags": "", "loc": "system.html#PsInt16"}, + {"title": "system.PsInt32", "text": " ", "tags": "", "loc": "system.html#PsInt32"}, + {"title": "system.PsInt64", "text": " ", "tags": "", "loc": "system.html#PsInt64"}, + {"title": "system.PFloat", "text": " ", "tags": "", "loc": "system.html#PFloat"}, + {"title": "system.PDouble", "text": " ", "tags": "", "loc": "system.html#PDouble"}, + {"title": "system.Void", "text": " ", "tags": "", "loc": "system.html#Void"}, + {"title": "system.HWND", "text": " ", "tags": "", "loc": "system.html#HWND"}, + {"title": "system.UBit1", "text": " ", "tags": "", "loc": "system.html#UBit1"}, + {"title": "system.UBit2", "text": " ", "tags": "", "loc": "system.html#UBit2"}, + {"title": "system.UBit3", "text": " ", "tags": "", "loc": "system.html#UBit3"}, + {"title": "system.UBit4", "text": " ", "tags": "", "loc": "system.html#UBit4"}, + {"title": "system.UBit5", "text": " ", "tags": "", "loc": "system.html#UBit5"}, + {"title": "system.UBit6", "text": " ", "tags": "", "loc": "system.html#UBit6"}, + {"title": "system.UBit7", "text": " ", "tags": "", "loc": "system.html#UBit7"}, + {"title": "system.UBit9", "text": " ", "tags": "", "loc": "system.html#UBit9"}, + {"title": "system.UBit10", "text": " ", "tags": "", "loc": "system.html#UBit10"}, + {"title": "system.UBit11", "text": " ", "tags": "", "loc": "system.html#UBit11"}, + {"title": "system.UBit12", "text": " ", "tags": "", "loc": "system.html#UBit12"}, + {"title": "system.UBit13", "text": " ", "tags": "", "loc": "system.html#UBit13"}, + {"title": "system.UBit14", "text": " ", "tags": "", "loc": "system.html#UBit14"}, + {"title": "system.UBit15", "text": " ", "tags": "", "loc": "system.html#UBit15"}, + {"title": "system.UBit16", "text": " ", "tags": "", "loc": "system.html#UBit16"}, + {"title": "system.UBit17", "text": " ", "tags": "", "loc": "system.html#UBit17"}, + {"title": "system.UBit18", "text": " ", "tags": "", "loc": "system.html#UBit18"}, + {"title": "system.UBit19", "text": " ", "tags": "", "loc": "system.html#UBit19"}, + {"title": "system.UBit20", "text": " ", "tags": "", "loc": "system.html#UBit20"}, + {"title": "system.UBit21", "text": " ", "tags": "", "loc": "system.html#UBit21"}, + {"title": "system.UBit22", "text": " ", "tags": "", "loc": "system.html#UBit22"}, + {"title": "system.UBit23", "text": " ", "tags": "", "loc": "system.html#UBit23"}, + {"title": "system.UBit24", "text": " ", "tags": "", "loc": "system.html#UBit24"}, + {"title": "system.UBit25", "text": " ", "tags": "", "loc": "system.html#UBit25"}, + {"title": "system.UBit26", "text": " ", "tags": "", "loc": "system.html#UBit26"}, + {"title": "system.UBit27", "text": " ", "tags": "", "loc": "system.html#UBit27"}, + {"title": "system.UBit28", "text": " ", "tags": "", "loc": "system.html#UBit28"}, + {"title": "system.UBit30", "text": " ", "tags": "", "loc": "system.html#UBit30"}, + {"title": "system.UBit31", "text": " ", "tags": "", "loc": "system.html#UBit31"}, + {"title": "system.TBitMask", "text": " ", "tags": "", "loc": "system.html#TBitMask"}, + {"title": "system.PBitMask", "text": " ", "tags": "", "loc": "system.html#PBitMask"}, + {"title": "system.TMask", "text": " ", "tags": "", "loc": "system.html#TMask"}, + {"title": "system.PMask", "text": " ", "tags": "", "loc": "system.html#PMask"}, + {"title": "system.TRGB565", "text": " ", "tags": "", "loc": "system.html#TRGB565"}, + {"title": "system.PRGB565", "text": " ", "tags": "", "loc": "system.html#PRGB565"}, + {"title": "system.TRGB565Pair", "text": " ", "tags": "", "loc": "system.html#TRGB565Pair"}, + {"title": "system.PRGB565Pair", "text": " ", "tags": "", "loc": "system.html#PRGB565Pair"}, + {"title": "tcp", "text": "

Kieron Morris ", "tags": "", "loc": "tcp.html"}, + {"title": "terminal", "text": "

Kieron Morris ", "tags": "", "loc": "terminal.html"}, + {"title": "terminal.TParamList", "text": " ", "tags": "", "loc": "terminal.TParamList.html"}, + {"title": "terminal.TParamList.Param", "text": " ", "tags": "", "loc": "terminal.TParamList.html#Param"}, + {"title": "terminal.TParamList.Next", "text": " ", "tags": "", "loc": "terminal.TParamList.html#Next"}, + {"title": "terminal.THistory", "text": " ", "tags": "", "loc": "terminal.THistory.html"}, + {"title": "terminal.THistory.Command", "text": " ", "tags": "", "loc": "terminal.THistory.html#Command"}, + {"title": "terminal.THistory.Next", "text": " ", "tags": "", "loc": "terminal.THistory.html#Next"}, + {"title": "terminal.TCommand", "text": " ", "tags": "", "loc": "terminal.TCommand.html"}, + {"title": "terminal.TCommand.registered", "text": " ", "tags": "", "loc": "terminal.TCommand.html#registered"}, + {"title": "terminal.TCommand.hidden", "text": " ", "tags": "", "loc": "terminal.TCommand.html#hidden"}, + {"title": "terminal.TCommand.command", "text": " ", "tags": "", "loc": "terminal.TCommand.html#command"}, + {"title": "terminal.TCommand.method", "text": " ", "tags": "", "loc": "terminal.TCommand.html#method"}, + {"title": "terminal.TCommand.description", "text": " ", "tags": "", "loc": "terminal.TCommand.html#description"}, + {"title": "terminal.run", "text": " ", "tags": "", "loc": "terminal.html#run"}, + {"title": "terminal.init", "text": " ", "tags": "", "loc": "terminal.html#init"}, + {"title": "terminal.registerCommand", "text": " ", "tags": "", "loc": "terminal.html#registerCommand"}, + {"title": "terminal.registerCommandEx", "text": " ", "tags": "", "loc": "terminal.html#registerCommandEx"}, + {"title": "terminal.getParams", "text": " ", "tags": "", "loc": "terminal.html#getParams"}, + {"title": "terminal.paramCount", "text": " ", "tags": "", "loc": "terminal.html#paramCount"}, + {"title": "terminal.getParam", "text": " ", "tags": "", "loc": "terminal.html#getParam"}, + {"title": "terminal.setWorkingDirectory", "text": " ", "tags": "", "loc": "terminal.html#setWorkingDirectory"}, + {"title": "terminal.getWorkingDirectory", "text": " ", "tags": "", "loc": "terminal.html#getWorkingDirectory"}, + {"title": "terminal.getTerminalHWND", "text": " ", "tags": "", "loc": "terminal.html#getTerminalHWND"}, + {"title": "terminal.halt", "text": " ", "tags": "", "loc": "terminal.html#halt"}, + {"title": "terminal.done", "text": " ", "tags": "", "loc": "terminal.html#done"}, + {"title": "terminal.THaltCallback", "text": " ", "tags": "", "loc": "terminal.html#THaltCallback"}, + {"title": "terminal.PParamList", "text": " ", "tags": "", "loc": "terminal.html#PParamList"}, + {"title": "terminal.PHistory", "text": " ", "tags": "", "loc": "terminal.html#PHistory"}, + {"title": "terminal.TCommandBuffer", "text": " ", "tags": "", "loc": "terminal.html#TCommandBuffer"}, + {"title": "terminal.TCommandMethod", "text": " ", "tags": "", "loc": "terminal.html#TCommandMethod"}, + {"title": "terminal.buffer", "text": " ", "tags": "", "loc": "terminal.html#buffer"}, + {"title": "terminal.History", "text": " ", "tags": "", "loc": "terminal.html#History"}, + {"title": "terminal.bIndex", "text": " ", "tags": "", "loc": "terminal.html#bIndex"}, + {"title": "terminal.Commands", "text": " ", "tags": "", "loc": "terminal.html#Commands"}, + {"title": "terminal.Working_Directory", "text": " ", "tags": "", "loc": "terminal.html#Working_Directory"}, + {"title": "terminal.Halted", "text": " ", "tags": "", "loc": "terminal.html#Halted"}, + {"title": "terminal.HaltID", "text": " ", "tags": "", "loc": "terminal.html#HaltID"}, + {"title": "terminal.HaltCB", "text": " ", "tags": "", "loc": "terminal.html#HaltCB"}, + {"title": "testdriver", "text": "

Kieron Morris ", "tags": "", "loc": "testdriver.html"}, + {"title": "testdriver.init", "text": " ", "tags": "", "loc": "testdriver.html#init"}, + {"title": "themer", "text": "

Kieron Morris ", "tags": "", "loc": "themer.html"}, + {"title": "themer.init", "text": " ", "tags": "", "loc": "themer.html#init"}, + {"title": "TMR_0_ISR", "text": "

Kieron Morris ", "tags": "", "loc": "TMR_0_ISR.html"}, + {"title": "TMR_0_ISR.register", "text": " ", "tags": "", "loc": "TMR_0_ISR.html#register"}, + {"title": "TMR_0_ISR.hook", "text": " ", "tags": "", "loc": "TMR_0_ISR.html#hook"}, + {"title": "TMR_0_ISR.unhook", "text": " ", "tags": "", "loc": "TMR_0_ISR.html#unhook"}, + {"title": "TMR_1_ISR", "text": "

Kieron Morris ", "tags": "", "loc": "TMR_1_ISR.html"}, + {"title": "TMR_1_ISR.register", "text": " ", "tags": "", "loc": "TMR_1_ISR.html#register"}, + {"title": "TMR_1_ISR.hook", "text": " ", "tags": "", "loc": "TMR_1_ISR.html#hook"}, + {"title": "TMR_1_ISR.unhook", "text": " ", "tags": "", "loc": "TMR_1_ISR.html#unhook"}, + {"title": "tracer", "text": "

Kieron Morris ", "tags": "", "loc": "tracer.html"}, + {"title": "tracer.init", "text": " ", "tags": "", "loc": "tracer.html#init"}, + {"title": "tracer.push_trace", "text": " ", "tags": "", "loc": "tracer.html#push_trace"}, + {"title": "tracer.pop_trace", "text": " ", "tags": "", "loc": "tracer.html#pop_trace"}, + {"title": "tracer.get_last_trace", "text": " ", "tags": "", "loc": "tracer.html#get_last_trace"}, + {"title": "tracer.freeze", "text": " ", "tags": "", "loc": "tracer.html#freeze"}, + {"title": "tracer.get_trace_count", "text": " ", "tags": "", "loc": "tracer.html#get_trace_count"}, + {"title": "tracer.get_trace_N", "text": " ", "tags": "", "loc": "tracer.html#get_trace_N"}, + {"title": "tss", "text": "

Kieron Morris ", "tags": "", "loc": "tss.html"}, + {"title": "tss.TTaskStateSegment", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html"}, + {"title": "tss.TTaskStateSegment.link", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#link"}, + {"title": "tss.TTaskStateSegment.link_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#link_h"}, + {"title": "tss.TTaskStateSegment.esp0", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#esp0"}, + {"title": "tss.TTaskStateSegment.ss0", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ss0"}, + {"title": "tss.TTaskStateSegment.ss0_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ss0_h"}, + {"title": "tss.TTaskStateSegment.esp1", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#esp1"}, + {"title": "tss.TTaskStateSegment.ss1", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ss1"}, + {"title": "tss.TTaskStateSegment.ss1_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ss1_h"}, + {"title": "tss.TTaskStateSegment.esp2", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#esp2"}, + {"title": "tss.TTaskStateSegment.ss2", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ss2"}, + {"title": "tss.TTaskStateSegment.ss2_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ss2_h"}, + {"title": "tss.TTaskStateSegment.cr3", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#cr3"}, + {"title": "tss.TTaskStateSegment.eip", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#eip"}, + {"title": "tss.TTaskStateSegment.eflags", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#eflags"}, + {"title": "tss.TTaskStateSegment.eax", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#eax"}, + {"title": "tss.TTaskStateSegment.ecx", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ecx"}, + {"title": "tss.TTaskStateSegment.edx", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#edx"}, + {"title": "tss.TTaskStateSegment.ebx", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ebx"}, + {"title": "tss.TTaskStateSegment.esp", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#esp"}, + {"title": "tss.TTaskStateSegment.ebp", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ebp"}, + {"title": "tss.TTaskStateSegment.esi", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#esi"}, + {"title": "tss.TTaskStateSegment.edi", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#edi"}, + {"title": "tss.TTaskStateSegment.es", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#es"}, + {"title": "tss.TTaskStateSegment.es_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#es_h"}, + {"title": "tss.TTaskStateSegment.cs", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#cs"}, + {"title": "tss.TTaskStateSegment.cs_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#cs_h"}, + {"title": "tss.TTaskStateSegment.ss", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ss"}, + {"title": "tss.TTaskStateSegment.ss_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ss_h"}, + {"title": "tss.TTaskStateSegment.ds", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ds"}, + {"title": "tss.TTaskStateSegment.ds_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ds_h"}, + {"title": "tss.TTaskStateSegment.fs", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#fs"}, + {"title": "tss.TTaskStateSegment.fs_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#fs_h"}, + {"title": "tss.TTaskStateSegment.gs", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#gs"}, + {"title": "tss.TTaskStateSegment.gs_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#gs_h"}, + {"title": "tss.TTaskStateSegment.ldt", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ldt"}, + {"title": "tss.TTaskStateSegment.ldt_h", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#ldt_h"}, + {"title": "tss.TTaskStateSegment.trap", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#trap"}, + {"title": "tss.TTaskStateSegment.iomap", "text": " ", "tags": "", "loc": "tss.TTaskStateSegment.html#iomap"}, + {"title": "tss.init", "text": " ", "tags": "", "loc": "tss.html#init"}, + {"title": "tss.PTaskStateSegment", "text": " ", "tags": "", "loc": "tss.html#PTaskStateSegment"}, + {"title": "tss.TaskStateSegment", "text": " ", "tags": "", "loc": "tss.html#TaskStateSegment"}, + {"title": "tss.ptrTaskStateSegment", "text": " ", "tags": "", "loc": "tss.html#ptrTaskStateSegment"}, + {"title": "types", "text": "

Kieron Morris ", "tags": "", "loc": "types.html"}, + {"title": "udp", "text": "

Kieron Morris ", "tags": "", "loc": "udp.html"}, + {"title": "UHCI", "text": "

Kieron Morris ", "tags": "", "loc": "UHCI.html"}, + {"title": "UHCI.load", "text": " ", "tags": "", "loc": "UHCI.html#load"}, + {"title": "UIE", "text": "

Kieron Morris ", "tags": "", "loc": "UIE.html"}, + {"title": "UIE.register", "text": " ", "tags": "", "loc": "UIE.html#register"}, + {"title": "USB", "text": "

Kieron Morris ", "tags": "", "loc": "USB.html"}, + {"title": "USB.init", "text": " ", "tags": "", "loc": "USB.html#init"}, + {"title": "util", "text": "

Kieron Morris ", "tags": "", "loc": "util.html"}, + {"title": "util.INTE", "text": " ", "tags": "", "loc": "util.html#INTE"}, + {"title": "util.CLI", "text": " ", "tags": "", "loc": "util.html#CLI"}, + {"title": "util.STI", "text": " ", "tags": "", "loc": "util.html#STI"}, + {"title": "util.GPF", "text": " ", "tags": "", "loc": "util.html#GPF"}, + {"title": "util.hi", "text": " ", "tags": "", "loc": "util.html#hi"}, + {"title": "util.lo", "text": " ", "tags": "", "loc": "util.html#lo"}, + {"title": "util.switchendian", "text": " ", "tags": "", "loc": "util.html#switchendian"}, + {"title": "util.switchendian32", "text": " ", "tags": "", "loc": "util.html#switchendian32"}, + {"title": "util.getWord", "text": " ", "tags": "", "loc": "util.html#getWord"}, + {"title": "util.getByte", "text": " ", "tags": "", "loc": "util.html#getByte"}, + {"title": "util.outb", "text": " ", "tags": "", "loc": "util.html#outb"}, + {"title": "util.outw", "text": " ", "tags": "", "loc": "util.html#outw"}, + {"title": "util.outl", "text": " ", "tags": "", "loc": "util.html#outl"}, + {"title": "util.inb", "text": " ", "tags": "", "loc": "util.html#inb"}, + {"title": "util.inw", "text": " ", "tags": "", "loc": "util.html#inw"}, + {"title": "util.inl", "text": " ", "tags": "", "loc": "util.html#inl"}, + {"title": "util.io_wait", "text": " ", "tags": "", "loc": "util.html#io_wait"}, + {"title": "util.memset", "text": " ", "tags": "", "loc": "util.html#memset"}, + {"title": "util.memcpy", "text": " ", "tags": "", "loc": "util.html#memcpy"}, + {"title": "util.printmemory", "text": " ", "tags": "", "loc": "util.html#printmemory"}, + {"title": "util.printmemoryWND", "text": " ", "tags": "", "loc": "util.html#printmemoryWND"}, + {"title": "util.halt_and_catch_fire", "text": " ", "tags": "", "loc": "util.html#halt_and_catch_fire"}, + {"title": "util.halt_and_dont_catch_fire", "text": " ", "tags": "", "loc": "util.html#halt_and_dont_catch_fire"}, + {"title": "util.BSOD", "text": " ", "tags": "", "loc": "util.html#BSOD"}, + {"title": "util.psleep", "text": " ", "tags": "", "loc": "util.html#psleep"}, + {"title": "util.sleep", "text": " ", "tags": "", "loc": "util.html#sleep"}, + {"title": "util.get16bitcounter", "text": " ", "tags": "", "loc": "util.html#get16bitcounter"}, + {"title": "util.get32bitcounter", "text": " ", "tags": "", "loc": "util.html#get32bitcounter"}, + {"title": "util.get64bitcounter", "text": " ", "tags": "", "loc": "util.html#get64bitcounter"}, + {"title": "util.getTSC", "text": " ", "tags": "", "loc": "util.html#getTSC"}, + {"title": "util.div6432", "text": " ", "tags": "", "loc": "util.html#div6432"}, + {"title": "util.BCDToUint8", "text": " ", "tags": "", "loc": "util.html#BCDToUint8"}, + {"title": "util.HexCharToDecimal", "text": " ", "tags": "", "loc": "util.html#HexCharToDecimal"}, + {"title": "util.resetSystem", "text": " ", "tags": "", "loc": "util.html#resetSystem"}, + {"title": "util.getESP", "text": " ", "tags": "", "loc": "util.html#getESP"}, + {"title": "util.MsSinceSystemBoot", "text": " ", "tags": "", "loc": "util.html#MsSinceSystemBoot"}, + {"title": "util.endptr", "text": " ", "tags": "", "loc": "util.html#endptr"}, + {"title": "util.stack", "text": " ", "tags": "", "loc": "util.html#stack"}, + {"title": "vmemorymanager", "text": "

Kieron Morris ", "tags": "", "loc": "vmemorymanager.html"}, + {"title": "vmemorymanager.init", "text": " ", "tags": "", "loc": "vmemorymanager.html#init"}, + {"title": "vmemorymanager.new_page", "text": " ", "tags": "", "loc": "vmemorymanager.html#new_page"}, + {"title": "vmemorymanager.map_page", "text": " ", "tags": "", "loc": "vmemorymanager.html#map_page"}, + {"title": "vmemorymanager.map_page_ex", "text": " ", "tags": "", "loc": "vmemorymanager.html#map_page_ex"}, + {"title": "vmemorymanager.new_page_at_address", "text": " ", "tags": "", "loc": "vmemorymanager.html#new_page_at_address"}, + {"title": "vmemorymanager.free_page", "text": " ", "tags": "", "loc": "vmemorymanager.html#free_page"}, + {"title": "vmemorymanager.free_page_at_address", "text": " ", "tags": "", "loc": "vmemorymanager.html#free_page_at_address"}, + {"title": "vmemorymanager.new_page_directory", "text": " ", "tags": "", "loc": "vmemorymanager.html#new_page_directory"}, + {"title": "vmemorymanager.new_kernel_mapped_page_directory", "text": " ", "tags": "", "loc": "vmemorymanager.html#new_kernel_mapped_page_directory"}, + {"title": "vmemorymanager.vtop", "text": " ", "tags": "", "loc": "vmemorymanager.html#vtop"}, + {"title": "vmemorymanager.PPageDirEntry", "text": " ", "tags": "", "loc": "vmemorymanager.html#PPageDirEntry"}, + {"title": "vmemorymanager.TPageDirEntry", "text": " ", "tags": "", "loc": "vmemorymanager.html#TPageDirEntry"}, + {"title": "vmemorymanager.TPageDirectory", "text": " ", "tags": "", "loc": "vmemorymanager.html#TPageDirectory"}, + {"title": "vmemorymanager.PPageDirectory", "text": " ", "tags": "", "loc": "vmemorymanager.html#PPageDirectory"}, + {"title": "vmemorymanager.KERNEL_PAGE_DIRECTORY", "text": " ", "tags": "", "loc": "vmemorymanager.html#KERNEL_PAGE_DIRECTORY"}, + {"title": "vmemorymanager.PageDirectory", "text": " ", "tags": "", "loc": "vmemorymanager.html#PageDirectory"}, + {"title": "vmlog", "text": "

Kieron Morris ", "tags": "", "loc": "vmlog.html"}, + {"title": "vmlog.init", "text": " ", "tags": "", "loc": "vmlog.html#init"}, + {"title": "vmlog.getVMLogHWND", "text": " ", "tags": "", "loc": "vmlog.html#getVMLogHWND"}, + {"title": "vmstate", "text": "

Kieron Morris ", "tags": "", "loc": "vmstate.html"}, + {"title": "vmstate.init", "text": " ", "tags": "", "loc": "vmstate.html#init"}, + {"title": "XHCI", "text": "

Kieron Morris ", "tags": "", "loc": "XHCI.html"}, + {"title": "XHCI.load", "text": " ", "tags": "", "loc": "XHCI.html#load"} +]}; diff --git a/doc/tracer.html b/doc/tracer.html index a19dbefb..0fbcf55c 100644 --- a/doc/tracer.html +++ b/doc/tracer.html @@ -1,119 +1,119 @@ - - - -Asuro: tracer - - - - - - - - -
-

Unit tracer

-
-
Uses
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Tracer - Trace stack for debugging method calls. - -

-

Overview

-

Functions and Procedures

- - - - - - - - - - - - - - - - - - - - - - -
procedure init;
procedure push_trace(t_name : pchar);
procedure pop_trace;
function get_last_trace : pchar;
procedure freeze;
function get_trace_count : uint32;
function get_trace_N(idx : uint32) : pchar;
-

Description

-

Functions and Procedures

- - - - - -
procedure init;
- - - - - -
procedure push_trace(t_name : pchar);
- - - - - -
procedure pop_trace;
- - - - - -
function get_last_trace : pchar;
- - - - - -
procedure freeze;
- - - - - -
function get_trace_count : uint32;
- - - - - -
function get_trace_N(idx : uint32) : pchar;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: tracer + + + + + + + + +
+

Unit tracer

+
+
Uses
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Tracer - Trace stack for debugging method calls. + +

+

Overview

+

Functions and Procedures

+ + + + + + + + + + + + + + + + + + + + + + +
procedure init;
procedure push_trace(t_name : pchar);
procedure pop_trace;
function get_last_trace : pchar;
procedure freeze;
function get_trace_count : uint32;
function get_trace_N(idx : uint32) : pchar;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init;
+ + + + + +
procedure push_trace(t_name : pchar);
+ + + + + +
procedure pop_trace;
+ + + + + +
function get_last_trace : pchar;
+ + + + + +
procedure freeze;
+ + + + + +
function get_trace_count : uint32;
+ + + + + +
function get_trace_N(idx : uint32) : pchar;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/tss.TTaskStateSegment.html b/doc/tss.TTaskStateSegment.html index 43a50c8f..938c5536 100644 --- a/doc/tss.TTaskStateSegment.html +++ b/doc/tss.TTaskStateSegment.html @@ -1,427 +1,427 @@ - - - -Asuro: tss: Packed Record TTaskStateSegment - - - - - - - - -
-

Packed Record TTaskStateSegment

-
-
Hierarchy
Methods
Properties
-

Unit

- -

Declaration

-

-type TTaskStateSegment = packed record

-

Description

Overview

-

Fields

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
link: uint16;
link_h: uint16;
esp0: uint32;
ss0: uint16;
ss0_h: uint16;
esp1: uint32;
ss1: uint16;
ss1_h: uint16;
esp2: uint32;
ss2: uint16;
ss2_h: uint16;
cr3: uint32;
eip: uint32;
eflags: uint32;
eax: uint32;
ecx: uint32;
edx: uint32;
ebx: uint32;
esp: uint32;
ebp: uint32;
esi: uint32;
edi: uint32;
es: uint16;
es_h: uint16;
cs: uint16;
cs_h: uint16;
ss: uint16;
ss_h: uint16;
ds: uint16;
ds_h: uint16;
fs: uint16;
fs_h: uint16;
gs: uint16;
gs_h: uint16;
ldt: uint16;
ldt_h: uint16;
trap: uint16;
iomap: uint16;
-

Description

-

Fields

- - - - - -
link: uint16;
- - - - - -
link_h: uint16;
- - - - - -
esp0: uint32;
- - - - - -
ss0: uint16;
- - - - - -
ss0_h: uint16;
- - - - - -
esp1: uint32;
- - - - - -
ss1: uint16;
- - - - - -
ss1_h: uint16;
- - - - - -
esp2: uint32;
- - - - - -
ss2: uint16;
- - - - - -
ss2_h: uint16;
- - - - - -
cr3: uint32;
- - - - - -
eip: uint32;
- - - - - -
eflags: uint32;
- - - - - -
eax: uint32;
- - - - - -
ecx: uint32;
- - - - - -
edx: uint32;
- - - - - -
ebx: uint32;
- - - - - -
esp: uint32;
- - - - - -
ebp: uint32;
- - - - - -
esi: uint32;
- - - - - -
edi: uint32;
- - - - - -
es: uint16;
- - - - - -
es_h: uint16;
- - - - - -
cs: uint16;
- - - - - -
cs_h: uint16;
- - - - - -
ss: uint16;
- - - - - -
ss_h: uint16;
- - - - - -
ds: uint16;
- - - - - -
ds_h: uint16;
- - - - - -
fs: uint16;
- - - - - -
fs_h: uint16;
- - - - - -
gs: uint16;
- - - - - -
gs_h: uint16;
- - - - - -
ldt: uint16;
- - - - - -
ldt_h: uint16;
- - - - - -
trap: uint16;
- - - - - -
iomap: uint16;
-
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: tss: Packed Record TTaskStateSegment + + + + + + + + +
+

Packed Record TTaskStateSegment

+
+
Hierarchy
Methods
Properties
+

Unit

+ +

Declaration

+

+type TTaskStateSegment = packed record

+

Description

Overview

+

Fields

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
link: uint16;
link_h: uint16;
esp0: uint32;
ss0: uint16;
ss0_h: uint16;
esp1: uint32;
ss1: uint16;
ss1_h: uint16;
esp2: uint32;
ss2: uint16;
ss2_h: uint16;
cr3: uint32;
eip: uint32;
eflags: uint32;
eax: uint32;
ecx: uint32;
edx: uint32;
ebx: uint32;
esp: uint32;
ebp: uint32;
esi: uint32;
edi: uint32;
es: uint16;
es_h: uint16;
cs: uint16;
cs_h: uint16;
ss: uint16;
ss_h: uint16;
ds: uint16;
ds_h: uint16;
fs: uint16;
fs_h: uint16;
gs: uint16;
gs_h: uint16;
ldt: uint16;
ldt_h: uint16;
trap: uint16;
iomap: uint16;
+

Description

+

Fields

+ + + + + +
link: uint16;
+ + + + + +
link_h: uint16;
+ + + + + +
esp0: uint32;
+ + + + + +
ss0: uint16;
+ + + + + +
ss0_h: uint16;
+ + + + + +
esp1: uint32;
+ + + + + +
ss1: uint16;
+ + + + + +
ss1_h: uint16;
+ + + + + +
esp2: uint32;
+ + + + + +
ss2: uint16;
+ + + + + +
ss2_h: uint16;
+ + + + + +
cr3: uint32;
+ + + + + +
eip: uint32;
+ + + + + +
eflags: uint32;
+ + + + + +
eax: uint32;
+ + + + + +
ecx: uint32;
+ + + + + +
edx: uint32;
+ + + + + +
ebx: uint32;
+ + + + + +
esp: uint32;
+ + + + + +
ebp: uint32;
+ + + + + +
esi: uint32;
+ + + + + +
edi: uint32;
+ + + + + +
es: uint16;
+ + + + + +
es_h: uint16;
+ + + + + +
cs: uint16;
+ + + + + +
cs_h: uint16;
+ + + + + +
ss: uint16;
+ + + + + +
ss_h: uint16;
+ + + + + +
ds: uint16;
+ + + + + +
ds_h: uint16;
+ + + + + +
fs: uint16;
+ + + + + +
fs_h: uint16;
+ + + + + +
gs: uint16;
+ + + + + +
gs_h: uint16;
+ + + + + +
ldt: uint16;
+ + + + + +
ldt_h: uint16;
+ + + + + +
trap: uint16;
+ + + + + +
iomap: uint16;
+
Generated by PasDoc 0.15.0. + +
diff --git a/doc/tss.html b/doc/tss.html index 6bc7de36..179b1efe 100644 --- a/doc/tss.html +++ b/doc/tss.html @@ -1,109 +1,109 @@ - - - -Asuro: tss - - - - - - - - -
-

Unit tss

- -

Description

-

-TSS - Task State Segment (stub). - -

-

Uses

-

Overview

-

Classes, Interfaces, Objects and Records

- - - - - - - - - -
NameDescription
Packed Record TTaskStateSegment 
-

Functions and Procedures

- - - - -
procedure init;
-

Types

- - - - -
PTaskStateSegment = ˆTTaskStateSegment;
-

Variables

- - - - - - - -
TaskStateSegment: TTaskStateSegment;
ptrTaskStateSegment: PTaskStateSegment = @TaskStateSegment;
-

Description

-

Functions and Procedures

- - - - - -
procedure init;
-

Types

- - - - - -
PTaskStateSegment = ˆTTaskStateSegment;
-

Variables

- - - - - -
TaskStateSegment: TTaskStateSegment;
- - - - - -
ptrTaskStateSegment: PTaskStateSegment = @TaskStateSegment;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: tss + + + + + + + + +
+

Unit tss

+ +

Description

+

+TSS - Task State Segment (stub). + +

+

Uses

+

Overview

+

Classes, Interfaces, Objects and Records

+ + + + + + + + + +
NameDescription
Packed Record TTaskStateSegment 
+

Functions and Procedures

+ + + + +
procedure init;
+

Types

+ + + + +
PTaskStateSegment = ˆTTaskStateSegment;
+

Variables

+ + + + + + + +
TaskStateSegment: TTaskStateSegment;
ptrTaskStateSegment: PTaskStateSegment = @TaskStateSegment;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init;
+

Types

+ + + + + +
PTaskStateSegment = ˆTTaskStateSegment;
+

Variables

+ + + + + +
TaskStateSegment: TTaskStateSegment;
+ + + + + +
ptrTaskStateSegment: PTaskStateSegment = @TaskStateSegment;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/types.html b/doc/types.html index 1d138351..d0cc33ea 100644 --- a/doc/types.html +++ b/doc/types.html @@ -1,43 +1,43 @@ - - - -Asuro: types - - - - - - - - -
-

Unit types

-
-
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Constants
Variables
-

Description

-

-Include->Types - Dummy Unit For VM Compatability. - -

-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: types + + + + + + + + +
+

Unit types

+
+
Uses
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Constants
Variables
+

Description

+

+Include->Types - Dummy Unit For VM Compatability. + +

+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/udp.html b/doc/udp.html index 33ee7b19..42ed77cc 100644 --- a/doc/udp.html +++ b/doc/udp.html @@ -1,44 +1,44 @@ - - - -Asuro: udp - - - - - - - - -
-

Unit udp

-
-
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Constants
Variables
-

Description

-

-Driver->Net->L4->UDP - User Datagram Protocol Driver. - -

-

Uses

-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: udp + + + + + + + + +
+

Unit udp

+
+
Classes, Interfaces, Objects and Records
Functions and Procedures
Types
Constants
Variables
+

Description

+

+Driver->Net->L4->UDP - User Datagram Protocol Driver. + +

+

Uses

+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/util.html b/doc/util.html index 104852ee..ac9458a7 100644 --- a/doc/util.html +++ b/doc/util.html @@ -1,434 +1,434 @@ - - - -Asuro: util - - - - - - - - -
-

Unit util

-
-
Classes, Interfaces, Objects and Records
Types
Constants
-

Description

-

-Include->Util - Data Manipulation Utlities. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function INTE : boolean;
procedure CLI();
procedure STI();
procedure GPF();
function hi(b : uint8) : uint8;
function lo(b : uint8) : uint8;
function switchendian(b : uint8) : uint8;
function switchendian32(b : uint32) : uint32;
function getWord(i : uint32; hi : boolean) : uint16;
function getByte(i : uint32; index : uint8) : uint8;
procedure outb(port : uint16; val : uint8);
procedure outw(port : uint16; val : uint16);
procedure outl(port : uint16; val : uint32);
function inb(port : uint16) : uint8;
function inw(port : uint16) : uint16;
function inl(port : uint16) : uint32;
procedure io_wait;
procedure memset(location : uint32; value : uint8; size : uint32);
procedure memcpy(source : uint32; dest : uint32; size : uint32);
procedure printmemory(source : uint32; length : uint32; col : uint32; delim : PChar; offset_row : boolean);
procedure printmemoryWND(source : uint32; length : uint32; col : uint32; delim : PChar; offset_row : boolean; WND : HWND);
procedure halt_and_catch_fire();
procedure halt_and_dont_catch_fire();
procedure BSOD(fault : pchar; info : pchar);
procedure psleep(t : uint16);
procedure sleep(seconds : uint32);
function get16bitcounter : uint16;
function get32bitcounter : uint32;
function get64bitcounter : uint64;
function getTSC : uint64;
function div6432(dividend : uint64; divisor : uint32) : uint64;
function BCDToUint8(bcd : uint8) : uint8;
function HexCharToDecimal(hex : char) : uint8;
procedure resetSystem();
function getESP : uint32;
function MsSinceSystemBoot : uint64;
-

Variables

- - - - - - - -
endptr: uint32; external name '__end';
stack: uint32; external name 'KERNEL_STACK';
-

Description

-

Functions and Procedures

- - - - - -
function INTE : boolean;
- - - - - -
procedure CLI();
- - - - - -
procedure STI();
- - - - - -
procedure GPF();
- - - - - -
function hi(b : uint8) : uint8;
- - - - - -
function lo(b : uint8) : uint8;
- - - - - -
function switchendian(b : uint8) : uint8;
- - - - - -
function switchendian32(b : uint32) : uint32;
- - - - - -
function getWord(i : uint32; hi : boolean) : uint16;
- - - - - -
function getByte(i : uint32; index : uint8) : uint8;
- - - - - -
procedure outb(port : uint16; val : uint8);
- - - - - -
procedure outw(port : uint16; val : uint16);
- - - - - -
procedure outl(port : uint16; val : uint32);
- - - - - -
function inb(port : uint16) : uint8;
- - - - - -
function inw(port : uint16) : uint16;
- - - - - -
function inl(port : uint16) : uint32;
- - - - - -
procedure io_wait;
- - - - - -
procedure memset(location : uint32; value : uint8; size : uint32);
- - - - - -
procedure memcpy(source : uint32; dest : uint32; size : uint32);
- - - - - -
procedure printmemory(source : uint32; length : uint32; col : uint32; delim : PChar; offset_row : boolean);
- - - - - -
procedure printmemoryWND(source : uint32; length : uint32; col : uint32; delim : PChar; offset_row : boolean; WND : HWND);
- - - - - -
procedure halt_and_catch_fire();
- - - - - -
procedure halt_and_dont_catch_fire();
- - - - - -
procedure BSOD(fault : pchar; info : pchar);
- - - - - -
procedure psleep(t : uint16);
- - - - - -
procedure sleep(seconds : uint32);
- - - - - -
function get16bitcounter : uint16;
- - - - - -
function get32bitcounter : uint32;
- - - - - -
function get64bitcounter : uint64;
- - - - - -
function getTSC : uint64;
- - - - - -
function div6432(dividend : uint64; divisor : uint32) : uint64;
- - - - - -
function BCDToUint8(bcd : uint8) : uint8;
- - - - - -
function HexCharToDecimal(hex : char) : uint8;
- - - - - -
procedure resetSystem();
- - - - - -
function getESP : uint32;
- - - - - -
function MsSinceSystemBoot : uint64;
-

Variables

- - - - - -
endptr: uint32; external name '__end';
- - - - - -
stack: uint32; external name 'KERNEL_STACK';
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: util + + + + + + + + +
+

Unit util

+
+
Classes, Interfaces, Objects and Records
Types
Constants
+

Description

+

+Include->Util - Data Manipulation Utlities. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
function INTE : boolean;
procedure CLI();
procedure STI();
procedure GPF();
function hi(b : uint8) : uint8;
function lo(b : uint8) : uint8;
function switchendian(b : uint8) : uint8;
function switchendian32(b : uint32) : uint32;
function getWord(i : uint32; hi : boolean) : uint16;
function getByte(i : uint32; index : uint8) : uint8;
procedure outb(port : uint16; val : uint8);
procedure outw(port : uint16; val : uint16);
procedure outl(port : uint16; val : uint32);
function inb(port : uint16) : uint8;
function inw(port : uint16) : uint16;
function inl(port : uint16) : uint32;
procedure io_wait;
procedure memset(location : uint32; value : uint8; size : uint32);
procedure memcpy(source : uint32; dest : uint32; size : uint32);
procedure printmemory(source : uint32; length : uint32; col : uint32; delim : PChar; offset_row : boolean);
procedure printmemoryWND(source : uint32; length : uint32; col : uint32; delim : PChar; offset_row : boolean; WND : HWND);
procedure halt_and_catch_fire();
procedure halt_and_dont_catch_fire();
procedure BSOD(fault : pchar; info : pchar);
procedure psleep(t : uint16);
procedure sleep(seconds : uint32);
function get16bitcounter : uint16;
function get32bitcounter : uint32;
function get64bitcounter : uint64;
function getTSC : uint64;
function div6432(dividend : uint64; divisor : uint32) : uint64;
function BCDToUint8(bcd : uint8) : uint8;
function HexCharToDecimal(hex : char) : uint8;
procedure resetSystem();
function getESP : uint32;
function MsSinceSystemBoot : uint64;
+

Variables

+ + + + + + + +
endptr: uint32; external name '__end';
stack: uint32; external name 'KERNEL_STACK';
+

Description

+

Functions and Procedures

+ + + + + +
function INTE : boolean;
+ + + + + +
procedure CLI();
+ + + + + +
procedure STI();
+ + + + + +
procedure GPF();
+ + + + + +
function hi(b : uint8) : uint8;
+ + + + + +
function lo(b : uint8) : uint8;
+ + + + + +
function switchendian(b : uint8) : uint8;
+ + + + + +
function switchendian32(b : uint32) : uint32;
+ + + + + +
function getWord(i : uint32; hi : boolean) : uint16;
+ + + + + +
function getByte(i : uint32; index : uint8) : uint8;
+ + + + + +
procedure outb(port : uint16; val : uint8);
+ + + + + +
procedure outw(port : uint16; val : uint16);
+ + + + + +
procedure outl(port : uint16; val : uint32);
+ + + + + +
function inb(port : uint16) : uint8;
+ + + + + +
function inw(port : uint16) : uint16;
+ + + + + +
function inl(port : uint16) : uint32;
+ + + + + +
procedure io_wait;
+ + + + + +
procedure memset(location : uint32; value : uint8; size : uint32);
+ + + + + +
procedure memcpy(source : uint32; dest : uint32; size : uint32);
+ + + + + +
procedure printmemory(source : uint32; length : uint32; col : uint32; delim : PChar; offset_row : boolean);
+ + + + + +
procedure printmemoryWND(source : uint32; length : uint32; col : uint32; delim : PChar; offset_row : boolean; WND : HWND);
+ + + + + +
procedure halt_and_catch_fire();
+ + + + + +
procedure halt_and_dont_catch_fire();
+ + + + + +
procedure BSOD(fault : pchar; info : pchar);
+ + + + + +
procedure psleep(t : uint16);
+ + + + + +
procedure sleep(seconds : uint32);
+ + + + + +
function get16bitcounter : uint16;
+ + + + + +
function get32bitcounter : uint32;
+ + + + + +
function get64bitcounter : uint64;
+ + + + + +
function getTSC : uint64;
+ + + + + +
function div6432(dividend : uint64; divisor : uint32) : uint64;
+ + + + + +
function BCDToUint8(bcd : uint8) : uint8;
+ + + + + +
function HexCharToDecimal(hex : char) : uint8;
+ + + + + +
procedure resetSystem();
+ + + + + +
function getESP : uint32;
+ + + + + +
function MsSinceSystemBoot : uint64;
+

Variables

+ + + + + +
endptr: uint32; external name '__end';
+ + + + + +
stack: uint32; external name 'KERNEL_STACK';
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/vmemorymanager.html b/doc/vmemorymanager.html index 42929a37..c5155256 100644 --- a/doc/vmemorymanager.html +++ b/doc/vmemorymanager.html @@ -1,80 +1,80 @@ - - - -Asuro: vmemorymanager - - - - - - - - - + + +
-

Unit vmemorymanager

-
-
Classes, Interfaces, Objects and Records
Constants
-

Description

-

-VMemoryManager - Virtual Memory Management. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
procedure init;
function new_page(page_number : uint16) : boolean;
function map_page(page_number : uint16; block : uint16) : boolean;
function map_page_ex(page_number : uint16; block : uint16; PD : PPageDirectory) : boolean;
function new_page_at_address(address : uint32) : boolean;
procedure free_page(page_number : uint16);
procedure free_page_at_address(address : uint32);
function new_page_directory : uint32;
function new_kernel_mapped_page_directory : uint32;
function vtop(address : uint32) : uint32;
-

Types

- - - - - + + + +Asuro: vmemorymanager + + + + + + + + +
PPageDirEntry = ˆTPageDirEntry;
+

Unit vmemorymanager

+
+
Classes, Interfaces, Objects and Records
Constants
+

Description

+

+VMemoryManager - Virtual Memory Management. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
procedure init;
function new_page(page_number : uint16) : boolean;
function map_page(page_number : uint16; block : uint16) : boolean;
function map_page_ex(page_number : uint16; block : uint16; PD : PPageDirectory) : boolean;
function new_page_at_address(address : uint32) : boolean;
procedure free_page(page_number : uint16);
procedure free_page_at_address(address : uint32);
function new_page_directory : uint32;
function new_kernel_mapped_page_directory : uint32;
function vtop(address : uint32) : uint32;
+

Types

+ + + + + - - - - - - - -
PPageDirEntry = ˆTPageDirEntry;
TPageDirEntry = bitpacked record Present, Writable, @@ -87,106 +87,106 @@ $(document).ready(function() { GlobalPage: Boolean; Available: UBit3; Address: UBit20; - end;
TPageDirectory = Array[0..1023] of TPageDirEntry;
PPageDirectory = ˆTPageDirectory;
-

Variables

- - - - - - - -
KERNEL_PAGE_DIRECTORY: PPageDirectory;
PageDirectory: PPageDirectory;
-

Description

-

Functions and Procedures

- - - - - -
procedure init;
- - - - - -
function new_page(page_number : uint16) : boolean;
- - - - - -
function map_page(page_number : uint16; block : uint16) : boolean;
- - - - - -
function map_page_ex(page_number : uint16; block : uint16; PD : PPageDirectory) : boolean;
- - - - - -
function new_page_at_address(address : uint32) : boolean;
- - - - - -
procedure free_page(page_number : uint16);
- - - - - -
procedure free_page_at_address(address : uint32);
- - - - - -
function new_page_directory : uint32;
- - - - - -
function new_kernel_mapped_page_directory : uint32;
- - - - - -
function vtop(address : uint32) : uint32;
-

Types

- - - - - -
PPageDirEntry = ˆTPageDirEntry;
- - + end; + + + + + + + +
TPageDirectory = Array[0..1023] of TPageDirEntry;
PPageDirectory = ˆTPageDirectory;
+

Variables

+ + + + + + + +
KERNEL_PAGE_DIRECTORY: PPageDirectory;
PageDirectory: PPageDirectory;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init;
+ + + + + +
function new_page(page_number : uint16) : boolean;
+ + + + + +
function map_page(page_number : uint16; block : uint16) : boolean;
+ + + + + +
function map_page_ex(page_number : uint16; block : uint16; PD : PPageDirectory) : boolean;
+ + + + + +
function new_page_at_address(address : uint32) : boolean;
+ + + + + +
procedure free_page(page_number : uint16);
+ + + + + +
procedure free_page_at_address(address : uint32);
+ + + + + +
function new_page_directory : uint32;
+ + + + + +
function new_kernel_mapped_page_directory : uint32;
+ + + + + +
function vtop(address : uint32) : uint32;
+

Types

+ + + + + +
PPageDirEntry = ˆTPageDirEntry;
+ + - - -
TPageDirEntry = bitpacked record Present, Writable, @@ -199,44 +199,44 @@ $(document).ready(function() { GlobalPage: Boolean; Available: UBit3; Address: UBit20; - end;
- - - - - -
TPageDirectory = Array[0..1023] of TPageDirEntry;
- - - - - -
PPageDirectory = ˆTPageDirectory;
-

Variables

- - - - - -
KERNEL_PAGE_DIRECTORY: PPageDirectory;
- - - - - -
PageDirectory: PPageDirectory;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ end;
+ + + + + +
TPageDirectory = Array[0..1023] of TPageDirEntry;
+ + + + + +
PPageDirectory = ˆTPageDirectory;
+

Variables

+ + + + + +
KERNEL_PAGE_DIRECTORY: PPageDirectory;
+ + + + + +
PageDirectory: PPageDirectory;
+

Author

+ +
Generated by PasDoc 0.15.0. + + diff --git a/doc/vmlog.html b/doc/vmlog.html index 3ad980cf..cd8803c7 100644 --- a/doc/vmlog.html +++ b/doc/vmlog.html @@ -1,70 +1,70 @@ - - - -Asuro: vmlog - - - - - - - - -
-

Unit vmlog

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Prog->VMLog - Virtual Machine Event Log. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - - - - -
procedure init();
function getVMLogHWND : HWND;
-

Description

-

Functions and Procedures

- - - - - -
procedure init();
- - - - - -
function getVMLogHWND : HWND;
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: vmlog + + + + + + + + +
+

Unit vmlog

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Prog->VMLog - Virtual Machine Event Log. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + + + + +
procedure init();
function getVMLogHWND : HWND;
+

Description

+

Functions and Procedures

+ + + + + +
procedure init();
+ + + + + +
function getVMLogHWND : HWND;
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/doc/vmstate.html b/doc/vmstate.html index 4a9715ad..3b311738 100644 --- a/doc/vmstate.html +++ b/doc/vmstate.html @@ -1,60 +1,60 @@ - - - -Asuro: vmstate - - - - - - - - -
-

Unit vmstate

-
-
Classes, Interfaces, Objects and Records
Types
Constants
Variables
-

Description

-

-Prog->VMState - Live MINJ Virtual Machine State Information. - -

-

Uses

-

Overview

-

Functions and Procedures

- - - - -
procedure init();
-

Description

-

Functions and Procedures

- - - - - -
procedure init();
-

Author

- -
Generated by PasDoc 0.15.0. - -
+ + + +Asuro: vmstate + + + + + + + + +
+

Unit vmstate

+
+
Classes, Interfaces, Objects and Records
Types
Constants
Variables
+

Description

+

+Prog->VMState - Live MINJ Virtual Machine State Information. + +

+

Uses

+

Overview

+

Functions and Procedures

+ + + + +
procedure init();
+

Description

+

Functions and Procedures

+ + + + + +
procedure init();
+

Author

+ +
Generated by PasDoc 0.15.0. + +
diff --git a/linker.script b/linker.script index 27f26c99..875bfc95 100644 --- a/linker.script +++ b/linker.script @@ -1,36 +1,36 @@ -ENTRY(loader) -SECTIONS -{ - . = 0xC0100000; - - .text : AT(ADDR(.text) - 0xC0000000) - { - text = .; _text = .; __text = .; - *(.text) - *(.rodata*) - . = ALIGN(4096); - } - .data : AT(ADDR(.data) - 0xC0000000) - { - data = .; _data = .; __data = .; - *(.data) - kimage_text = .; - LONG(text); - kimage_data = .; - LONG(data); - kimage_bss = .; - LONG(bss); - kimage_end = .; - LONG(end); - . = ALIGN(4096); - } - .bss : AT(ADDR(.bss) - 0xC0000000) - { - bss = .; _bss = .; __bss = .; _sbss = .; - *(COMMON) - *(.bss) - _ebbbss = .; - . = ALIGN(4096); - } - end = .; _end = .; __end = .; -} +ENTRY(loader) +SECTIONS +{ + . = 0xC0100000; + + .text : AT(ADDR(.text) - 0xC0000000) + { + text = .; _text = .; __text = .; + *(.text) + *(.rodata*) + . = ALIGN(4096); + } + .data : AT(ADDR(.data) - 0xC0000000) + { + data = .; _data = .; __data = .; + *(.data) + kimage_text = .; + LONG(text); + kimage_data = .; + LONG(data); + kimage_bss = .; + LONG(bss); + kimage_end = .; + LONG(end); + . = ALIGN(4096); + } + .bss : AT(ADDR(.bss) - 0xC0000000) + { + bss = .; _bss = .; __bss = .; _sbss = .; + *(COMMON) + *(.bss) + _ebbbss = .; + . = ALIGN(4096); + } + end = .; _end = .; __end = .; +} diff --git a/src/backup/consoleBK1.pas b/src/backup/consoleBK1.pas index f8ca1f6a..876ed623 100644 --- a/src/backup/consoleBK1.pas +++ b/src/backup/consoleBK1.pas @@ -1,809 +1,809 @@ -// Copyright 2021 Kieron Morris -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -{ ************************************************ - * Asuro - * Unit: console - * Description: Basic Console Output - ************************************************ - * Author: K Morris - * Contributors: - ************************************************ } - -unit console; - -interface - -uses - util, - bios_data_area, - multiboot, - fonts, - tracer; - -type - TColor = ( Black = $0, - Blue = $1, - Green = $2, - Aqua = $3, - Red = $4, - Purple = $5, - Yellow = $6, - White = $7, - Gray = $8, - lBlue = $9, - lGreen = $A, - lAqua = $B, - lRed = $C, - lPurple = $D, - lYellow = $E, - lWhite = $F ); - -procedure init(); -procedure clear(); -procedure setdefaultattribute(attribute : uint32); - -procedure disable_cursor; - -procedure writechar(character : char); -procedure writecharln(character : char); -procedure writecharex(character : char; attributes: uint32); -procedure writecharlnex(character : char; attributes: uint32); - -procedure Output(identifier : PChar; str : PChar); -procedure Outputln(identifier : PChar; str : PChar); - -procedure writestring(str: PChar); -procedure writestringln(str: PChar); -procedure writestringex(str: PChar; attributes: uint32); -procedure writestringlnex(str: PChar; attributes: uint32); - -procedure writeint(i: Integer); -procedure writeintln(i: Integer); -procedure writeintex(i: Integer; attributes: uint32); -procedure writeintlnex(i: Integer; attributes: uint32); - -procedure writeword(i: DWORD); -procedure writewordln(i: DWORD); -procedure writewordex(i: DWORD; attributes: uint32); -procedure writewordlnex(i: DWORD; attributes: uint32); - -procedure writehexpair(b : uint8); -procedure writehex(i: DWORD); -procedure writehexln(i: DWORD); -procedure writehexex(i : DWORD; attributes: uint32); -procedure writehexlnex(i: DWORD; attributes: uint32); - -procedure writebin8(b : uint8); -procedure writebin8ln(b : uint8); -procedure writebin8ex(b : uint8; attributes: uint32); -procedure writebin8lnex(b : uint8; attributes: uint32); - -procedure writebin16(b : uint16); -procedure writebin16ln(b : uint16); -procedure writebin16ex(b : uint16; attributes: uint32); -procedure writebin16lnex(b : uint16; attributes: uint32); - -procedure writebin32(b : uint32); -procedure writebin32ln(b : uint32); -procedure writebin32ex(b : uint32; attributes: uint32); -procedure writebin32lnex(b : uint32; attributes: uint32); - -procedure backspace; - -function combinecolors(Foreground, Background : uint16) : uint32; - -procedure _increment_x(); -procedure _increment_y(); -procedure _safeincrement_y(); -procedure _safeincrement_x(); -procedure _newline(); - -procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16); -procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16); -procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16); - -function getPixel(x : uint32; y : uint32) : uint16; -procedure drawPixel(x : uint32; y : uint32; color : uint16); -function getPixel32(x : uint32; y : uint32) : uint32; -procedure drawPixel32(x : uint32; y : uint32; pixel : uint32); -function getPixel64(x : uint32; y : uint32) : uint64; -procedure drawPixel64(x : uint32; y : uint32; pixel : uint64); - -implementation - -uses - lmemorymanager; - -const - MAX_WINDOWS = 10; - -type - TConsoleProperties = record - Default_Attribute : uint32; - end; - - TCharacter = bitpacked record - Character : Char; - attributes : uint32; - visible : boolean; - end; - PCharacter = ^TCharacter; - - TVideoMemory = Array[0..1999] of TCharacter; - PVideoMemory = ^TVideoMemory; - - T2DVideoMemory = Array[0..63] of Array[0..159] of TCharacter; - P2DVideoMemory = ^T2DVideoMemory; - - TCoord = record - X : Byte; - Y : Byte; - end; - - TWindow = record - visible : boolean; - buffer : T2DVideoMemory; - row_dirty : Array[0..63] of Boolean; - invalid : boolean; - WND_X : uint32; - WND_Y : uint32; - WND_W : uint32; - WND_H : uint32; - end; - - TWindows = Array[0..MAX_WINDOWS-1] of TWindow; - - TWindowManager = record - Windows : TWindows; - MouseX : uint32; - MouseY : uint32; - end; - -var - Console_Properties : TConsoleProperties; - Console_Matrix : T2DVideoMemory; - Console_Cursor : TCoord; - WindowManager : TWindowManager; - Ready : Boolean = false; - -procedure redrawWindows; -var - x, y, w : uint32; - row_dirty : Arrray[0..63] of Boolean; - -begin - for w:=0 to 63 do begin - row_dirty[w]:= false; - end; - for y:=0 to 63 do begin - for w:=0 to MAX_WINDOWS-1 do begin - if WindowManager.Windows[w].row_dirty[y] OR row_dirty[y] then begin - row_dirty[y]:= true; - if WindowManager.Windows[w].visible then begin - for x:=0 to 159 do begin - if WindowManager.Windows[w].buffer[x][y].visible then begin - if Console_Matrix[x][y].Character <> WindowManager.Windows[w].buffer[x][y].character then begin - Console_Matrix[x][y].Character:= WindowManager.Windows[w].buffer[x][y].character; - Console_Matrix[x][y].attributes:= WindowManager.Windows[w].buffer[x][y].attributes; - end; - end; - end; - end; - end; - end; - end; -end; - -function getPixel(x : uint32; y : uint32) : uint16; -var - dest : puint16; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * 1280) + x; - getPixel:= dest^; -end; - -procedure drawPixel(x : uint32; y : uint32; color : uint16); -var - dest : puint16; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * 1280) + x; - dest^:= color; -end; - -function getPixel32(x : uint32; y : uint32) : uint32; -var - dest : puint16; - dest32 : puint32; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * 1280) + x; - dest32:= puint32(dest); - getPixel32:= dest32[0]; -end; - -procedure drawPixel32(x : uint32; y : uint32; pixel : uint32); -var - dest : puint16; - dest32 : puint32; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * 1280) + x; - dest32:= puint32(dest); - dest32[0]:= pixel; -end; - -function getPixel64(x : uint32; y : uint32) : uint64; -var - dest : puint16; - dest64 : puint64; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * 1280) + x; - dest64:= puint64(dest); - getPixel64:= dest64^; -end; - -procedure drawPixel64(x : uint32; y : uint32; pixel : uint64); -var - dest : puint16; - dest64 : puint64; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * 1280) + x; - dest64:= puint64(dest); - dest64^:= pixel; -end; - -procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16); -var - dest : puint16; - dest32 : puint32; - fgcolor32, bgcolor32 : uint32; - mask : puint32; - i : uint32; - -begin - if not ready then exit; - fgcolor32:= fgcolor OR (fgcolor SHL 16); - mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); - dest:= puint16(multibootinfo^.framebuffer_addr); - //dest:= puint16(windowmanager.getBuffer(0)); - dest:= dest + (y * 1280) + x; - dest32:= puint32(dest); - for i:=0 to 15 do begin - dest32[(i*640)+0]:= (dest32[(i*640)+0] AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); - dest32[(i*640)+1]:= (dest32[(i*640)+1] AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); - dest32[(i*640)+2]:= (dest32[(i*640)+2] AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); - dest32[(i*640)+3]:= (dest32[(i*640)+3] AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); - end; - //windowmanager.redraw; -end; - -procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16); -var - dest : puint16; - dest32 : puint32; - fgcolor32, bgcolor32 : uint32; - mask : puint32; - i : uint32; - -begin - if not ready then exit; - fgcolor32:= fgcolor OR (fgcolor SHL 16); - mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); - dest:= puint16(multibootinfo^.framebuffer_addr); - //dest:= puint16(windowmanager.getBuffer(0)); - dest:= dest + (y*(1280 * 16)) + (x * 8); - dest32:= puint32(dest); - for i:=0 to 15 do begin - dest32[(i*640)+0]:= (dest32[(i*640)+0] AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); - dest32[(i*640)+1]:= (dest32[(i*640)+1] AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); - dest32[(i*640)+2]:= (dest32[(i*640)+2] AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); - dest32[(i*640)+3]:= (dest32[(i*640)+3] AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); - end; - //windowmanager.redraw; -end; - -procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16); -var - dest : puint16; - dest32 : puint32; - fgcolor32, bgcolor32 : uint32; - mask : puint32; - i : uint32; - -begin - if not ready then exit; - fgcolor32:= fgcolor OR (fgcolor SHL 16); - bgcolor32:= bgcolor OR (bgcolor SHL 16); - mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); - dest:= puint16(multibootinfo^.framebuffer_addr); - //dest:= puint16(windowmanager.getBuffer(0)); - dest:= dest + (y*(1280 * 16)) + (x * 8); - dest32:= puint32(dest); - for i:=0 to 15 do begin - dest32[(i*640)+0]:= (bgcolor32 AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); - dest32[(i*640)+1]:= (bgcolor32 AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); - dest32[(i*640)+2]:= (bgcolor32 AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); - dest32[(i*640)+3]:= (bgcolor32 AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); - end; - //windowmanager.redraw; -end; - -procedure disable_cursor; -begin - outb($3D4, $0A); - outb($3D5, $20); -end; - -procedure init(); [public, alias: 'console_init']; -var - fb: puint32; - -Begin - fb:= puint32(uint32(multibootinfo^.framebuffer_addr)); - kpalloc(uint32(fb)); - Console_Properties.Default_Attribute:= console.combinecolors($FFFF, $0000); - console.clear(); - Ready:= True; -end; - -procedure clear(); [public, alias: 'console_clear']; -var - x,y: Byte; - -begin - for y:=0 to 63 do begin - for x:=0 to 159 do begin - Console_Matrix[y][x].Character:= ' '; - Console_Matrix[y][x].Attributes:= Console_Properties.Default_Attribute; - OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); - end; - end; - Console_Cursor.X:= 0; - Console_Cursor.Y:= 0; -end; - -procedure writebin8ex(b : uint8; attributes: uint32); -var - Mask : PMask; - i : uint8; - -begin - Mask:= PMask(@b); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); - end; -end; - -procedure writebin16ex(b : uint16; attributes: uint32); -var - Mask : PMask; - i,j : uint8; - -begin - for j:=1 downto 0 do begin - Mask:= PMask(uint32(@b) + (1 * j)); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); - end; - end; -end; - -procedure writebin32ex(b : uint32; attributes: uint32); -var - Mask : PMask; - i,j : uint8; - -begin - for j:=3 downto 0 do begin - Mask:= PMask(uint32(@b) + (1 * j)); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); - end; - end; -end; - -procedure writebin8(b : uint8); -begin - writebin8ex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin16(b : uint16); -begin - writebin16ex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin32(b : uint32); -begin - writebin32ex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin8lnex(b : uint8; attributes: uint32); -begin - writebin8ex(b, attributes); - console._safeincrement_y(); -end; - -procedure writebin16lnex(b : uint16; attributes: uint32); -begin - writebin16ex(b, attributes); - console._safeincrement_y(); -end; - -procedure writebin32lnex(b : uint32; attributes: uint32); -begin - writebin32ex(b, attributes); - console._safeincrement_y(); -end; - -procedure writebin8ln(b : uint8); -begin - writebin8lnex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin16ln(b : uint16); -begin - writebin16lnex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin32ln(b : uint32); -begin - writebin32lnex(b, Console_Properties.Default_Attribute); -end; - -procedure setdefaultattribute(attribute: uint32); [public, alias: 'console_setdefaultattribute']; -begin - Console_Properties.Default_Attribute:= attribute; -end; - -procedure writechar(character: char); [public, alias: 'console_writechar']; -begin - console.writecharex(character, Console_Properties.Default_Attribute); -end; - -procedure writestring(str: PChar); [public, alias: 'console_writestring']; -begin - console.writestringex(str, Console_Properties.Default_Attribute); -end; - -procedure writeint(i: Integer); [public, alias: 'console_writeint']; -begin - console.writeintex(i, Console_Properties.Default_Attribute); -end; - -procedure writeword(i: DWORD); [public, alias: 'console_writeword']; -begin - console.writewordex(i, Console_Properties.Default_Attribute); -end; - -procedure writecharln(character: char); [public, alias: 'console_writecharln']; -begin - console.writecharlnex(character, Console_Properties.Default_Attribute); -end; - -procedure writestringln(str: PChar); [public, alias: 'console_writestringln']; -begin - console.writestringlnex(str, Console_Properties.Default_Attribute); -end; - -procedure writeintln(i: Integer); [public, alias: 'console_writeintln']; -begin - console.writeintlnex(i, Console_Properties.Default_Attribute); -end; - -procedure writewordln(i: DWORD); [public, alias: 'console_writewordln']; -begin - console.writewordlnex(i, Console_Properties.Default_Attribute); -end; - -procedure writecharex(character: char; attributes: uint32); [public, alias: 'console_writecharex']; -begin - outputChar(character, Console_Cursor.X, Console_Cursor.Y, attributes SHR 16, attributes AND $FFFF); - Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Character:= character; - Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Attributes:= attributes; - console._safeincrement_x(); -end; - -procedure writehexpair(b : uint8); -var - bn : Array[0..1] of uint8; - i : uint8; - -begin - bn[0]:= b SHR 4; - bn[1]:= b AND $0F; - for i:=0 to 1 do begin - case bn[i] of - 0:writestring('0'); - 1:writestring('1'); - 2:writestring('2'); - 3:writestring('3'); - 4:writestring('4'); - 5:writestring('5'); - 6:writestring('6'); - 7:writestring('7'); - 8:writestring('8'); - 9:writestring('9'); - 10:writestring('A'); - 11:writestring('B'); - 12:writestring('C'); - 13:writestring('D'); - 14:writestring('E'); - 15:writestring('F'); - end; - end; -end; - -procedure writehexex(i : dword; attributes: uint32); [public, alias: 'console_writehexex']; -var - Hex : Array[0..7] of Byte; - Res : DWORD; - Rem : DWORD; - c : Integer; - -begin - for c:=0 to 7 do begin - Hex[c]:= 0; - end; - c:=0; - Res:= i; - Rem:= Res mod 16; - while Res > 0 do begin - Hex[c]:= Rem; - Res:= Res div 16; - Rem:= Res mod 16; - c:=c+1; - end; - writestringex('0x', attributes); - for c:=7 downto 0 do begin - if Hex[c] <> 255 then begin - case Hex[c] of - 0:writecharex('0', attributes); - 1:writecharex('1', attributes); - 2:writecharex('2', attributes); - 3:writecharex('3', attributes); - 4:writecharex('4', attributes); - 5:writecharex('5', attributes); - 6:writecharex('6', attributes); - 7:writecharex('7', attributes); - 8:writecharex('8', attributes); - 9:writecharex('9', attributes); - 10:writecharex('A', attributes); - 11:writecharex('B', attributes); - 12:writecharex('C', attributes); - 13:writecharex('D', attributes); - 14:writecharex('E', attributes); - 15:writecharex('F', attributes); - else writecharex('?', attributes); - end; - end; - end; -end; - -procedure writehex(i : dword); [public, alias: 'console_writehex']; -begin - console.writehexex(i, Console_Properties.Default_Attribute); -end; - -procedure writehexlnex(i : dword; attributes: uint32); -begin - console.writehexex(i, attributes); - console._safeincrement_y(); -end; - -procedure writehexln(i : dword); -begin - writehexlnex(i, Console_Properties.Default_Attribute); -end; - -procedure Output(identifier : PChar; str : PChar); -begin - writestring('['); - writestring(identifier); - writestring('] '); - writestring(str); -end; - -procedure Outputln(identifier : PChar; str : PChar); -begin - Output(identifier, str); - writestringln(' '); -end; - -procedure writestringex(str: PChar; attributes: uint32); [public, alias: 'console_writestringex']; -var - i : integer; - -begin - i:= 0; - while (str[i] <> #0) do begin - console.writecharex(str[i], attributes); - i:=i+1; - end; -end; - -procedure writeintex(i: Integer; attributes: uint32); [public, alias: 'console_writeintex']; -var - buffer: array [0..11] of Char; - str: PChar; - digit: DWORD; - minus: Boolean; -begin - str := @buffer[11]; - str^ := #0; - if (i < 0) then begin - digit := -i; - minus := True; - end else begin - digit := i; - minus := False; - end; - repeat - Dec(str); - str^ := Char((digit mod 10) + Byte('0')); - digit := digit div 10; - until (digit = 0); - if (minus) then begin - Dec(str); - str^ := '-'; - end; - console.writestringex(str, attributes); -end; - -procedure writewordex(i: DWORD; attributes: uint32); [public, alias: 'console_writedwordex']; -var - buffer: array [0..11] of Char; - str: PChar; - digit: DWORD; -begin - for digit := 0 to 10 do buffer[digit] := '0'; - str := @buffer[11]; - str^ := #0; - digit := i; - repeat - Dec(str); - str^ := Char((digit mod 10) + Byte('0')); - digit := digit div 10; - until (digit = 0); - console.writestringex(@Buffer[0], attributes); -end; - -procedure writecharlnex(character: char; attributes: uint32); [public, alias: 'console_writecharlnex']; -begin - console.writecharex(character, attributes); - console._safeincrement_y(); -end; - -procedure writestringlnex(str: PChar; attributes: uint32); [public, alias: 'console_writestringlnex']; -begin - console.writestringex(str, attributes); - console._safeincrement_y(); -end; - -procedure writeintlnex(i: Integer; attributes: uint32); [public, alias: 'console_writeintlnex']; -begin - console.writeintex(i, attributes); - console._safeincrement_y(); -end; - -procedure writewordlnex(i: DWORD; attributes: uint32); [public, alias: 'console_writewordlnex']; -begin - console.writewordex(i, attributes); - console._safeincrement_y(); -end; - -function combinecolors(Foreground, Background: uint16): uint32; -begin - combinecolors:= (uint32(Foreground) SHL 16) OR Background; -end; - -procedure _update_cursor(); [public, alias: '_console_update_cursor']; -var - pos : word; - b : byte; - -begin - pos:= (Console_Cursor.Y * 80) + Console_Cursor.X; - outb($3D4, $0F); - b:= pos and $00FF; - outb($3D5, b); - outb($3D4, $0E); - b:= pos shr 8; - outb($3D5, b); -end; - -procedure backspace; -begin - Dec(Console_Cursor.X); - writechar(' '); - Dec(Console_Cursor.X); - _update_cursor(); -end; - -procedure _increment_x(); [public, alias: '_console_increment_x']; -begin - Console_Cursor.X:= Console_Cursor.X+1; - If Console_Cursor.X > 159 then Console_Cursor.X:= 0; - console._update_cursor; -end; - -procedure _increment_y(); [public, alias: '_console_increment_y']; -begin - Console_Cursor.Y:= Console_Cursor.Y+1; - If Console_Cursor.Y > 63 then begin - console._newline(); - Console_Cursor.Y:= 63; - end; - console._update_cursor; -end; - -procedure _safeincrement_x(); [public, alias: '_console_safeincrement_x']; -begin - Console_Cursor.X:= Console_Cursor.X+1; - If Console_Cursor.X > 159 then begin - console._safeincrement_y(); - end; - console._update_cursor; -end; - -procedure _safeincrement_y(); [public, alias: '_console_safeincrement_y']; -begin - Console_Cursor.Y:= Console_Cursor.Y+1; - If Console_Cursor.Y > 63 then begin - console._newline(); - Console_Cursor.Y:= 63; - end; - Console_Cursor.X:= 0; - console._update_cursor; -end; - -procedure _newline(); [public, alias: '_console_newline']; -var - x, y : byte; - -begin - for x:=0 to 159 do begin - for y:=0 to 63 do begin - Console_Matrix[y][x]:= Console_Matrix[y+1][x]; - end; - end; - for x:=0 to 159 do begin - Console_Matrix[63][x].Character:= ' '; - Console_Matrix[63][x].Attributes:= $FFFF0000; - end; - for y:=0 to 63 do begin - for x:=0 to 159 do begin - OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); - end; - end; - console._update_cursor; -end; - -end. +// Copyright 2021 Kieron Morris +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +{ ************************************************ + * Asuro + * Unit: console + * Description: Basic Console Output + ************************************************ + * Author: K Morris + * Contributors: + ************************************************ } + +unit console; + +interface + +uses + util, + bios_data_area, + multiboot, + fonts, + tracer; + +type + TColor = ( Black = $0, + Blue = $1, + Green = $2, + Aqua = $3, + Red = $4, + Purple = $5, + Yellow = $6, + White = $7, + Gray = $8, + lBlue = $9, + lGreen = $A, + lAqua = $B, + lRed = $C, + lPurple = $D, + lYellow = $E, + lWhite = $F ); + +procedure init(); +procedure clear(); +procedure setdefaultattribute(attribute : uint32); + +procedure disable_cursor; + +procedure writechar(character : char); +procedure writecharln(character : char); +procedure writecharex(character : char; attributes: uint32); +procedure writecharlnex(character : char; attributes: uint32); + +procedure Output(identifier : PChar; str : PChar); +procedure Outputln(identifier : PChar; str : PChar); + +procedure writestring(str: PChar); +procedure writestringln(str: PChar); +procedure writestringex(str: PChar; attributes: uint32); +procedure writestringlnex(str: PChar; attributes: uint32); + +procedure writeint(i: Integer); +procedure writeintln(i: Integer); +procedure writeintex(i: Integer; attributes: uint32); +procedure writeintlnex(i: Integer; attributes: uint32); + +procedure writeword(i: DWORD); +procedure writewordln(i: DWORD); +procedure writewordex(i: DWORD; attributes: uint32); +procedure writewordlnex(i: DWORD; attributes: uint32); + +procedure writehexpair(b : uint8); +procedure writehex(i: DWORD); +procedure writehexln(i: DWORD); +procedure writehexex(i : DWORD; attributes: uint32); +procedure writehexlnex(i: DWORD; attributes: uint32); + +procedure writebin8(b : uint8); +procedure writebin8ln(b : uint8); +procedure writebin8ex(b : uint8; attributes: uint32); +procedure writebin8lnex(b : uint8; attributes: uint32); + +procedure writebin16(b : uint16); +procedure writebin16ln(b : uint16); +procedure writebin16ex(b : uint16; attributes: uint32); +procedure writebin16lnex(b : uint16; attributes: uint32); + +procedure writebin32(b : uint32); +procedure writebin32ln(b : uint32); +procedure writebin32ex(b : uint32; attributes: uint32); +procedure writebin32lnex(b : uint32; attributes: uint32); + +procedure backspace; + +function combinecolors(Foreground, Background : uint16) : uint32; + +procedure _increment_x(); +procedure _increment_y(); +procedure _safeincrement_y(); +procedure _safeincrement_x(); +procedure _newline(); + +procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16); +procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16); +procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16); + +function getPixel(x : uint32; y : uint32) : uint16; +procedure drawPixel(x : uint32; y : uint32; color : uint16); +function getPixel32(x : uint32; y : uint32) : uint32; +procedure drawPixel32(x : uint32; y : uint32; pixel : uint32); +function getPixel64(x : uint32; y : uint32) : uint64; +procedure drawPixel64(x : uint32; y : uint32; pixel : uint64); + +implementation + +uses + lmemorymanager; + +const + MAX_WINDOWS = 10; + +type + TConsoleProperties = record + Default_Attribute : uint32; + end; + + TCharacter = bitpacked record + Character : Char; + attributes : uint32; + visible : boolean; + end; + PCharacter = ^TCharacter; + + TVideoMemory = Array[0..1999] of TCharacter; + PVideoMemory = ^TVideoMemory; + + T2DVideoMemory = Array[0..63] of Array[0..159] of TCharacter; + P2DVideoMemory = ^T2DVideoMemory; + + TCoord = record + X : Byte; + Y : Byte; + end; + + TWindow = record + visible : boolean; + buffer : T2DVideoMemory; + row_dirty : Array[0..63] of Boolean; + invalid : boolean; + WND_X : uint32; + WND_Y : uint32; + WND_W : uint32; + WND_H : uint32; + end; + + TWindows = Array[0..MAX_WINDOWS-1] of TWindow; + + TWindowManager = record + Windows : TWindows; + MouseX : uint32; + MouseY : uint32; + end; + +var + Console_Properties : TConsoleProperties; + Console_Matrix : T2DVideoMemory; + Console_Cursor : TCoord; + WindowManager : TWindowManager; + Ready : Boolean = false; + +procedure redrawWindows; +var + x, y, w : uint32; + row_dirty : Arrray[0..63] of Boolean; + +begin + for w:=0 to 63 do begin + row_dirty[w]:= false; + end; + for y:=0 to 63 do begin + for w:=0 to MAX_WINDOWS-1 do begin + if WindowManager.Windows[w].row_dirty[y] OR row_dirty[y] then begin + row_dirty[y]:= true; + if WindowManager.Windows[w].visible then begin + for x:=0 to 159 do begin + if WindowManager.Windows[w].buffer[x][y].visible then begin + if Console_Matrix[x][y].Character <> WindowManager.Windows[w].buffer[x][y].character then begin + Console_Matrix[x][y].Character:= WindowManager.Windows[w].buffer[x][y].character; + Console_Matrix[x][y].attributes:= WindowManager.Windows[w].buffer[x][y].attributes; + end; + end; + end; + end; + end; + end; + end; +end; + +function getPixel(x : uint32; y : uint32) : uint16; +var + dest : puint16; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * 1280) + x; + getPixel:= dest^; +end; + +procedure drawPixel(x : uint32; y : uint32; color : uint16); +var + dest : puint16; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * 1280) + x; + dest^:= color; +end; + +function getPixel32(x : uint32; y : uint32) : uint32; +var + dest : puint16; + dest32 : puint32; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * 1280) + x; + dest32:= puint32(dest); + getPixel32:= dest32[0]; +end; + +procedure drawPixel32(x : uint32; y : uint32; pixel : uint32); +var + dest : puint16; + dest32 : puint32; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * 1280) + x; + dest32:= puint32(dest); + dest32[0]:= pixel; +end; + +function getPixel64(x : uint32; y : uint32) : uint64; +var + dest : puint16; + dest64 : puint64; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * 1280) + x; + dest64:= puint64(dest); + getPixel64:= dest64^; +end; + +procedure drawPixel64(x : uint32; y : uint32; pixel : uint64); +var + dest : puint16; + dest64 : puint64; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * 1280) + x; + dest64:= puint64(dest); + dest64^:= pixel; +end; + +procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16); +var + dest : puint16; + dest32 : puint32; + fgcolor32, bgcolor32 : uint32; + mask : puint32; + i : uint32; + +begin + if not ready then exit; + fgcolor32:= fgcolor OR (fgcolor SHL 16); + mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); + dest:= puint16(multibootinfo^.framebuffer_addr); + //dest:= puint16(windowmanager.getBuffer(0)); + dest:= dest + (y * 1280) + x; + dest32:= puint32(dest); + for i:=0 to 15 do begin + dest32[(i*640)+0]:= (dest32[(i*640)+0] AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); + dest32[(i*640)+1]:= (dest32[(i*640)+1] AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); + dest32[(i*640)+2]:= (dest32[(i*640)+2] AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); + dest32[(i*640)+3]:= (dest32[(i*640)+3] AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); + end; + //windowmanager.redraw; +end; + +procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16); +var + dest : puint16; + dest32 : puint32; + fgcolor32, bgcolor32 : uint32; + mask : puint32; + i : uint32; + +begin + if not ready then exit; + fgcolor32:= fgcolor OR (fgcolor SHL 16); + mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); + dest:= puint16(multibootinfo^.framebuffer_addr); + //dest:= puint16(windowmanager.getBuffer(0)); + dest:= dest + (y*(1280 * 16)) + (x * 8); + dest32:= puint32(dest); + for i:=0 to 15 do begin + dest32[(i*640)+0]:= (dest32[(i*640)+0] AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); + dest32[(i*640)+1]:= (dest32[(i*640)+1] AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); + dest32[(i*640)+2]:= (dest32[(i*640)+2] AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); + dest32[(i*640)+3]:= (dest32[(i*640)+3] AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); + end; + //windowmanager.redraw; +end; + +procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16); +var + dest : puint16; + dest32 : puint32; + fgcolor32, bgcolor32 : uint32; + mask : puint32; + i : uint32; + +begin + if not ready then exit; + fgcolor32:= fgcolor OR (fgcolor SHL 16); + bgcolor32:= bgcolor OR (bgcolor SHL 16); + mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); + dest:= puint16(multibootinfo^.framebuffer_addr); + //dest:= puint16(windowmanager.getBuffer(0)); + dest:= dest + (y*(1280 * 16)) + (x * 8); + dest32:= puint32(dest); + for i:=0 to 15 do begin + dest32[(i*640)+0]:= (bgcolor32 AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); + dest32[(i*640)+1]:= (bgcolor32 AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); + dest32[(i*640)+2]:= (bgcolor32 AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); + dest32[(i*640)+3]:= (bgcolor32 AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); + end; + //windowmanager.redraw; +end; + +procedure disable_cursor; +begin + outb($3D4, $0A); + outb($3D5, $20); +end; + +procedure init(); [public, alias: 'console_init']; +var + fb: puint32; + +Begin + fb:= puint32(uint32(multibootinfo^.framebuffer_addr)); + kpalloc(uint32(fb)); + Console_Properties.Default_Attribute:= console.combinecolors($FFFF, $0000); + console.clear(); + Ready:= True; +end; + +procedure clear(); [public, alias: 'console_clear']; +var + x,y: Byte; + +begin + for y:=0 to 63 do begin + for x:=0 to 159 do begin + Console_Matrix[y][x].Character:= ' '; + Console_Matrix[y][x].Attributes:= Console_Properties.Default_Attribute; + OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); + end; + end; + Console_Cursor.X:= 0; + Console_Cursor.Y:= 0; +end; + +procedure writebin8ex(b : uint8; attributes: uint32); +var + Mask : PMask; + i : uint8; + +begin + Mask:= PMask(@b); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); + end; +end; + +procedure writebin16ex(b : uint16; attributes: uint32); +var + Mask : PMask; + i,j : uint8; + +begin + for j:=1 downto 0 do begin + Mask:= PMask(uint32(@b) + (1 * j)); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); + end; + end; +end; + +procedure writebin32ex(b : uint32; attributes: uint32); +var + Mask : PMask; + i,j : uint8; + +begin + for j:=3 downto 0 do begin + Mask:= PMask(uint32(@b) + (1 * j)); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); + end; + end; +end; + +procedure writebin8(b : uint8); +begin + writebin8ex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin16(b : uint16); +begin + writebin16ex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin32(b : uint32); +begin + writebin32ex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin8lnex(b : uint8; attributes: uint32); +begin + writebin8ex(b, attributes); + console._safeincrement_y(); +end; + +procedure writebin16lnex(b : uint16; attributes: uint32); +begin + writebin16ex(b, attributes); + console._safeincrement_y(); +end; + +procedure writebin32lnex(b : uint32; attributes: uint32); +begin + writebin32ex(b, attributes); + console._safeincrement_y(); +end; + +procedure writebin8ln(b : uint8); +begin + writebin8lnex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin16ln(b : uint16); +begin + writebin16lnex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin32ln(b : uint32); +begin + writebin32lnex(b, Console_Properties.Default_Attribute); +end; + +procedure setdefaultattribute(attribute: uint32); [public, alias: 'console_setdefaultattribute']; +begin + Console_Properties.Default_Attribute:= attribute; +end; + +procedure writechar(character: char); [public, alias: 'console_writechar']; +begin + console.writecharex(character, Console_Properties.Default_Attribute); +end; + +procedure writestring(str: PChar); [public, alias: 'console_writestring']; +begin + console.writestringex(str, Console_Properties.Default_Attribute); +end; + +procedure writeint(i: Integer); [public, alias: 'console_writeint']; +begin + console.writeintex(i, Console_Properties.Default_Attribute); +end; + +procedure writeword(i: DWORD); [public, alias: 'console_writeword']; +begin + console.writewordex(i, Console_Properties.Default_Attribute); +end; + +procedure writecharln(character: char); [public, alias: 'console_writecharln']; +begin + console.writecharlnex(character, Console_Properties.Default_Attribute); +end; + +procedure writestringln(str: PChar); [public, alias: 'console_writestringln']; +begin + console.writestringlnex(str, Console_Properties.Default_Attribute); +end; + +procedure writeintln(i: Integer); [public, alias: 'console_writeintln']; +begin + console.writeintlnex(i, Console_Properties.Default_Attribute); +end; + +procedure writewordln(i: DWORD); [public, alias: 'console_writewordln']; +begin + console.writewordlnex(i, Console_Properties.Default_Attribute); +end; + +procedure writecharex(character: char; attributes: uint32); [public, alias: 'console_writecharex']; +begin + outputChar(character, Console_Cursor.X, Console_Cursor.Y, attributes SHR 16, attributes AND $FFFF); + Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Character:= character; + Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Attributes:= attributes; + console._safeincrement_x(); +end; + +procedure writehexpair(b : uint8); +var + bn : Array[0..1] of uint8; + i : uint8; + +begin + bn[0]:= b SHR 4; + bn[1]:= b AND $0F; + for i:=0 to 1 do begin + case bn[i] of + 0:writestring('0'); + 1:writestring('1'); + 2:writestring('2'); + 3:writestring('3'); + 4:writestring('4'); + 5:writestring('5'); + 6:writestring('6'); + 7:writestring('7'); + 8:writestring('8'); + 9:writestring('9'); + 10:writestring('A'); + 11:writestring('B'); + 12:writestring('C'); + 13:writestring('D'); + 14:writestring('E'); + 15:writestring('F'); + end; + end; +end; + +procedure writehexex(i : dword; attributes: uint32); [public, alias: 'console_writehexex']; +var + Hex : Array[0..7] of Byte; + Res : DWORD; + Rem : DWORD; + c : Integer; + +begin + for c:=0 to 7 do begin + Hex[c]:= 0; + end; + c:=0; + Res:= i; + Rem:= Res mod 16; + while Res > 0 do begin + Hex[c]:= Rem; + Res:= Res div 16; + Rem:= Res mod 16; + c:=c+1; + end; + writestringex('0x', attributes); + for c:=7 downto 0 do begin + if Hex[c] <> 255 then begin + case Hex[c] of + 0:writecharex('0', attributes); + 1:writecharex('1', attributes); + 2:writecharex('2', attributes); + 3:writecharex('3', attributes); + 4:writecharex('4', attributes); + 5:writecharex('5', attributes); + 6:writecharex('6', attributes); + 7:writecharex('7', attributes); + 8:writecharex('8', attributes); + 9:writecharex('9', attributes); + 10:writecharex('A', attributes); + 11:writecharex('B', attributes); + 12:writecharex('C', attributes); + 13:writecharex('D', attributes); + 14:writecharex('E', attributes); + 15:writecharex('F', attributes); + else writecharex('?', attributes); + end; + end; + end; +end; + +procedure writehex(i : dword); [public, alias: 'console_writehex']; +begin + console.writehexex(i, Console_Properties.Default_Attribute); +end; + +procedure writehexlnex(i : dword; attributes: uint32); +begin + console.writehexex(i, attributes); + console._safeincrement_y(); +end; + +procedure writehexln(i : dword); +begin + writehexlnex(i, Console_Properties.Default_Attribute); +end; + +procedure Output(identifier : PChar; str : PChar); +begin + writestring('['); + writestring(identifier); + writestring('] '); + writestring(str); +end; + +procedure Outputln(identifier : PChar; str : PChar); +begin + Output(identifier, str); + writestringln(' '); +end; + +procedure writestringex(str: PChar; attributes: uint32); [public, alias: 'console_writestringex']; +var + i : integer; + +begin + i:= 0; + while (str[i] <> #0) do begin + console.writecharex(str[i], attributes); + i:=i+1; + end; +end; + +procedure writeintex(i: Integer; attributes: uint32); [public, alias: 'console_writeintex']; +var + buffer: array [0..11] of Char; + str: PChar; + digit: DWORD; + minus: Boolean; +begin + str := @buffer[11]; + str^ := #0; + if (i < 0) then begin + digit := -i; + minus := True; + end else begin + digit := i; + minus := False; + end; + repeat + Dec(str); + str^ := Char((digit mod 10) + Byte('0')); + digit := digit div 10; + until (digit = 0); + if (minus) then begin + Dec(str); + str^ := '-'; + end; + console.writestringex(str, attributes); +end; + +procedure writewordex(i: DWORD; attributes: uint32); [public, alias: 'console_writedwordex']; +var + buffer: array [0..11] of Char; + str: PChar; + digit: DWORD; +begin + for digit := 0 to 10 do buffer[digit] := '0'; + str := @buffer[11]; + str^ := #0; + digit := i; + repeat + Dec(str); + str^ := Char((digit mod 10) + Byte('0')); + digit := digit div 10; + until (digit = 0); + console.writestringex(@Buffer[0], attributes); +end; + +procedure writecharlnex(character: char; attributes: uint32); [public, alias: 'console_writecharlnex']; +begin + console.writecharex(character, attributes); + console._safeincrement_y(); +end; + +procedure writestringlnex(str: PChar; attributes: uint32); [public, alias: 'console_writestringlnex']; +begin + console.writestringex(str, attributes); + console._safeincrement_y(); +end; + +procedure writeintlnex(i: Integer; attributes: uint32); [public, alias: 'console_writeintlnex']; +begin + console.writeintex(i, attributes); + console._safeincrement_y(); +end; + +procedure writewordlnex(i: DWORD; attributes: uint32); [public, alias: 'console_writewordlnex']; +begin + console.writewordex(i, attributes); + console._safeincrement_y(); +end; + +function combinecolors(Foreground, Background: uint16): uint32; +begin + combinecolors:= (uint32(Foreground) SHL 16) OR Background; +end; + +procedure _update_cursor(); [public, alias: '_console_update_cursor']; +var + pos : word; + b : byte; + +begin + pos:= (Console_Cursor.Y * 80) + Console_Cursor.X; + outb($3D4, $0F); + b:= pos and $00FF; + outb($3D5, b); + outb($3D4, $0E); + b:= pos shr 8; + outb($3D5, b); +end; + +procedure backspace; +begin + Dec(Console_Cursor.X); + writechar(' '); + Dec(Console_Cursor.X); + _update_cursor(); +end; + +procedure _increment_x(); [public, alias: '_console_increment_x']; +begin + Console_Cursor.X:= Console_Cursor.X+1; + If Console_Cursor.X > 159 then Console_Cursor.X:= 0; + console._update_cursor; +end; + +procedure _increment_y(); [public, alias: '_console_increment_y']; +begin + Console_Cursor.Y:= Console_Cursor.Y+1; + If Console_Cursor.Y > 63 then begin + console._newline(); + Console_Cursor.Y:= 63; + end; + console._update_cursor; +end; + +procedure _safeincrement_x(); [public, alias: '_console_safeincrement_x']; +begin + Console_Cursor.X:= Console_Cursor.X+1; + If Console_Cursor.X > 159 then begin + console._safeincrement_y(); + end; + console._update_cursor; +end; + +procedure _safeincrement_y(); [public, alias: '_console_safeincrement_y']; +begin + Console_Cursor.Y:= Console_Cursor.Y+1; + If Console_Cursor.Y > 63 then begin + console._newline(); + Console_Cursor.Y:= 63; + end; + Console_Cursor.X:= 0; + console._update_cursor; +end; + +procedure _newline(); [public, alias: '_console_newline']; +var + x, y : byte; + +begin + for x:=0 to 159 do begin + for y:=0 to 63 do begin + Console_Matrix[y][x]:= Console_Matrix[y+1][x]; + end; + end; + for x:=0 to 159 do begin + Console_Matrix[63][x].Character:= ' '; + Console_Matrix[63][x].Attributes:= $FFFF0000; + end; + for y:=0 to 63 do begin + for x:=0 to 159 do begin + OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); + end; + end; + console._update_cursor; +end; + +end. diff --git a/src/backup/consoleBK2.pas b/src/backup/consoleBK2.pas index b7ca570f..ee48bbc5 100644 --- a/src/backup/consoleBK2.pas +++ b/src/backup/consoleBK2.pas @@ -1,1526 +1,1526 @@ -// Copyright 2021 Kieron Morris -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -{ ************************************************ - * Asuro - * Unit: console - * Description: Basic Console Output - ************************************************ - * Author: K Morris - * Contributors: - ************************************************ } - -unit console; - -interface - -uses - util, - bios_data_area, - multiboot, - fonts, - tracer; - -type - TColor = ( Black = $0, - Blue = $1, - Green = $2, - Aqua = $3, - Red = $4, - Purple = $5, - Yellow = $6, - White = $7, - Gray = $8, - lBlue = $9, - lGreen = $A, - lAqua = $B, - lRed = $C, - lPurple = $D, - lYellow = $E, - lWhite = $F ); - -procedure init(); -procedure clear(); -procedure setdefaultattribute(attribute : uint32); - -procedure disable_cursor; - -procedure writechar(character : char); -procedure writecharln(character : char); -procedure writecharex(character : char; attributes: uint32); -procedure writecharlnex(character : char; attributes: uint32); - -procedure Output(identifier : PChar; str : PChar); -procedure Outputln(identifier : PChar; str : PChar); - -procedure writestring(str: PChar); -procedure writestringln(str: PChar); -procedure writestringex(str: PChar; attributes: uint32); -procedure writestringlnex(str: PChar; attributes: uint32); - -procedure writeint(i: Integer); -procedure writeintln(i: Integer); -procedure writeintex(i: Integer; attributes: uint32); -procedure writeintlnex(i: Integer; attributes: uint32); - -procedure writeword(i: DWORD); -procedure writewordln(i: DWORD); -procedure writewordex(i: DWORD; attributes: uint32); -procedure writewordlnex(i: DWORD; attributes: uint32); - -procedure writehexpair(b : uint8); -procedure writehex(i: DWORD); -procedure writehexln(i: DWORD); -procedure writehexex(i : DWORD; attributes: uint32); -procedure writehexlnex(i: DWORD; attributes: uint32); - -procedure writebin8(b : uint8); -procedure writebin8ln(b : uint8); -procedure writebin8ex(b : uint8; attributes: uint32); -procedure writebin8lnex(b : uint8; attributes: uint32); - -procedure writebin16(b : uint16); -procedure writebin16ln(b : uint16); -procedure writebin16ex(b : uint16; attributes: uint32); -procedure writebin16lnex(b : uint16; attributes: uint32); - -procedure writebin32(b : uint32); -procedure writebin32ln(b : uint32); -procedure writebin32ex(b : uint32; attributes: uint32); -procedure writebin32lnex(b : uint32; attributes: uint32); - -procedure backspace; - -function combinecolors(Foreground, Background : uint16) : uint32; - -procedure _increment_x(); -procedure _increment_y(); -procedure _safeincrement_y(); -procedure _safeincrement_x(); -procedure _newline(); - -{ WND Specific } - -procedure clearWND(WND : uint32); - -procedure writecharWND(character : char; WND : uint32); -procedure writecharlnWND(character : char; WND : uint32); -procedure writecharexWND(character : char; attributes: uint32; WND : uint32); -procedure writecharlnexWND(character : char; attributes: uint32; WND : uint32); - -procedure OutputWND(identifier : PChar; str : PChar; WND : uint32); -procedure OutputlnWND(identifier : PChar; str : PChar; WND : uint32); - -procedure writestringWND(str: PChar; WND : uint32); -procedure writestringlnWND(str: PChar; WND : uint32); -procedure writestringexWND(str: PChar; attributes: uint32; WND : uint32); -procedure writestringlnexWND(str: PChar; attributes: uint32; WND : uint32); - -procedure writeintWND(i: Integer; WND : uint32); -procedure writeintlnWND(i: Integer; WND : uint32); -procedure writeintexWND(i: Integer; attributes: uint32; WND : uint32); -procedure writeintlnexWND(i: Integer; attributes: uint32; WND : uint32); - -procedure writewordWND(i: DWORD; WND : uint32); -procedure writewordlnWND(i: DWORD; WND : uint32); -procedure writewordexWND(i: DWORD; attributes: uint32; WND : uint32); -procedure writewordlnexWND(i: DWORD; attributes: uint32; WND : uint32); - -procedure writehexpairWND(b : uint8; WND : uint32); -procedure writehexWND(i: DWORD; WND : uint32); -procedure writehexlnWND(i: DWORD; WND : uint32); -procedure writehexexWND(i : DWORD; attributes: uint32; WND : uint32); -procedure writehexlnexWND(i: DWORD; attributes: uint32; WND : uint32); - -procedure writebin8WND(b : uint8; WND : uint32); -procedure writebin8lnWND(b : uint8; WND : uint32); -procedure writebin8exWND(b : uint8; attributes: uint32; WND : uint32); -procedure writebin8lnexWND(b : uint8; attributes: uint32; WND : uint32); - -procedure writebin16WND(b : uint16; WND : uint32); -procedure writebin16lnWND(b : uint16; WND : uint32); -procedure writebin16exWND(b : uint16; attributes: uint32; WND : uint32); -procedure writebin16lnexWND(b : uint16; attributes: uint32; WND : uint32); - -procedure writebin32WND(b : uint32; WND : uint32); -procedure writebin32lnWND(b : uint32; WND : uint32); -procedure writebin32exWND(b : uint32; attributes: uint32; WND : uint32); -procedure writebin32lnexWND(b : uint32; attributes: uint32; WND : uint32); - -procedure backspaceWND(WND : uint32); - -procedure _increment_x_WND(WND : uint32); -procedure _increment_y_WND(WND : uint32); -procedure _safeincrement_y_WND(WND : uint32); -procedure _safeincrement_x_WND(WND : uint32); -procedure _newlineWND(WND : uint32); - -{ Drawing } - -procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16); -procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16); -procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16); - -function getPixel(x : uint32; y : uint32) : uint16; -procedure drawPixel(x : uint32; y : uint32; color : uint16); -function getPixel32(x : uint32; y : uint32) : uint32; -procedure drawPixel32(x : uint32; y : uint32; pixel : uint32); -function getPixel64(x : uint32; y : uint32) : uint64; -procedure drawPixel64(x : uint32; y : uint32; pixel : uint64); - -{ Windows Methods } - -procedure setMousePosition(x : uint32; y : uint32); -procedure redrawWindows; -procedure toggleWNDVisible(WND : uint32); -procedure setWNDVisible(WND : uint32; visible : boolean); -procedure closeAllWindows; - -implementation - -uses - lmemorymanager, strings; - -const - MAX_WINDOWS = 10; - DefaultWND = 0; - -type - TConsoleProperties = record - Default_Attribute : uint32; - end; - - TCharacter = bitpacked record - Character : Char; - attributes : uint32; - visible : boolean; - end; - PCharacter = ^TCharacter; - - TVideoMemory = Array[0..1999] of TCharacter; - PVideoMemory = ^TVideoMemory; - - T2DVideoMemory = Array[0..63] of Array[0..159] of TCharacter; - P2DVideoMemory = ^T2DVideoMemory; - - TMouseCoord = record - X : sint32; - Y : sint32; - end; - - TCoord = record - X : Byte; - Y : Byte; - end; - - TWindow = record - visible : boolean; - buffer : T2DVideoMemory; - row_dirty : Array[0..63] of Boolean; - WND_X : uint32; - WND_Y : uint32; - WND_W : uint32; - WND_H : uint32; - Cursor : TCoord; - WND_NAME : PChar; - end; - PWindow = ^TWindow; - - TWindows = Array[0..MAX_WINDOWS-1] of TWindow; - - TWindowManager = record - Windows : TWindows; - MousePos : TMouseCoord; - MousePrev : TMouseCoord; - end; - - TMouseDirt = record - TopLeft : TMouseCoord; - BottomRight : TMouseCoord; - end; - -var - Console_Properties : TConsoleProperties; //Generic Properties - Console_Real : T2DVideoMemory; //The real state of the Console/TUI - Console_Matrix : T2DVideoMemory; //The next buffer to be written - Console_Cursor : TCoord; //The text cursor position - WindowManager : TWindowManager; //Window Manager - Ready : Boolean = false; //Is the unit ready for use? - MouseDrawActive : Boolean = false; //Is the Mouse currently being updated? - mouse_dirt : TMouseDirt; //Character Cell(s) the mouse occupies, these need to be rewritten on mouse move. - Window_Border : TCharacter; - Default_Char : TCharacter; - -procedure closeAllWindows; -var - i : uint32; - -begin - for i:=1 to MAX_WINDOWS-1 do begin - setWNDVisible(i, false); - end; -end; - -procedure setWNDVisible(WND : uint32; visible : boolean); -begin - WindowManager.Windows[WND].visible:= visible; -end; - -procedure toggleWNDVisible(WND : uint32); -begin - WindowManager.Windows[WND].visible:= not WindowManager.Windows[WND].visible; -end; - -procedure drawMouse; -var - x, y : uint32; - MX, MY : uint32; - -begin - MouseDrawActive:= true; - MX:= WindowManager.MousePos.X; - MY:= WindowManager.MousePos.Y; - WindowManager.MousePrev.x:= MX; - WindowManager.MousePrev.y:= MY; - mouse_dirt.TopLeft.x:= (MX div 8) - 2; - mouse_dirt.TopLeft.y:= (MY div 16) - 2; - mouse_dirt.BottomRight.x:= (MX div 8) + 2; - mouse_dirt.BottomRight.y:= (MY div 16) + 2; - if mouse_dirt.TopLeft.x < 0 then mouse_dirt.TopLeft.x:= 0; - if mouse_dirt.TopLeft.y < 0 then mouse_dirt.TopLeft.y:= 0; - if mouse_dirt.BottomRight.x > 159 then mouse_dirt.BottomRight.x:= 159; - if mouse_dirt.BottomRight.y > 63 then mouse_dirt.BottomRight.y:= 63; - MouseDrawActive:= false; -end; - -procedure redrawMatrix; -var - x, y, w: uint32; - -begin - if (WindowManager.MousePos.x <> WindowManager.MousePrev.x) OR (WindowManager.MousePos.y <> WindowManager.MousePrev.y) then begin - for y:=mouse_dirt.TopLeft.y to mouse_dirt.BottomRight.y do begin - for x:=mouse_dirt.TopLeft.x to mouse_dirt.BottomRight.x do begin - Console_Real[y][x].character:= char(1); - end; - end; - drawMouse; - end; - for y:=0 to 63 do begin - for x:=0 to 159 do begin - if (Console_Matrix[y][x].character <> Console_Real[y][x].character) or (Console_Matrix[y][x].attributes <> Console_Real[y][x].attributes) then begin - OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); - Console_Real[y][x]:= Console_Matrix[y][x]; - end; - end; - end; - outputCharToScreenSpace(char(0), WindowManager.MousePrev.x, WindowManager.MousePrev.y, $FFFF); -end; - -procedure setMousePosition(x : uint32; y : uint32); -begin - if MouseDrawActive then exit; - WindowManager.MousePos.X:= x; - WindowManager.MousePos.Y:= y; -end; - -procedure redrawWindows; -var - x, y, w : uint32; - WXL, WYL : sint32; - WXR, WYR : sint32; - STRC : uint32; - MIDP, STARTP : uint32; - -begin - for y:=0 to 63 do begin - for x:=0 to 159 do begin - Console_Matrix[y][x]:= Default_Char; - end; - end; - for w:=0 to MAX_WINDOWS-1 do begin - If WindowManager.Windows[w].visible then begin - if w <> 0 then begin - WXL:= WindowManager.Windows[w].WND_X - 1; - WYL:= WindowManager.Windows[w].WND_Y - 1; - WXR:= WindowManager.Windows[w].WND_X + WindowManager.Windows[w].WND_W + 1; - WYR:= WindowManager.Windows[w].WND_Y + WindowManager.Windows[w].WND_H + 1; - for y:=WYL to WYR do begin - Console_Matrix[y][WXL]:= Window_Border; - Console_Matrix[y][WXL-1]:= Window_Border; - Console_Matrix[y][WXR]:= Window_Border; - Console_Matrix[y][WXR+1]:= Window_Border; - Console_Real[y][WXL].Character:= char(3); - Console_Real[y][WXL-1].Character:= char(3); - Console_Real[y][WXR].Character:= char(3); - Console_Real[y][WXR+1].Character:= char(3); - end; - STRC:= 0; - MIDP:= (WXR + WXL) div 2; - STARTP:= MIDP - (StringSize(WindowManager.Windows[w].WND_NAME) div 2) - 1; - for x:=WXL to WXR do begin - Console_Matrix[WYL][x]:= Window_Border; - if (x >= STARTP) and (STRC < StringSize(WindowManager.Windows[w].WND_NAME)) then begin - Console_Matrix[WYL][x].character:= WindowManager.Windows[w].WND_NAME[STRC]; - inc(STRC); - end; - if x = WXR then begin - Console_Matrix[WYL][x].character:= 'x'; - end; - Console_Matrix[WYR][x]:= Window_Border; - Console_Real[WYL][x].Character:= char(3); - Console_Real[WYR][x].Character:= char(3); - end; - end; - for y:=WindowManager.Windows[w].WND_Y to WindowManager.Windows[w].WND_Y + WindowManager.Windows[w].WND_H do begin - if y > 63 then break; - for x:=WindowManager.Windows[w].WND_X to WindowManager.Windows[w].WND_X + WindowManager.Windows[w].WND_W do begin - if x > 159 then break; - Console_Matrix[y][x]:= WindowManager.Windows[w].buffer[y - WindowManager.Windows[w].WND_Y][x - WindowManager.Windows[w].WND_X]; - end; - end; - end; - end; - redrawMatrix; -end; - -procedure initWindows; -var - x, y, w : uint32; - -begin - Default_Char.Character:= ' '; - Default_Char.attributes:= Console_Properties.Default_Attribute; - Default_Char.visible:= true; - - Window_Border.Character:= ' '; - Window_Border.Attributes:= $0000FFFF; - Window_Border.visible:= true; - - for w:=0 to MAX_WINDOWS-1 do begin - WindowManager.Windows[w].visible:= false; - for y:=0 to 63 do begin - for x:=0 to 159 do begin - WindowManager.Windows[w].Buffer[y][x]:= Default_Char; - Console_Real[y][x].character:= char(1); - end; - end; - end; - - WindowManager.Windows[0].visible:= true; - WindowManager.Windows[0].WND_X:= 0; - WindowManager.Windows[0].WND_Y:= 0; - WindowManager.Windows[0].WND_H:= 63; - WindowManager.Windows[0].WND_W:= 159; - - WindowManager.Windows[1].visible:= false; - WindowManager.Windows[1].WND_X:= 20; - WindowManager.Windows[1].WND_W:= 90; - WindowManager.Windows[1].WND_Y:= 10; - WindowManager.Windows[1].WND_H:= 20; - WindowManager.Windows[1].WND_NAME:= 'ASURO TERMINAL'; -end; - -function getPixel(x : uint32; y : uint32) : uint16; -var - dest : puint16; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * 1280) + x; - getPixel:= dest^; -end; - -procedure drawPixel(x : uint32; y : uint32; color : uint16); -var - dest : puint16; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * 1280) + x; - dest^:= color; -end; - -function getPixel32(x : uint32; y : uint32) : uint32; -var - dest : puint16; - dest32 : puint32; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * 1280) + x; - dest32:= puint32(dest); - getPixel32:= dest32[0]; -end; - -procedure drawPixel32(x : uint32; y : uint32; pixel : uint32); -var - dest : puint16; - dest32 : puint32; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * 1280) + x; - dest32:= puint32(dest); - dest32[0]:= pixel; -end; - -function getPixel64(x : uint32; y : uint32) : uint64; -var - dest : puint16; - dest64 : puint64; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * 1280) + x; - dest64:= puint64(dest); - getPixel64:= dest64^; -end; - -procedure drawPixel64(x : uint32; y : uint32; pixel : uint64); -var - dest : puint16; - dest64 : puint64; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * 1280) + x; - dest64:= puint64(dest); - dest64^:= pixel; -end; - -procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16); -var - dest : puint16; - dest32 : puint32; - fgcolor32, bgcolor32 : uint32; - mask : puint32; - i : uint32; - -begin - if not ready then exit; - fgcolor32:= fgcolor OR (fgcolor SHL 16); - mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); - dest:= puint16(multibootinfo^.framebuffer_addr); - //dest:= puint16(windowmanager.getBuffer(0)); - dest:= dest + (y * 1280) + x; - dest32:= puint32(dest); - for i:=0 to 15 do begin - dest32[(i*640)+0]:= (dest32[(i*640)+0] AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); - dest32[(i*640)+1]:= (dest32[(i*640)+1] AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); - dest32[(i*640)+2]:= (dest32[(i*640)+2] AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); - dest32[(i*640)+3]:= (dest32[(i*640)+3] AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); - end; - //windowmanager.redraw; -end; - -procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16); -var - dest : puint16; - dest32 : puint32; - fgcolor32, bgcolor32 : uint32; - mask : puint32; - i : uint32; - -begin - if not ready then exit; - fgcolor32:= fgcolor OR (fgcolor SHL 16); - mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); - dest:= puint16(multibootinfo^.framebuffer_addr); - //dest:= puint16(windowmanager.getBuffer(0)); - dest:= dest + (y*(1280 * 16)) + (x * 8); - dest32:= puint32(dest); - for i:=0 to 15 do begin - dest32[(i*640)+0]:= (dest32[(i*640)+0] AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); - dest32[(i*640)+1]:= (dest32[(i*640)+1] AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); - dest32[(i*640)+2]:= (dest32[(i*640)+2] AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); - dest32[(i*640)+3]:= (dest32[(i*640)+3] AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); - end; - //windowmanager.redraw; -end; - -procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16); -var - dest : puint16; - dest32 : puint32; - fgcolor32, bgcolor32 : uint32; - mask : puint32; - i : uint32; - -begin - if not ready then exit; - fgcolor32:= fgcolor OR (fgcolor SHL 16); - bgcolor32:= bgcolor OR (bgcolor SHL 16); - mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); - dest:= puint16(multibootinfo^.framebuffer_addr); - //dest:= puint16(windowmanager.getBuffer(0)); - dest:= dest + (y*(1280 * 16)) + (x * 8); - dest32:= puint32(dest); - for i:=0 to 15 do begin - dest32[(i*640)+0]:= (bgcolor32 AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); - dest32[(i*640)+1]:= (bgcolor32 AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); - dest32[(i*640)+2]:= (bgcolor32 AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); - dest32[(i*640)+3]:= (bgcolor32 AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); - end; - //windowmanager.redraw; -end; - -procedure disable_cursor; -begin - outb($3D4, $0A); - outb($3D5, $20); -end; - -procedure init(); [public, alias: 'console_init']; -var - fb: puint32; - -Begin - fb:= puint32(uint32(multibootinfo^.framebuffer_addr)); - kpalloc(uint32(fb)); - initWindows; - Console_Properties.Default_Attribute:= console.combinecolors($FFFF, $0000); - console.clear(); - Ready:= True; -end; - -{ Default Console Write Functions } - -procedure clear(); [public, alias: 'console_clear']; -var - x,y: Byte; - -begin - for y:=0 to 63 do begin - for x:=0 to 159 do begin - WindowManager.Windows[DefaultWND].Buffer[y][x].Character:= ' '; - WindowManager.Windows[DefaultWND].Buffer[y][x].Attributes:= Console_Properties.Default_Attribute; - WindowManager.Windows[DefaultWND].row_dirty[y]:= true; - //Console_Matrix[y][x].Character:= ' '; - //Console_Matrix[y][x].Attributes:= Console_Properties.Default_Attribute; - //OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); - end; - end; - WindowManager.Windows[DefaultWND].Cursor.X:= 0; - WindowManager.Windows[DefaultWND].Cursor.Y:= 0; - redrawWindows; - //Console_Cursor.X:= 0; - //Console_Cursor.Y:= 0; -end; - -procedure writebin8ex(b : uint8; attributes: uint32); -var - Mask : PMask; - i : uint8; - -begin - Mask:= PMask(@b); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); - end; -end; - -procedure writebin16ex(b : uint16; attributes: uint32); -var - Mask : PMask; - i,j : uint8; - -begin - for j:=1 downto 0 do begin - Mask:= PMask(uint32(@b) + (1 * j)); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); - end; - end; -end; - -procedure writebin32ex(b : uint32; attributes: uint32); -var - Mask : PMask; - i,j : uint8; - -begin - for j:=3 downto 0 do begin - Mask:= PMask(uint32(@b) + (1 * j)); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); - end; - end; -end; - -procedure writebin8(b : uint8); -begin - writebin8ex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin16(b : uint16); -begin - writebin16ex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin32(b : uint32); -begin - writebin32ex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin8lnex(b : uint8; attributes: uint32); -begin - writebin8ex(b, attributes); - console._safeincrement_y(); -end; - -procedure writebin16lnex(b : uint16; attributes: uint32); -begin - writebin16ex(b, attributes); - console._safeincrement_y(); -end; - -procedure writebin32lnex(b : uint32; attributes: uint32); -begin - writebin32ex(b, attributes); - console._safeincrement_y(); -end; - -procedure writebin8ln(b : uint8); -begin - writebin8lnex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin16ln(b : uint16); -begin - writebin16lnex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin32ln(b : uint32); -begin - writebin32lnex(b, Console_Properties.Default_Attribute); -end; - -procedure setdefaultattribute(attribute: uint32); [public, alias: 'console_setdefaultattribute']; -begin - Console_Properties.Default_Attribute:= attribute; -end; - -procedure writechar(character: char); [public, alias: 'console_writechar']; -begin - console.writecharex(character, Console_Properties.Default_Attribute); -end; - -procedure writestring(str: PChar); [public, alias: 'console_writestring']; -begin - console.writestringex(str, Console_Properties.Default_Attribute); -end; - -procedure writeint(i: Integer); [public, alias: 'console_writeint']; -begin - console.writeintex(i, Console_Properties.Default_Attribute); -end; - -procedure writeword(i: DWORD); [public, alias: 'console_writeword']; -begin - console.writewordex(i, Console_Properties.Default_Attribute); -end; - -procedure writecharln(character: char); [public, alias: 'console_writecharln']; -begin - console.writecharlnex(character, Console_Properties.Default_Attribute); -end; - -procedure writestringln(str: PChar); [public, alias: 'console_writestringln']; -begin - console.writestringlnex(str, Console_Properties.Default_Attribute); -end; - -procedure writeintln(i: Integer); [public, alias: 'console_writeintln']; -begin - console.writeintlnex(i, Console_Properties.Default_Attribute); -end; - -procedure writewordln(i: DWORD); [public, alias: 'console_writewordln']; -begin - console.writewordlnex(i, Console_Properties.Default_Attribute); -end; - -procedure writecharex(character: char; attributes: uint32); [public, alias: 'console_writecharex']; -begin - WindowManager.Windows[DefaultWND].Buffer[WindowManager.Windows[DefaultWND].Cursor.Y][WindowManager.Windows[DefaultWND].Cursor.X].Character:= character; - WindowManager.Windows[DefaultWND].Buffer[WindowManager.Windows[DefaultWND].Cursor.Y][WindowManager.Windows[DefaultWND].Cursor.X].Attributes:= attributes; - //outputChar(character, Console_Cursor.X, Console_Cursor.Y, attributes SHR 16, attributes AND $FFFF); - //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Character:= character; - //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Attributes:= attributes; - WindowManager.Windows[DefaultWND].row_dirty[WindowManager.Windows[DefaultWND].Cursor.Y]:= true; - console._safeincrement_x(); -end; - -procedure writehexpair(b : uint8); -var - bn : Array[0..1] of uint8; - i : uint8; - -begin - bn[0]:= b SHR 4; - bn[1]:= b AND $0F; - for i:=0 to 1 do begin - case bn[i] of - 0:writestring('0'); - 1:writestring('1'); - 2:writestring('2'); - 3:writestring('3'); - 4:writestring('4'); - 5:writestring('5'); - 6:writestring('6'); - 7:writestring('7'); - 8:writestring('8'); - 9:writestring('9'); - 10:writestring('A'); - 11:writestring('B'); - 12:writestring('C'); - 13:writestring('D'); - 14:writestring('E'); - 15:writestring('F'); - end; - end; -end; - -procedure writehexex(i : dword; attributes: uint32); [public, alias: 'console_writehexex']; -var - Hex : Array[0..7] of Byte; - Res : DWORD; - Rem : DWORD; - c : Integer; - -begin - for c:=0 to 7 do begin - Hex[c]:= 0; - end; - c:=0; - Res:= i; - Rem:= Res mod 16; - while Res > 0 do begin - Hex[c]:= Rem; - Res:= Res div 16; - Rem:= Res mod 16; - c:=c+1; - end; - writestringex('0x', attributes); - for c:=7 downto 0 do begin - if Hex[c] <> 255 then begin - case Hex[c] of - 0:writecharex('0', attributes); - 1:writecharex('1', attributes); - 2:writecharex('2', attributes); - 3:writecharex('3', attributes); - 4:writecharex('4', attributes); - 5:writecharex('5', attributes); - 6:writecharex('6', attributes); - 7:writecharex('7', attributes); - 8:writecharex('8', attributes); - 9:writecharex('9', attributes); - 10:writecharex('A', attributes); - 11:writecharex('B', attributes); - 12:writecharex('C', attributes); - 13:writecharex('D', attributes); - 14:writecharex('E', attributes); - 15:writecharex('F', attributes); - else writecharex('?', attributes); - end; - end; - end; -end; - -procedure writehex(i : dword); [public, alias: 'console_writehex']; -begin - console.writehexex(i, Console_Properties.Default_Attribute); -end; - -procedure writehexlnex(i : dword; attributes: uint32); -begin - console.writehexex(i, attributes); - console._safeincrement_y(); -end; - -procedure writehexln(i : dword); -begin - writehexlnex(i, Console_Properties.Default_Attribute); -end; - -procedure Output(identifier : PChar; str : PChar); -begin - writestring('['); - writestring(identifier); - writestring('] '); - writestring(str); -end; - -procedure Outputln(identifier : PChar; str : PChar); -begin - Output(identifier, str); - writestringln(' '); -end; - -procedure writestringex(str: PChar; attributes: uint32); [public, alias: 'console_writestringex']; -var - i : integer; - -begin - i:= 0; - while (str[i] <> #0) do begin - console.writecharex(str[i], attributes); - i:=i+1; - end; -end; - -procedure writeintex(i: Integer; attributes: uint32); [public, alias: 'console_writeintex']; -var - buffer: array [0..11] of Char; - str: PChar; - digit: DWORD; - minus: Boolean; -begin - str := @buffer[11]; - str^ := #0; - if (i < 0) then begin - digit := -i; - minus := True; - end else begin - digit := i; - minus := False; - end; - repeat - Dec(str); - str^ := Char((digit mod 10) + Byte('0')); - digit := digit div 10; - until (digit = 0); - if (minus) then begin - Dec(str); - str^ := '-'; - end; - console.writestringex(str, attributes); -end; - -procedure writewordex(i: DWORD; attributes: uint32); [public, alias: 'console_writedwordex']; -var - buffer: array [0..11] of Char; - str: PChar; - digit: DWORD; -begin - for digit := 0 to 10 do buffer[digit] := '0'; - str := @buffer[11]; - str^ := #0; - digit := i; - repeat - Dec(str); - str^ := Char((digit mod 10) + Byte('0')); - digit := digit div 10; - until (digit = 0); - console.writestringex(@Buffer[0], attributes); -end; - -procedure writecharlnex(character: char; attributes: uint32); [public, alias: 'console_writecharlnex']; -begin - console.writecharex(character, attributes); - console._safeincrement_y(); -end; - -procedure writestringlnex(str: PChar; attributes: uint32); [public, alias: 'console_writestringlnex']; -begin - console.writestringex(str, attributes); - console._safeincrement_y(); -end; - -procedure writeintlnex(i: Integer; attributes: uint32); [public, alias: 'console_writeintlnex']; -begin - console.writeintex(i, attributes); - console._safeincrement_y(); -end; - -procedure writewordlnex(i: DWORD; attributes: uint32); [public, alias: 'console_writewordlnex']; -begin - console.writewordex(i, attributes); - console._safeincrement_y(); -end; - -function combinecolors(Foreground, Background: uint16): uint32; -begin - combinecolors:= (uint32(Foreground) SHL 16) OR Background; -end; - -procedure _update_cursor(); [public, alias: '_console_update_cursor']; -var - pos : word; - b : byte; - -begin - //pos:= (Console_Cursor.Y * 80) + Console_Cursor.X; - //outb($3D4, $0F); - //b:= pos and $00FF; - //outb($3D5, b); - //outb($3D4, $0E); - //b:= pos shr 8; - //outb($3D5, b); - if CONSOLE_SLOW_REDRAW then redrawWindows; - //sleep(1); -end; - -procedure backspace; -begin - Dec(WindowManager.Windows[DefaultWND].Cursor.X); - writechar(' '); - Dec(WindowManager.Windows[DefaultWND].Cursor.X); - _update_cursor(); -end; - -procedure _increment_x(); [public, alias: '_console_increment_x']; -begin - WindowManager.Windows[DefaultWND].Cursor.X:= WindowManager.Windows[DefaultWND].Cursor.X+1; - If WindowManager.Windows[DefaultWND].Cursor.X > WindowManager.Windows[DefaultWND].WND_W-1 then WindowManager.Windows[DefaultWND].Cursor.X:= 0; - console._update_cursor; - //Console_Cursor.X:= Console_Cursor.X+1; - //If Console_Cursor.X > 159 then Console_Cursor.X:= 0; - //console._update_cursor; -end; - -procedure _increment_y(); [public, alias: '_console_increment_y']; -begin - WindowManager.Windows[DefaultWND].Cursor.Y:= WindowManager.Windows[DefaultWND].Cursor.Y+1; - If WindowManager.Windows[DefaultWND].Cursor.Y > WindowManager.Windows[DefaultWND].WND_H-1 then begin - console._newline(); - WindowManager.Windows[DefaultWND].Cursor.Y:= WindowManager.Windows[DefaultWND].WND_H-1; - end; - console._update_cursor; - //Console_Cursor.Y:= Console_Cursor.Y+1; - //If Console_Cursor.Y > 63 then begin - // console._newline(); - // Console_Cursor.Y:= 63; - //end; - //console._update_cursor; -end; - -procedure _safeincrement_x(); [public, alias: '_console_safeincrement_x']; -begin - WindowManager.Windows[DefaultWND].Cursor.X:= WindowManager.Windows[DefaultWND].Cursor.X+1; - if WindowManager.Windows[DefaultWND].Cursor.X > WindowManager.Windows[DefaultWND].WND_W-1 then begin - console._safeincrement_y(); - end; - console._update_cursor; - //Console_Cursor.X:= Console_Cursor.X+1; - //If Console_Cursor.X > 159 then begin - // console._safeincrement_y(); - //end; - //console._update_cursor; -end; - -procedure _safeincrement_y(); [public, alias: '_console_safeincrement_y']; -begin - WindowManager.Windows[DefaultWND].Cursor.Y:= WindowManager.Windows[DefaultWND].Cursor.Y+1; - if WindowManager.Windows[DefaultWND].Cursor.Y > WindowManager.Windows[DefaultWND].WND_H-1 then begin - console._newline(); - WindowManager.Windows[DefaultWND].Cursor.Y:= WindowManager.Windows[DefaultWND].WND_H-1; - end; - WindowManager.Windows[DefaultWND].Cursor.X:= 0; - console._update_cursor; - //Console_Cursor.Y:= Console_Cursor.Y+1; - //If Console_Cursor.Y > 63 then begin - // console._newline(); - // Console_Cursor.Y:= 63; - //end; - //Console_Cursor.X:= 0; - //console._update_cursor; -end; - -procedure _newline(); [public, alias: '_console_newline']; -var - x, y : byte; - -begin - if WindowManager.Windows[DefaultWND].WND_W = 0 then exit; - if WindowManager.Windows[DefaultWND].WND_H = 0 then exit; - for x:=0 to WindowManager.Windows[DefaultWND].WND_W do begin - for y:=0 to WindowManager.Windows[DefaultWND].WND_H-1 do begin - WindowManager.Windows[DefaultWND].buffer[y][x]:= WindowManager.Windows[DefaultWND].buffer[y+1][x]; - WindowManager.Windows[DefaultWND].row_dirty[y]:= true; - //Console_Matrix[y][x]:= Console_Matrix[y+1][x]; - end; - end; - for x:=0 to WindowManager.Windows[DefaultWND].WND_W do begin - WindowManager.Windows[DefaultWND].buffer[WindowManager.Windows[DefaultWND].WND_H-1][x].Character:= ' '; - WindowManager.Windows[DefaultWND].buffer[WindowManager.Windows[DefaultWND].WND_H-1][x].Attributes:= $FFFF0000; - //Console_Matrix[63][x].Character:= ' '; - //Console_Matrix[63][x].Attributes:= $FFFF0000; - end; - //for y:=0 to 63 do begin - // for x:=0 to 159 do begin - // OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); - // end; - //end; - console._update_cursor; -end; - -{ WND Specific Console Draw Functions } - -procedure clearWND(WND : uint32); -var - x,y: Byte; - -begin - for y:=0 to 63 do begin - for x:=0 to 159 do begin - WindowManager.Windows[WND].Buffer[y][x].Character:= ' '; - WindowManager.Windows[WND].Buffer[y][x].Attributes:= Console_Properties.Default_Attribute; - WindowManager.Windows[WND].row_dirty[y]:= true; - //Console_Matrix[y][x].Character:= ' '; - //Console_Matrix[y][x].Attributes:= Console_Properties.Default_Attribute; - //OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); - end; - end; - WindowManager.Windows[WND].Cursor.X:= 0; - WindowManager.Windows[WND].Cursor.Y:= 0; - redrawWindows; - //Console_Cursor.X:= 0; - //Console_Cursor.Y:= 0; -end; - -procedure writebin8exWND(b : uint8; attributes: uint32; WND : uint32); -var - Mask : PMask; - i : uint8; - -begin - Mask:= PMask(@b); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharexWND('1', attributes, WND) else writecharexWND('0', attributes, WND); - end; -end; - -procedure writebin16exWND(b : uint16; attributes: uint32; WND : uint32); -var - Mask : PMask; - i,j : uint8; - -begin - for j:=1 downto 0 do begin - Mask:= PMask(uint32(@b) + (1 * j)); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharexWND('1', attributes, WND) else writecharexWND('0', attributes, WND); - end; - end; -end; - -procedure writebin32exWND(b : uint32; attributes: uint32; WND : uint32); -var - Mask : PMask; - i,j : uint8; - -begin - for j:=3 downto 0 do begin - Mask:= PMask(uint32(@b) + (1 * j)); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharexWND('1', attributes, WND) else writecharexWND('0', attributes, WND); - end; - end; -end; - -procedure writebin8WND(b : uint8; WND : uint32); -begin - writebin8exWND(b, Console_Properties.Default_Attribute, WND); -end; - -procedure writebin16WND(b : uint16; WND : uint32); -begin - writebin16exWND(b, Console_Properties.Default_Attribute, WND); -end; - -procedure writebin32WND(b : uint32; WND : uint32); -begin - writebin32exWND(b, Console_Properties.Default_Attribute, WND); -end; - -procedure writebin8lnexWND(b : uint8; attributes: uint32; WND : uint32); -begin - writebin8exWND(b, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writebin16lnexWND(b : uint16; attributes: uint32; WND : uint32); -begin - writebin16exWND(b, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writebin32lnexWND(b : uint32; attributes: uint32; WND : uint32); -begin - writebin32exWND(b, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writebin8lnWND(b : uint8; WND : uint32); -begin - writebin8lnexWND(b, Console_Properties.Default_Attribute, WND); -end; - -procedure writebin16lnWND(b : uint16; WND : uint32); -begin - writebin16lnexWND(b, Console_Properties.Default_Attribute, WND); -end; - -procedure writebin32lnWND(b : uint32; WND : uint32); -begin - writebin32lnexWND(b, Console_Properties.Default_Attribute, WND); -end; - -{procedure setdefaultattribute(attribute: uint32); [public, alias: 'console_setdefaultattribute']; -begin - Console_Properties.Default_Attribute:= attribute; -end;} - -procedure writecharWND(character: char; WND : uint32); -begin - console.writecharexWND(character, Console_Properties.Default_Attribute, WND); -end; - -procedure writestringWND(str: PChar; WND : uint32); -begin - console.writestringexWND(str, Console_Properties.Default_Attribute, WND); -end; - -procedure writeintWND(i: Integer; WND : uint32); -begin - console.writeintexWND(i, Console_Properties.Default_Attribute, WND); -end; - -procedure writewordWND(i: DWORD; WND : uint32); -begin - console.writewordexWND(i, Console_Properties.Default_Attribute, WND); -end; - -procedure writecharlnWND(character: char; WND : uint32); -begin - console.writecharlnexWND(character, Console_Properties.Default_Attribute, WND); -end; - -procedure writestringlnWND(str: PChar; WND : uint32); -begin - console.writestringlnexWND(str, Console_Properties.Default_Attribute, WND); -end; - -procedure writeintlnWND(i: Integer; WND : uint32); -begin - console.writeintlnexWND(i, Console_Properties.Default_Attribute, WND); -end; - -procedure writewordlnWND(i: DWORD; WND : uint32); -begin - console.writewordlnexWND(i, Console_Properties.Default_Attribute, WND); -end; - -procedure writecharexWND(character: char; attributes: uint32; WND : uint32); -begin - WindowManager.Windows[WND].Buffer[WindowManager.Windows[WND].Cursor.Y][WindowManager.Windows[WND].Cursor.X].Character:= character; - WindowManager.Windows[WND].Buffer[WindowManager.Windows[WND].Cursor.Y][WindowManager.Windows[WND].Cursor.X].Attributes:= attributes; - //outputChar(character, Console_Cursor.X, Console_Cursor.Y, attributes SHR 16, attributes AND $FFFF); - //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Character:= character; - //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Attributes:= attributes; - WindowManager.Windows[WND].row_dirty[WindowManager.Windows[WND].Cursor.Y]:= true; - console._safeincrement_x_WND(WND); -end; - -procedure writehexpairWND(b : uint8; WND : uint32); -var - bn : Array[0..1] of uint8; - i : uint8; - -begin - bn[0]:= b SHR 4; - bn[1]:= b AND $0F; - for i:=0 to 1 do begin - case bn[i] of - 0 :writestringWND('0', WND); - 1 :writestringWND('1', WND); - 2 :writestringWND('2', WND); - 3 :writestringWND('3', WND); - 4 :writestringWND('4', WND); - 5 :writestringWND('5', WND); - 6 :writestringWND('6', WND); - 7 :writestringWND('7', WND); - 8 :writestringWND('8', WND); - 9 :writestringWND('9', WND); - 10:writestringWND('A', WND); - 11:writestringWND('B', WND); - 12:writestringWND('C', WND); - 13:writestringWND('D', WND); - 14:writestringWND('E', WND); - 15:writestringWND('F', WND); - end; - end; -end; - -procedure writehexexWND(i : dword; attributes: uint32; WND : uint32); -var - Hex : Array[0..7] of Byte; - Res : DWORD; - Rem : DWORD; - c : Integer; - -begin - for c:=0 to 7 do begin - Hex[c]:= 0; - end; - c:=0; - Res:= i; - Rem:= Res mod 16; - while Res > 0 do begin - Hex[c]:= Rem; - Res:= Res div 16; - Rem:= Res mod 16; - c:=c+1; - end; - writestringexWND('0x', attributes, WND); - for c:=7 downto 0 do begin - if Hex[c] <> 255 then begin - case Hex[c] of - 0:writecharexWND('0', attributes, WND); - 1:writecharexWND('1', attributes, WND); - 2:writecharexWND('2', attributes, WND); - 3:writecharexWND('3', attributes, WND); - 4:writecharexWND('4', attributes, WND); - 5:writecharexWND('5', attributes, WND); - 6:writecharexWND('6', attributes, WND); - 7:writecharexWND('7', attributes, WND); - 8:writecharexWND('8', attributes, WND); - 9:writecharexWND('9', attributes, WND); - 10:writecharexWND('A', attributes, WND); - 11:writecharexWND('B', attributes, WND); - 12:writecharexWND('C', attributes, WND); - 13:writecharexWND('D', attributes, WND); - 14:writecharexWND('E', attributes, WND); - 15:writecharexWND('F', attributes, WND); - else writecharexWND('?', attributes, WND); - end; - end; - end; -end; - -procedure writehexWND(i : dword; WND : uint32); -begin - console.writehexexWND(i, Console_Properties.Default_Attribute, WND); -end; - -procedure writehexlnexWND(i : dword; attributes: uint32; WND : uint32); -begin - console.writehexexWND(i, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writehexlnWND(i : dword; WND : uint32); -begin - writehexlnexWND(i, Console_Properties.Default_Attribute, WND); -end; - -procedure OutputWND(identifier : PChar; str : PChar; WND : uint32); -begin - writestringWND('[', WND); - writestringWND(identifier, WND); - writestringWND('] ', WND); - writestringWND(str, WND); -end; - -procedure OutputlnWND(identifier : PChar; str : PChar; WND : uint32); -begin - OutputWND(identifier, str, WND); - writestringlnWND(' ', WND); -end; - -procedure writestringexWND(str: PChar; attributes: uint32; WND : uint32); -var - i : integer; - -begin - i:= 0; - while (str[i] <> #0) do begin - console.writecharexWND(str[i], attributes, WND); - i:=i+1; - end; -end; - -procedure writeintexWND(i: Integer; attributes: uint32; WND : uint32); -var - buffer: array [0..11] of Char; - str: PChar; - digit: DWORD; - minus: Boolean; -begin - str := @buffer[11]; - str^ := #0; - if (i < 0) then begin - digit := -i; - minus := True; - end else begin - digit := i; - minus := False; - end; - repeat - Dec(str); - str^ := Char((digit mod 10) + Byte('0')); - digit := digit div 10; - until (digit = 0); - if (minus) then begin - Dec(str); - str^ := '-'; - end; - console.writestringexWND(str, attributes, WND); -end; - -procedure writewordexWND(i: DWORD; attributes: uint32; WND : uint32); -var - buffer: array [0..11] of Char; - str: PChar; - digit: DWORD; -begin - for digit := 0 to 10 do buffer[digit] := '0'; - str := @buffer[11]; - str^ := #0; - digit := i; - repeat - Dec(str); - str^ := Char((digit mod 10) + Byte('0')); - digit := digit div 10; - until (digit = 0); - console.writestringexWND(@Buffer[0], attributes, WND); -end; - -procedure writecharlnexWND(character: char; attributes: uint32; WND : uint32); -begin - console.writecharexWND(character, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writestringlnexWND(str: PChar; attributes: uint32; WND : uint32); -begin - console.writestringexWND(str, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writeintlnexWND(i: Integer; attributes: uint32; WND : uint32); -begin - console.writeintexWND(i, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writewordlnexWND(i: DWORD; attributes: uint32; WND : uint32); -begin - console.writewordexWND(i, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure backspaceWND(WND : uint32); -begin - Dec(WindowManager.Windows[WND].Cursor.X); - writecharWND(' ', WND); - Dec(WindowManager.Windows[WND].Cursor.X); - _update_cursor(); -end; - -procedure _increment_x_WND(WND : uint32); -begin - WindowManager.Windows[WND].Cursor.X:= WindowManager.Windows[WND].Cursor.X+1; - If WindowManager.Windows[WND].Cursor.X > WindowManager.Windows[WND].WND_W-1 then WindowManager.Windows[WND].Cursor.X:= 0; - console._update_cursor; - //Console_Cursor.X:= Console_Cursor.X+1; - //If Console_Cursor.X > 159 then Console_Cursor.X:= 0; - //console._update_cursor; -end; - -procedure _increment_y_WND(WND : uint32); -begin - WindowManager.Windows[WND].Cursor.Y:= WindowManager.Windows[WND].Cursor.Y+1; - If WindowManager.Windows[WND].Cursor.Y > WindowManager.Windows[WND].WND_H-1 then begin - console._newlineWND(WND); - WindowManager.Windows[WND].Cursor.Y:= WindowManager.Windows[WND].WND_H-1; - end; - console._update_cursor; - //Console_Cursor.Y:= Console_Cursor.Y+1; - //If Console_Cursor.Y > 63 then begin - // console._newline(); - // Console_Cursor.Y:= 63; - //end; - //console._update_cursor; -end; - -procedure _safeincrement_x_WND(WND : uint32); -begin - WindowManager.Windows[WND].Cursor.X:= WindowManager.Windows[WND].Cursor.X+1; - if WindowManager.Windows[WND].Cursor.X > WindowManager.Windows[WND].WND_W-1 then begin - console._safeincrement_y_WND(WND); - end; - console._update_cursor; - //Console_Cursor.X:= Console_Cursor.X+1; - //If Console_Cursor.X > 159 then begin - // console._safeincrement_y(); - //end; - //console._update_cursor; -end; - -procedure _safeincrement_y_WND(WND : uint32); -begin - WindowManager.Windows[WND].Cursor.Y:= WindowManager.Windows[WND].Cursor.Y+1; - if WindowManager.Windows[WND].Cursor.Y > WindowManager.Windows[WND].WND_H-1 then begin - console._newlineWND(WND); - WindowManager.Windows[WND].Cursor.Y:= WindowManager.Windows[WND].WND_H-1; - end; - WindowManager.Windows[WND].Cursor.X:= 0; - console._update_cursor; - //Console_Cursor.Y:= Console_Cursor.Y+1; - //If Console_Cursor.Y > 63 then begin - // console._newline(); - // Console_Cursor.Y:= 63; - //end; - //Console_Cursor.X:= 0; - //console._update_cursor; -end; - -procedure _newlineWND(WND : uint32); -var - x, y : byte; - -begin - if WindowManager.Windows[WND].WND_W = 0 then exit; - if WindowManager.Windows[WND].WND_H = 0 then exit; - for x:=0 to WindowManager.Windows[WND].WND_W do begin - for y:=0 to WindowManager.Windows[WND].WND_H-1 do begin - WindowManager.Windows[WND].buffer[y][x]:= WindowManager.Windows[WND].buffer[y+1][x]; - WindowManager.Windows[WND].row_dirty[y]:= true; - //Console_Matrix[y][x]:= Console_Matrix[y+1][x]; - end; - end; - for x:=0 to WindowManager.Windows[WND].WND_W do begin - WindowManager.Windows[WND].buffer[WindowManager.Windows[WND].WND_H-1][x].Character:= ' '; - WindowManager.Windows[WND].buffer[WindowManager.Windows[WND].WND_H-1][x].Attributes:= $FFFF0000; - //Console_Matrix[63][x].Character:= ' '; - //Console_Matrix[63][x].Attributes:= $FFFF0000; - end; - //for y:=0 to 63 do begin - // for x:=0 to 159 do begin - // OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); - // end; - //end; - console._update_cursor; -end; - -end. +// Copyright 2021 Kieron Morris +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +{ ************************************************ + * Asuro + * Unit: console + * Description: Basic Console Output + ************************************************ + * Author: K Morris + * Contributors: + ************************************************ } + +unit console; + +interface + +uses + util, + bios_data_area, + multiboot, + fonts, + tracer; + +type + TColor = ( Black = $0, + Blue = $1, + Green = $2, + Aqua = $3, + Red = $4, + Purple = $5, + Yellow = $6, + White = $7, + Gray = $8, + lBlue = $9, + lGreen = $A, + lAqua = $B, + lRed = $C, + lPurple = $D, + lYellow = $E, + lWhite = $F ); + +procedure init(); +procedure clear(); +procedure setdefaultattribute(attribute : uint32); + +procedure disable_cursor; + +procedure writechar(character : char); +procedure writecharln(character : char); +procedure writecharex(character : char; attributes: uint32); +procedure writecharlnex(character : char; attributes: uint32); + +procedure Output(identifier : PChar; str : PChar); +procedure Outputln(identifier : PChar; str : PChar); + +procedure writestring(str: PChar); +procedure writestringln(str: PChar); +procedure writestringex(str: PChar; attributes: uint32); +procedure writestringlnex(str: PChar; attributes: uint32); + +procedure writeint(i: Integer); +procedure writeintln(i: Integer); +procedure writeintex(i: Integer; attributes: uint32); +procedure writeintlnex(i: Integer; attributes: uint32); + +procedure writeword(i: DWORD); +procedure writewordln(i: DWORD); +procedure writewordex(i: DWORD; attributes: uint32); +procedure writewordlnex(i: DWORD; attributes: uint32); + +procedure writehexpair(b : uint8); +procedure writehex(i: DWORD); +procedure writehexln(i: DWORD); +procedure writehexex(i : DWORD; attributes: uint32); +procedure writehexlnex(i: DWORD; attributes: uint32); + +procedure writebin8(b : uint8); +procedure writebin8ln(b : uint8); +procedure writebin8ex(b : uint8; attributes: uint32); +procedure writebin8lnex(b : uint8; attributes: uint32); + +procedure writebin16(b : uint16); +procedure writebin16ln(b : uint16); +procedure writebin16ex(b : uint16; attributes: uint32); +procedure writebin16lnex(b : uint16; attributes: uint32); + +procedure writebin32(b : uint32); +procedure writebin32ln(b : uint32); +procedure writebin32ex(b : uint32; attributes: uint32); +procedure writebin32lnex(b : uint32; attributes: uint32); + +procedure backspace; + +function combinecolors(Foreground, Background : uint16) : uint32; + +procedure _increment_x(); +procedure _increment_y(); +procedure _safeincrement_y(); +procedure _safeincrement_x(); +procedure _newline(); + +{ WND Specific } + +procedure clearWND(WND : uint32); + +procedure writecharWND(character : char; WND : uint32); +procedure writecharlnWND(character : char; WND : uint32); +procedure writecharexWND(character : char; attributes: uint32; WND : uint32); +procedure writecharlnexWND(character : char; attributes: uint32; WND : uint32); + +procedure OutputWND(identifier : PChar; str : PChar; WND : uint32); +procedure OutputlnWND(identifier : PChar; str : PChar; WND : uint32); + +procedure writestringWND(str: PChar; WND : uint32); +procedure writestringlnWND(str: PChar; WND : uint32); +procedure writestringexWND(str: PChar; attributes: uint32; WND : uint32); +procedure writestringlnexWND(str: PChar; attributes: uint32; WND : uint32); + +procedure writeintWND(i: Integer; WND : uint32); +procedure writeintlnWND(i: Integer; WND : uint32); +procedure writeintexWND(i: Integer; attributes: uint32; WND : uint32); +procedure writeintlnexWND(i: Integer; attributes: uint32; WND : uint32); + +procedure writewordWND(i: DWORD; WND : uint32); +procedure writewordlnWND(i: DWORD; WND : uint32); +procedure writewordexWND(i: DWORD; attributes: uint32; WND : uint32); +procedure writewordlnexWND(i: DWORD; attributes: uint32; WND : uint32); + +procedure writehexpairWND(b : uint8; WND : uint32); +procedure writehexWND(i: DWORD; WND : uint32); +procedure writehexlnWND(i: DWORD; WND : uint32); +procedure writehexexWND(i : DWORD; attributes: uint32; WND : uint32); +procedure writehexlnexWND(i: DWORD; attributes: uint32; WND : uint32); + +procedure writebin8WND(b : uint8; WND : uint32); +procedure writebin8lnWND(b : uint8; WND : uint32); +procedure writebin8exWND(b : uint8; attributes: uint32; WND : uint32); +procedure writebin8lnexWND(b : uint8; attributes: uint32; WND : uint32); + +procedure writebin16WND(b : uint16; WND : uint32); +procedure writebin16lnWND(b : uint16; WND : uint32); +procedure writebin16exWND(b : uint16; attributes: uint32; WND : uint32); +procedure writebin16lnexWND(b : uint16; attributes: uint32; WND : uint32); + +procedure writebin32WND(b : uint32; WND : uint32); +procedure writebin32lnWND(b : uint32; WND : uint32); +procedure writebin32exWND(b : uint32; attributes: uint32; WND : uint32); +procedure writebin32lnexWND(b : uint32; attributes: uint32; WND : uint32); + +procedure backspaceWND(WND : uint32); + +procedure _increment_x_WND(WND : uint32); +procedure _increment_y_WND(WND : uint32); +procedure _safeincrement_y_WND(WND : uint32); +procedure _safeincrement_x_WND(WND : uint32); +procedure _newlineWND(WND : uint32); + +{ Drawing } + +procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16); +procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16); +procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16); + +function getPixel(x : uint32; y : uint32) : uint16; +procedure drawPixel(x : uint32; y : uint32; color : uint16); +function getPixel32(x : uint32; y : uint32) : uint32; +procedure drawPixel32(x : uint32; y : uint32; pixel : uint32); +function getPixel64(x : uint32; y : uint32) : uint64; +procedure drawPixel64(x : uint32; y : uint32; pixel : uint64); + +{ Windows Methods } + +procedure setMousePosition(x : uint32; y : uint32); +procedure redrawWindows; +procedure toggleWNDVisible(WND : uint32); +procedure setWNDVisible(WND : uint32; visible : boolean); +procedure closeAllWindows; + +implementation + +uses + lmemorymanager, strings; + +const + MAX_WINDOWS = 10; + DefaultWND = 0; + +type + TConsoleProperties = record + Default_Attribute : uint32; + end; + + TCharacter = bitpacked record + Character : Char; + attributes : uint32; + visible : boolean; + end; + PCharacter = ^TCharacter; + + TVideoMemory = Array[0..1999] of TCharacter; + PVideoMemory = ^TVideoMemory; + + T2DVideoMemory = Array[0..63] of Array[0..159] of TCharacter; + P2DVideoMemory = ^T2DVideoMemory; + + TMouseCoord = record + X : sint32; + Y : sint32; + end; + + TCoord = record + X : Byte; + Y : Byte; + end; + + TWindow = record + visible : boolean; + buffer : T2DVideoMemory; + row_dirty : Array[0..63] of Boolean; + WND_X : uint32; + WND_Y : uint32; + WND_W : uint32; + WND_H : uint32; + Cursor : TCoord; + WND_NAME : PChar; + end; + PWindow = ^TWindow; + + TWindows = Array[0..MAX_WINDOWS-1] of TWindow; + + TWindowManager = record + Windows : TWindows; + MousePos : TMouseCoord; + MousePrev : TMouseCoord; + end; + + TMouseDirt = record + TopLeft : TMouseCoord; + BottomRight : TMouseCoord; + end; + +var + Console_Properties : TConsoleProperties; //Generic Properties + Console_Real : T2DVideoMemory; //The real state of the Console/TUI + Console_Matrix : T2DVideoMemory; //The next buffer to be written + Console_Cursor : TCoord; //The text cursor position + WindowManager : TWindowManager; //Window Manager + Ready : Boolean = false; //Is the unit ready for use? + MouseDrawActive : Boolean = false; //Is the Mouse currently being updated? + mouse_dirt : TMouseDirt; //Character Cell(s) the mouse occupies, these need to be rewritten on mouse move. + Window_Border : TCharacter; + Default_Char : TCharacter; + +procedure closeAllWindows; +var + i : uint32; + +begin + for i:=1 to MAX_WINDOWS-1 do begin + setWNDVisible(i, false); + end; +end; + +procedure setWNDVisible(WND : uint32; visible : boolean); +begin + WindowManager.Windows[WND].visible:= visible; +end; + +procedure toggleWNDVisible(WND : uint32); +begin + WindowManager.Windows[WND].visible:= not WindowManager.Windows[WND].visible; +end; + +procedure drawMouse; +var + x, y : uint32; + MX, MY : uint32; + +begin + MouseDrawActive:= true; + MX:= WindowManager.MousePos.X; + MY:= WindowManager.MousePos.Y; + WindowManager.MousePrev.x:= MX; + WindowManager.MousePrev.y:= MY; + mouse_dirt.TopLeft.x:= (MX div 8) - 2; + mouse_dirt.TopLeft.y:= (MY div 16) - 2; + mouse_dirt.BottomRight.x:= (MX div 8) + 2; + mouse_dirt.BottomRight.y:= (MY div 16) + 2; + if mouse_dirt.TopLeft.x < 0 then mouse_dirt.TopLeft.x:= 0; + if mouse_dirt.TopLeft.y < 0 then mouse_dirt.TopLeft.y:= 0; + if mouse_dirt.BottomRight.x > 159 then mouse_dirt.BottomRight.x:= 159; + if mouse_dirt.BottomRight.y > 63 then mouse_dirt.BottomRight.y:= 63; + MouseDrawActive:= false; +end; + +procedure redrawMatrix; +var + x, y, w: uint32; + +begin + if (WindowManager.MousePos.x <> WindowManager.MousePrev.x) OR (WindowManager.MousePos.y <> WindowManager.MousePrev.y) then begin + for y:=mouse_dirt.TopLeft.y to mouse_dirt.BottomRight.y do begin + for x:=mouse_dirt.TopLeft.x to mouse_dirt.BottomRight.x do begin + Console_Real[y][x].character:= char(1); + end; + end; + drawMouse; + end; + for y:=0 to 63 do begin + for x:=0 to 159 do begin + if (Console_Matrix[y][x].character <> Console_Real[y][x].character) or (Console_Matrix[y][x].attributes <> Console_Real[y][x].attributes) then begin + OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); + Console_Real[y][x]:= Console_Matrix[y][x]; + end; + end; + end; + outputCharToScreenSpace(char(0), WindowManager.MousePrev.x, WindowManager.MousePrev.y, $FFFF); +end; + +procedure setMousePosition(x : uint32; y : uint32); +begin + if MouseDrawActive then exit; + WindowManager.MousePos.X:= x; + WindowManager.MousePos.Y:= y; +end; + +procedure redrawWindows; +var + x, y, w : uint32; + WXL, WYL : sint32; + WXR, WYR : sint32; + STRC : uint32; + MIDP, STARTP : uint32; + +begin + for y:=0 to 63 do begin + for x:=0 to 159 do begin + Console_Matrix[y][x]:= Default_Char; + end; + end; + for w:=0 to MAX_WINDOWS-1 do begin + If WindowManager.Windows[w].visible then begin + if w <> 0 then begin + WXL:= WindowManager.Windows[w].WND_X - 1; + WYL:= WindowManager.Windows[w].WND_Y - 1; + WXR:= WindowManager.Windows[w].WND_X + WindowManager.Windows[w].WND_W + 1; + WYR:= WindowManager.Windows[w].WND_Y + WindowManager.Windows[w].WND_H + 1; + for y:=WYL to WYR do begin + Console_Matrix[y][WXL]:= Window_Border; + Console_Matrix[y][WXL-1]:= Window_Border; + Console_Matrix[y][WXR]:= Window_Border; + Console_Matrix[y][WXR+1]:= Window_Border; + Console_Real[y][WXL].Character:= char(3); + Console_Real[y][WXL-1].Character:= char(3); + Console_Real[y][WXR].Character:= char(3); + Console_Real[y][WXR+1].Character:= char(3); + end; + STRC:= 0; + MIDP:= (WXR + WXL) div 2; + STARTP:= MIDP - (StringSize(WindowManager.Windows[w].WND_NAME) div 2) - 1; + for x:=WXL to WXR do begin + Console_Matrix[WYL][x]:= Window_Border; + if (x >= STARTP) and (STRC < StringSize(WindowManager.Windows[w].WND_NAME)) then begin + Console_Matrix[WYL][x].character:= WindowManager.Windows[w].WND_NAME[STRC]; + inc(STRC); + end; + if x = WXR then begin + Console_Matrix[WYL][x].character:= 'x'; + end; + Console_Matrix[WYR][x]:= Window_Border; + Console_Real[WYL][x].Character:= char(3); + Console_Real[WYR][x].Character:= char(3); + end; + end; + for y:=WindowManager.Windows[w].WND_Y to WindowManager.Windows[w].WND_Y + WindowManager.Windows[w].WND_H do begin + if y > 63 then break; + for x:=WindowManager.Windows[w].WND_X to WindowManager.Windows[w].WND_X + WindowManager.Windows[w].WND_W do begin + if x > 159 then break; + Console_Matrix[y][x]:= WindowManager.Windows[w].buffer[y - WindowManager.Windows[w].WND_Y][x - WindowManager.Windows[w].WND_X]; + end; + end; + end; + end; + redrawMatrix; +end; + +procedure initWindows; +var + x, y, w : uint32; + +begin + Default_Char.Character:= ' '; + Default_Char.attributes:= Console_Properties.Default_Attribute; + Default_Char.visible:= true; + + Window_Border.Character:= ' '; + Window_Border.Attributes:= $0000FFFF; + Window_Border.visible:= true; + + for w:=0 to MAX_WINDOWS-1 do begin + WindowManager.Windows[w].visible:= false; + for y:=0 to 63 do begin + for x:=0 to 159 do begin + WindowManager.Windows[w].Buffer[y][x]:= Default_Char; + Console_Real[y][x].character:= char(1); + end; + end; + end; + + WindowManager.Windows[0].visible:= true; + WindowManager.Windows[0].WND_X:= 0; + WindowManager.Windows[0].WND_Y:= 0; + WindowManager.Windows[0].WND_H:= 63; + WindowManager.Windows[0].WND_W:= 159; + + WindowManager.Windows[1].visible:= false; + WindowManager.Windows[1].WND_X:= 20; + WindowManager.Windows[1].WND_W:= 90; + WindowManager.Windows[1].WND_Y:= 10; + WindowManager.Windows[1].WND_H:= 20; + WindowManager.Windows[1].WND_NAME:= 'ASURO TERMINAL'; +end; + +function getPixel(x : uint32; y : uint32) : uint16; +var + dest : puint16; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * 1280) + x; + getPixel:= dest^; +end; + +procedure drawPixel(x : uint32; y : uint32; color : uint16); +var + dest : puint16; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * 1280) + x; + dest^:= color; +end; + +function getPixel32(x : uint32; y : uint32) : uint32; +var + dest : puint16; + dest32 : puint32; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * 1280) + x; + dest32:= puint32(dest); + getPixel32:= dest32[0]; +end; + +procedure drawPixel32(x : uint32; y : uint32; pixel : uint32); +var + dest : puint16; + dest32 : puint32; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * 1280) + x; + dest32:= puint32(dest); + dest32[0]:= pixel; +end; + +function getPixel64(x : uint32; y : uint32) : uint64; +var + dest : puint16; + dest64 : puint64; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * 1280) + x; + dest64:= puint64(dest); + getPixel64:= dest64^; +end; + +procedure drawPixel64(x : uint32; y : uint32; pixel : uint64); +var + dest : puint16; + dest64 : puint64; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * 1280) + x; + dest64:= puint64(dest); + dest64^:= pixel; +end; + +procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16); +var + dest : puint16; + dest32 : puint32; + fgcolor32, bgcolor32 : uint32; + mask : puint32; + i : uint32; + +begin + if not ready then exit; + fgcolor32:= fgcolor OR (fgcolor SHL 16); + mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); + dest:= puint16(multibootinfo^.framebuffer_addr); + //dest:= puint16(windowmanager.getBuffer(0)); + dest:= dest + (y * 1280) + x; + dest32:= puint32(dest); + for i:=0 to 15 do begin + dest32[(i*640)+0]:= (dest32[(i*640)+0] AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); + dest32[(i*640)+1]:= (dest32[(i*640)+1] AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); + dest32[(i*640)+2]:= (dest32[(i*640)+2] AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); + dest32[(i*640)+3]:= (dest32[(i*640)+3] AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); + end; + //windowmanager.redraw; +end; + +procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16); +var + dest : puint16; + dest32 : puint32; + fgcolor32, bgcolor32 : uint32; + mask : puint32; + i : uint32; + +begin + if not ready then exit; + fgcolor32:= fgcolor OR (fgcolor SHL 16); + mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); + dest:= puint16(multibootinfo^.framebuffer_addr); + //dest:= puint16(windowmanager.getBuffer(0)); + dest:= dest + (y*(1280 * 16)) + (x * 8); + dest32:= puint32(dest); + for i:=0 to 15 do begin + dest32[(i*640)+0]:= (dest32[(i*640)+0] AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); + dest32[(i*640)+1]:= (dest32[(i*640)+1] AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); + dest32[(i*640)+2]:= (dest32[(i*640)+2] AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); + dest32[(i*640)+3]:= (dest32[(i*640)+3] AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); + end; + //windowmanager.redraw; +end; + +procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16); +var + dest : puint16; + dest32 : puint32; + fgcolor32, bgcolor32 : uint32; + mask : puint32; + i : uint32; + +begin + if not ready then exit; + fgcolor32:= fgcolor OR (fgcolor SHL 16); + bgcolor32:= bgcolor OR (bgcolor SHL 16); + mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); + dest:= puint16(multibootinfo^.framebuffer_addr); + //dest:= puint16(windowmanager.getBuffer(0)); + dest:= dest + (y*(1280 * 16)) + (x * 8); + dest32:= puint32(dest); + for i:=0 to 15 do begin + dest32[(i*640)+0]:= (bgcolor32 AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); + dest32[(i*640)+1]:= (bgcolor32 AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); + dest32[(i*640)+2]:= (bgcolor32 AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); + dest32[(i*640)+3]:= (bgcolor32 AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); + end; + //windowmanager.redraw; +end; + +procedure disable_cursor; +begin + outb($3D4, $0A); + outb($3D5, $20); +end; + +procedure init(); [public, alias: 'console_init']; +var + fb: puint32; + +Begin + fb:= puint32(uint32(multibootinfo^.framebuffer_addr)); + kpalloc(uint32(fb)); + initWindows; + Console_Properties.Default_Attribute:= console.combinecolors($FFFF, $0000); + console.clear(); + Ready:= True; +end; + +{ Default Console Write Functions } + +procedure clear(); [public, alias: 'console_clear']; +var + x,y: Byte; + +begin + for y:=0 to 63 do begin + for x:=0 to 159 do begin + WindowManager.Windows[DefaultWND].Buffer[y][x].Character:= ' '; + WindowManager.Windows[DefaultWND].Buffer[y][x].Attributes:= Console_Properties.Default_Attribute; + WindowManager.Windows[DefaultWND].row_dirty[y]:= true; + //Console_Matrix[y][x].Character:= ' '; + //Console_Matrix[y][x].Attributes:= Console_Properties.Default_Attribute; + //OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); + end; + end; + WindowManager.Windows[DefaultWND].Cursor.X:= 0; + WindowManager.Windows[DefaultWND].Cursor.Y:= 0; + redrawWindows; + //Console_Cursor.X:= 0; + //Console_Cursor.Y:= 0; +end; + +procedure writebin8ex(b : uint8; attributes: uint32); +var + Mask : PMask; + i : uint8; + +begin + Mask:= PMask(@b); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); + end; +end; + +procedure writebin16ex(b : uint16; attributes: uint32); +var + Mask : PMask; + i,j : uint8; + +begin + for j:=1 downto 0 do begin + Mask:= PMask(uint32(@b) + (1 * j)); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); + end; + end; +end; + +procedure writebin32ex(b : uint32; attributes: uint32); +var + Mask : PMask; + i,j : uint8; + +begin + for j:=3 downto 0 do begin + Mask:= PMask(uint32(@b) + (1 * j)); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); + end; + end; +end; + +procedure writebin8(b : uint8); +begin + writebin8ex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin16(b : uint16); +begin + writebin16ex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin32(b : uint32); +begin + writebin32ex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin8lnex(b : uint8; attributes: uint32); +begin + writebin8ex(b, attributes); + console._safeincrement_y(); +end; + +procedure writebin16lnex(b : uint16; attributes: uint32); +begin + writebin16ex(b, attributes); + console._safeincrement_y(); +end; + +procedure writebin32lnex(b : uint32; attributes: uint32); +begin + writebin32ex(b, attributes); + console._safeincrement_y(); +end; + +procedure writebin8ln(b : uint8); +begin + writebin8lnex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin16ln(b : uint16); +begin + writebin16lnex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin32ln(b : uint32); +begin + writebin32lnex(b, Console_Properties.Default_Attribute); +end; + +procedure setdefaultattribute(attribute: uint32); [public, alias: 'console_setdefaultattribute']; +begin + Console_Properties.Default_Attribute:= attribute; +end; + +procedure writechar(character: char); [public, alias: 'console_writechar']; +begin + console.writecharex(character, Console_Properties.Default_Attribute); +end; + +procedure writestring(str: PChar); [public, alias: 'console_writestring']; +begin + console.writestringex(str, Console_Properties.Default_Attribute); +end; + +procedure writeint(i: Integer); [public, alias: 'console_writeint']; +begin + console.writeintex(i, Console_Properties.Default_Attribute); +end; + +procedure writeword(i: DWORD); [public, alias: 'console_writeword']; +begin + console.writewordex(i, Console_Properties.Default_Attribute); +end; + +procedure writecharln(character: char); [public, alias: 'console_writecharln']; +begin + console.writecharlnex(character, Console_Properties.Default_Attribute); +end; + +procedure writestringln(str: PChar); [public, alias: 'console_writestringln']; +begin + console.writestringlnex(str, Console_Properties.Default_Attribute); +end; + +procedure writeintln(i: Integer); [public, alias: 'console_writeintln']; +begin + console.writeintlnex(i, Console_Properties.Default_Attribute); +end; + +procedure writewordln(i: DWORD); [public, alias: 'console_writewordln']; +begin + console.writewordlnex(i, Console_Properties.Default_Attribute); +end; + +procedure writecharex(character: char; attributes: uint32); [public, alias: 'console_writecharex']; +begin + WindowManager.Windows[DefaultWND].Buffer[WindowManager.Windows[DefaultWND].Cursor.Y][WindowManager.Windows[DefaultWND].Cursor.X].Character:= character; + WindowManager.Windows[DefaultWND].Buffer[WindowManager.Windows[DefaultWND].Cursor.Y][WindowManager.Windows[DefaultWND].Cursor.X].Attributes:= attributes; + //outputChar(character, Console_Cursor.X, Console_Cursor.Y, attributes SHR 16, attributes AND $FFFF); + //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Character:= character; + //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Attributes:= attributes; + WindowManager.Windows[DefaultWND].row_dirty[WindowManager.Windows[DefaultWND].Cursor.Y]:= true; + console._safeincrement_x(); +end; + +procedure writehexpair(b : uint8); +var + bn : Array[0..1] of uint8; + i : uint8; + +begin + bn[0]:= b SHR 4; + bn[1]:= b AND $0F; + for i:=0 to 1 do begin + case bn[i] of + 0:writestring('0'); + 1:writestring('1'); + 2:writestring('2'); + 3:writestring('3'); + 4:writestring('4'); + 5:writestring('5'); + 6:writestring('6'); + 7:writestring('7'); + 8:writestring('8'); + 9:writestring('9'); + 10:writestring('A'); + 11:writestring('B'); + 12:writestring('C'); + 13:writestring('D'); + 14:writestring('E'); + 15:writestring('F'); + end; + end; +end; + +procedure writehexex(i : dword; attributes: uint32); [public, alias: 'console_writehexex']; +var + Hex : Array[0..7] of Byte; + Res : DWORD; + Rem : DWORD; + c : Integer; + +begin + for c:=0 to 7 do begin + Hex[c]:= 0; + end; + c:=0; + Res:= i; + Rem:= Res mod 16; + while Res > 0 do begin + Hex[c]:= Rem; + Res:= Res div 16; + Rem:= Res mod 16; + c:=c+1; + end; + writestringex('0x', attributes); + for c:=7 downto 0 do begin + if Hex[c] <> 255 then begin + case Hex[c] of + 0:writecharex('0', attributes); + 1:writecharex('1', attributes); + 2:writecharex('2', attributes); + 3:writecharex('3', attributes); + 4:writecharex('4', attributes); + 5:writecharex('5', attributes); + 6:writecharex('6', attributes); + 7:writecharex('7', attributes); + 8:writecharex('8', attributes); + 9:writecharex('9', attributes); + 10:writecharex('A', attributes); + 11:writecharex('B', attributes); + 12:writecharex('C', attributes); + 13:writecharex('D', attributes); + 14:writecharex('E', attributes); + 15:writecharex('F', attributes); + else writecharex('?', attributes); + end; + end; + end; +end; + +procedure writehex(i : dword); [public, alias: 'console_writehex']; +begin + console.writehexex(i, Console_Properties.Default_Attribute); +end; + +procedure writehexlnex(i : dword; attributes: uint32); +begin + console.writehexex(i, attributes); + console._safeincrement_y(); +end; + +procedure writehexln(i : dword); +begin + writehexlnex(i, Console_Properties.Default_Attribute); +end; + +procedure Output(identifier : PChar; str : PChar); +begin + writestring('['); + writestring(identifier); + writestring('] '); + writestring(str); +end; + +procedure Outputln(identifier : PChar; str : PChar); +begin + Output(identifier, str); + writestringln(' '); +end; + +procedure writestringex(str: PChar; attributes: uint32); [public, alias: 'console_writestringex']; +var + i : integer; + +begin + i:= 0; + while (str[i] <> #0) do begin + console.writecharex(str[i], attributes); + i:=i+1; + end; +end; + +procedure writeintex(i: Integer; attributes: uint32); [public, alias: 'console_writeintex']; +var + buffer: array [0..11] of Char; + str: PChar; + digit: DWORD; + minus: Boolean; +begin + str := @buffer[11]; + str^ := #0; + if (i < 0) then begin + digit := -i; + minus := True; + end else begin + digit := i; + minus := False; + end; + repeat + Dec(str); + str^ := Char((digit mod 10) + Byte('0')); + digit := digit div 10; + until (digit = 0); + if (minus) then begin + Dec(str); + str^ := '-'; + end; + console.writestringex(str, attributes); +end; + +procedure writewordex(i: DWORD; attributes: uint32); [public, alias: 'console_writedwordex']; +var + buffer: array [0..11] of Char; + str: PChar; + digit: DWORD; +begin + for digit := 0 to 10 do buffer[digit] := '0'; + str := @buffer[11]; + str^ := #0; + digit := i; + repeat + Dec(str); + str^ := Char((digit mod 10) + Byte('0')); + digit := digit div 10; + until (digit = 0); + console.writestringex(@Buffer[0], attributes); +end; + +procedure writecharlnex(character: char; attributes: uint32); [public, alias: 'console_writecharlnex']; +begin + console.writecharex(character, attributes); + console._safeincrement_y(); +end; + +procedure writestringlnex(str: PChar; attributes: uint32); [public, alias: 'console_writestringlnex']; +begin + console.writestringex(str, attributes); + console._safeincrement_y(); +end; + +procedure writeintlnex(i: Integer; attributes: uint32); [public, alias: 'console_writeintlnex']; +begin + console.writeintex(i, attributes); + console._safeincrement_y(); +end; + +procedure writewordlnex(i: DWORD; attributes: uint32); [public, alias: 'console_writewordlnex']; +begin + console.writewordex(i, attributes); + console._safeincrement_y(); +end; + +function combinecolors(Foreground, Background: uint16): uint32; +begin + combinecolors:= (uint32(Foreground) SHL 16) OR Background; +end; + +procedure _update_cursor(); [public, alias: '_console_update_cursor']; +var + pos : word; + b : byte; + +begin + //pos:= (Console_Cursor.Y * 80) + Console_Cursor.X; + //outb($3D4, $0F); + //b:= pos and $00FF; + //outb($3D5, b); + //outb($3D4, $0E); + //b:= pos shr 8; + //outb($3D5, b); + if CONSOLE_SLOW_REDRAW then redrawWindows; + //sleep(1); +end; + +procedure backspace; +begin + Dec(WindowManager.Windows[DefaultWND].Cursor.X); + writechar(' '); + Dec(WindowManager.Windows[DefaultWND].Cursor.X); + _update_cursor(); +end; + +procedure _increment_x(); [public, alias: '_console_increment_x']; +begin + WindowManager.Windows[DefaultWND].Cursor.X:= WindowManager.Windows[DefaultWND].Cursor.X+1; + If WindowManager.Windows[DefaultWND].Cursor.X > WindowManager.Windows[DefaultWND].WND_W-1 then WindowManager.Windows[DefaultWND].Cursor.X:= 0; + console._update_cursor; + //Console_Cursor.X:= Console_Cursor.X+1; + //If Console_Cursor.X > 159 then Console_Cursor.X:= 0; + //console._update_cursor; +end; + +procedure _increment_y(); [public, alias: '_console_increment_y']; +begin + WindowManager.Windows[DefaultWND].Cursor.Y:= WindowManager.Windows[DefaultWND].Cursor.Y+1; + If WindowManager.Windows[DefaultWND].Cursor.Y > WindowManager.Windows[DefaultWND].WND_H-1 then begin + console._newline(); + WindowManager.Windows[DefaultWND].Cursor.Y:= WindowManager.Windows[DefaultWND].WND_H-1; + end; + console._update_cursor; + //Console_Cursor.Y:= Console_Cursor.Y+1; + //If Console_Cursor.Y > 63 then begin + // console._newline(); + // Console_Cursor.Y:= 63; + //end; + //console._update_cursor; +end; + +procedure _safeincrement_x(); [public, alias: '_console_safeincrement_x']; +begin + WindowManager.Windows[DefaultWND].Cursor.X:= WindowManager.Windows[DefaultWND].Cursor.X+1; + if WindowManager.Windows[DefaultWND].Cursor.X > WindowManager.Windows[DefaultWND].WND_W-1 then begin + console._safeincrement_y(); + end; + console._update_cursor; + //Console_Cursor.X:= Console_Cursor.X+1; + //If Console_Cursor.X > 159 then begin + // console._safeincrement_y(); + //end; + //console._update_cursor; +end; + +procedure _safeincrement_y(); [public, alias: '_console_safeincrement_y']; +begin + WindowManager.Windows[DefaultWND].Cursor.Y:= WindowManager.Windows[DefaultWND].Cursor.Y+1; + if WindowManager.Windows[DefaultWND].Cursor.Y > WindowManager.Windows[DefaultWND].WND_H-1 then begin + console._newline(); + WindowManager.Windows[DefaultWND].Cursor.Y:= WindowManager.Windows[DefaultWND].WND_H-1; + end; + WindowManager.Windows[DefaultWND].Cursor.X:= 0; + console._update_cursor; + //Console_Cursor.Y:= Console_Cursor.Y+1; + //If Console_Cursor.Y > 63 then begin + // console._newline(); + // Console_Cursor.Y:= 63; + //end; + //Console_Cursor.X:= 0; + //console._update_cursor; +end; + +procedure _newline(); [public, alias: '_console_newline']; +var + x, y : byte; + +begin + if WindowManager.Windows[DefaultWND].WND_W = 0 then exit; + if WindowManager.Windows[DefaultWND].WND_H = 0 then exit; + for x:=0 to WindowManager.Windows[DefaultWND].WND_W do begin + for y:=0 to WindowManager.Windows[DefaultWND].WND_H-1 do begin + WindowManager.Windows[DefaultWND].buffer[y][x]:= WindowManager.Windows[DefaultWND].buffer[y+1][x]; + WindowManager.Windows[DefaultWND].row_dirty[y]:= true; + //Console_Matrix[y][x]:= Console_Matrix[y+1][x]; + end; + end; + for x:=0 to WindowManager.Windows[DefaultWND].WND_W do begin + WindowManager.Windows[DefaultWND].buffer[WindowManager.Windows[DefaultWND].WND_H-1][x].Character:= ' '; + WindowManager.Windows[DefaultWND].buffer[WindowManager.Windows[DefaultWND].WND_H-1][x].Attributes:= $FFFF0000; + //Console_Matrix[63][x].Character:= ' '; + //Console_Matrix[63][x].Attributes:= $FFFF0000; + end; + //for y:=0 to 63 do begin + // for x:=0 to 159 do begin + // OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); + // end; + //end; + console._update_cursor; +end; + +{ WND Specific Console Draw Functions } + +procedure clearWND(WND : uint32); +var + x,y: Byte; + +begin + for y:=0 to 63 do begin + for x:=0 to 159 do begin + WindowManager.Windows[WND].Buffer[y][x].Character:= ' '; + WindowManager.Windows[WND].Buffer[y][x].Attributes:= Console_Properties.Default_Attribute; + WindowManager.Windows[WND].row_dirty[y]:= true; + //Console_Matrix[y][x].Character:= ' '; + //Console_Matrix[y][x].Attributes:= Console_Properties.Default_Attribute; + //OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); + end; + end; + WindowManager.Windows[WND].Cursor.X:= 0; + WindowManager.Windows[WND].Cursor.Y:= 0; + redrawWindows; + //Console_Cursor.X:= 0; + //Console_Cursor.Y:= 0; +end; + +procedure writebin8exWND(b : uint8; attributes: uint32; WND : uint32); +var + Mask : PMask; + i : uint8; + +begin + Mask:= PMask(@b); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharexWND('1', attributes, WND) else writecharexWND('0', attributes, WND); + end; +end; + +procedure writebin16exWND(b : uint16; attributes: uint32; WND : uint32); +var + Mask : PMask; + i,j : uint8; + +begin + for j:=1 downto 0 do begin + Mask:= PMask(uint32(@b) + (1 * j)); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharexWND('1', attributes, WND) else writecharexWND('0', attributes, WND); + end; + end; +end; + +procedure writebin32exWND(b : uint32; attributes: uint32; WND : uint32); +var + Mask : PMask; + i,j : uint8; + +begin + for j:=3 downto 0 do begin + Mask:= PMask(uint32(@b) + (1 * j)); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharexWND('1', attributes, WND) else writecharexWND('0', attributes, WND); + end; + end; +end; + +procedure writebin8WND(b : uint8; WND : uint32); +begin + writebin8exWND(b, Console_Properties.Default_Attribute, WND); +end; + +procedure writebin16WND(b : uint16; WND : uint32); +begin + writebin16exWND(b, Console_Properties.Default_Attribute, WND); +end; + +procedure writebin32WND(b : uint32; WND : uint32); +begin + writebin32exWND(b, Console_Properties.Default_Attribute, WND); +end; + +procedure writebin8lnexWND(b : uint8; attributes: uint32; WND : uint32); +begin + writebin8exWND(b, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writebin16lnexWND(b : uint16; attributes: uint32; WND : uint32); +begin + writebin16exWND(b, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writebin32lnexWND(b : uint32; attributes: uint32; WND : uint32); +begin + writebin32exWND(b, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writebin8lnWND(b : uint8; WND : uint32); +begin + writebin8lnexWND(b, Console_Properties.Default_Attribute, WND); +end; + +procedure writebin16lnWND(b : uint16; WND : uint32); +begin + writebin16lnexWND(b, Console_Properties.Default_Attribute, WND); +end; + +procedure writebin32lnWND(b : uint32; WND : uint32); +begin + writebin32lnexWND(b, Console_Properties.Default_Attribute, WND); +end; + +{procedure setdefaultattribute(attribute: uint32); [public, alias: 'console_setdefaultattribute']; +begin + Console_Properties.Default_Attribute:= attribute; +end;} + +procedure writecharWND(character: char; WND : uint32); +begin + console.writecharexWND(character, Console_Properties.Default_Attribute, WND); +end; + +procedure writestringWND(str: PChar; WND : uint32); +begin + console.writestringexWND(str, Console_Properties.Default_Attribute, WND); +end; + +procedure writeintWND(i: Integer; WND : uint32); +begin + console.writeintexWND(i, Console_Properties.Default_Attribute, WND); +end; + +procedure writewordWND(i: DWORD; WND : uint32); +begin + console.writewordexWND(i, Console_Properties.Default_Attribute, WND); +end; + +procedure writecharlnWND(character: char; WND : uint32); +begin + console.writecharlnexWND(character, Console_Properties.Default_Attribute, WND); +end; + +procedure writestringlnWND(str: PChar; WND : uint32); +begin + console.writestringlnexWND(str, Console_Properties.Default_Attribute, WND); +end; + +procedure writeintlnWND(i: Integer; WND : uint32); +begin + console.writeintlnexWND(i, Console_Properties.Default_Attribute, WND); +end; + +procedure writewordlnWND(i: DWORD; WND : uint32); +begin + console.writewordlnexWND(i, Console_Properties.Default_Attribute, WND); +end; + +procedure writecharexWND(character: char; attributes: uint32; WND : uint32); +begin + WindowManager.Windows[WND].Buffer[WindowManager.Windows[WND].Cursor.Y][WindowManager.Windows[WND].Cursor.X].Character:= character; + WindowManager.Windows[WND].Buffer[WindowManager.Windows[WND].Cursor.Y][WindowManager.Windows[WND].Cursor.X].Attributes:= attributes; + //outputChar(character, Console_Cursor.X, Console_Cursor.Y, attributes SHR 16, attributes AND $FFFF); + //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Character:= character; + //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Attributes:= attributes; + WindowManager.Windows[WND].row_dirty[WindowManager.Windows[WND].Cursor.Y]:= true; + console._safeincrement_x_WND(WND); +end; + +procedure writehexpairWND(b : uint8; WND : uint32); +var + bn : Array[0..1] of uint8; + i : uint8; + +begin + bn[0]:= b SHR 4; + bn[1]:= b AND $0F; + for i:=0 to 1 do begin + case bn[i] of + 0 :writestringWND('0', WND); + 1 :writestringWND('1', WND); + 2 :writestringWND('2', WND); + 3 :writestringWND('3', WND); + 4 :writestringWND('4', WND); + 5 :writestringWND('5', WND); + 6 :writestringWND('6', WND); + 7 :writestringWND('7', WND); + 8 :writestringWND('8', WND); + 9 :writestringWND('9', WND); + 10:writestringWND('A', WND); + 11:writestringWND('B', WND); + 12:writestringWND('C', WND); + 13:writestringWND('D', WND); + 14:writestringWND('E', WND); + 15:writestringWND('F', WND); + end; + end; +end; + +procedure writehexexWND(i : dword; attributes: uint32; WND : uint32); +var + Hex : Array[0..7] of Byte; + Res : DWORD; + Rem : DWORD; + c : Integer; + +begin + for c:=0 to 7 do begin + Hex[c]:= 0; + end; + c:=0; + Res:= i; + Rem:= Res mod 16; + while Res > 0 do begin + Hex[c]:= Rem; + Res:= Res div 16; + Rem:= Res mod 16; + c:=c+1; + end; + writestringexWND('0x', attributes, WND); + for c:=7 downto 0 do begin + if Hex[c] <> 255 then begin + case Hex[c] of + 0:writecharexWND('0', attributes, WND); + 1:writecharexWND('1', attributes, WND); + 2:writecharexWND('2', attributes, WND); + 3:writecharexWND('3', attributes, WND); + 4:writecharexWND('4', attributes, WND); + 5:writecharexWND('5', attributes, WND); + 6:writecharexWND('6', attributes, WND); + 7:writecharexWND('7', attributes, WND); + 8:writecharexWND('8', attributes, WND); + 9:writecharexWND('9', attributes, WND); + 10:writecharexWND('A', attributes, WND); + 11:writecharexWND('B', attributes, WND); + 12:writecharexWND('C', attributes, WND); + 13:writecharexWND('D', attributes, WND); + 14:writecharexWND('E', attributes, WND); + 15:writecharexWND('F', attributes, WND); + else writecharexWND('?', attributes, WND); + end; + end; + end; +end; + +procedure writehexWND(i : dword; WND : uint32); +begin + console.writehexexWND(i, Console_Properties.Default_Attribute, WND); +end; + +procedure writehexlnexWND(i : dword; attributes: uint32; WND : uint32); +begin + console.writehexexWND(i, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writehexlnWND(i : dword; WND : uint32); +begin + writehexlnexWND(i, Console_Properties.Default_Attribute, WND); +end; + +procedure OutputWND(identifier : PChar; str : PChar; WND : uint32); +begin + writestringWND('[', WND); + writestringWND(identifier, WND); + writestringWND('] ', WND); + writestringWND(str, WND); +end; + +procedure OutputlnWND(identifier : PChar; str : PChar; WND : uint32); +begin + OutputWND(identifier, str, WND); + writestringlnWND(' ', WND); +end; + +procedure writestringexWND(str: PChar; attributes: uint32; WND : uint32); +var + i : integer; + +begin + i:= 0; + while (str[i] <> #0) do begin + console.writecharexWND(str[i], attributes, WND); + i:=i+1; + end; +end; + +procedure writeintexWND(i: Integer; attributes: uint32; WND : uint32); +var + buffer: array [0..11] of Char; + str: PChar; + digit: DWORD; + minus: Boolean; +begin + str := @buffer[11]; + str^ := #0; + if (i < 0) then begin + digit := -i; + minus := True; + end else begin + digit := i; + minus := False; + end; + repeat + Dec(str); + str^ := Char((digit mod 10) + Byte('0')); + digit := digit div 10; + until (digit = 0); + if (minus) then begin + Dec(str); + str^ := '-'; + end; + console.writestringexWND(str, attributes, WND); +end; + +procedure writewordexWND(i: DWORD; attributes: uint32; WND : uint32); +var + buffer: array [0..11] of Char; + str: PChar; + digit: DWORD; +begin + for digit := 0 to 10 do buffer[digit] := '0'; + str := @buffer[11]; + str^ := #0; + digit := i; + repeat + Dec(str); + str^ := Char((digit mod 10) + Byte('0')); + digit := digit div 10; + until (digit = 0); + console.writestringexWND(@Buffer[0], attributes, WND); +end; + +procedure writecharlnexWND(character: char; attributes: uint32; WND : uint32); +begin + console.writecharexWND(character, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writestringlnexWND(str: PChar; attributes: uint32; WND : uint32); +begin + console.writestringexWND(str, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writeintlnexWND(i: Integer; attributes: uint32; WND : uint32); +begin + console.writeintexWND(i, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writewordlnexWND(i: DWORD; attributes: uint32; WND : uint32); +begin + console.writewordexWND(i, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure backspaceWND(WND : uint32); +begin + Dec(WindowManager.Windows[WND].Cursor.X); + writecharWND(' ', WND); + Dec(WindowManager.Windows[WND].Cursor.X); + _update_cursor(); +end; + +procedure _increment_x_WND(WND : uint32); +begin + WindowManager.Windows[WND].Cursor.X:= WindowManager.Windows[WND].Cursor.X+1; + If WindowManager.Windows[WND].Cursor.X > WindowManager.Windows[WND].WND_W-1 then WindowManager.Windows[WND].Cursor.X:= 0; + console._update_cursor; + //Console_Cursor.X:= Console_Cursor.X+1; + //If Console_Cursor.X > 159 then Console_Cursor.X:= 0; + //console._update_cursor; +end; + +procedure _increment_y_WND(WND : uint32); +begin + WindowManager.Windows[WND].Cursor.Y:= WindowManager.Windows[WND].Cursor.Y+1; + If WindowManager.Windows[WND].Cursor.Y > WindowManager.Windows[WND].WND_H-1 then begin + console._newlineWND(WND); + WindowManager.Windows[WND].Cursor.Y:= WindowManager.Windows[WND].WND_H-1; + end; + console._update_cursor; + //Console_Cursor.Y:= Console_Cursor.Y+1; + //If Console_Cursor.Y > 63 then begin + // console._newline(); + // Console_Cursor.Y:= 63; + //end; + //console._update_cursor; +end; + +procedure _safeincrement_x_WND(WND : uint32); +begin + WindowManager.Windows[WND].Cursor.X:= WindowManager.Windows[WND].Cursor.X+1; + if WindowManager.Windows[WND].Cursor.X > WindowManager.Windows[WND].WND_W-1 then begin + console._safeincrement_y_WND(WND); + end; + console._update_cursor; + //Console_Cursor.X:= Console_Cursor.X+1; + //If Console_Cursor.X > 159 then begin + // console._safeincrement_y(); + //end; + //console._update_cursor; +end; + +procedure _safeincrement_y_WND(WND : uint32); +begin + WindowManager.Windows[WND].Cursor.Y:= WindowManager.Windows[WND].Cursor.Y+1; + if WindowManager.Windows[WND].Cursor.Y > WindowManager.Windows[WND].WND_H-1 then begin + console._newlineWND(WND); + WindowManager.Windows[WND].Cursor.Y:= WindowManager.Windows[WND].WND_H-1; + end; + WindowManager.Windows[WND].Cursor.X:= 0; + console._update_cursor; + //Console_Cursor.Y:= Console_Cursor.Y+1; + //If Console_Cursor.Y > 63 then begin + // console._newline(); + // Console_Cursor.Y:= 63; + //end; + //Console_Cursor.X:= 0; + //console._update_cursor; +end; + +procedure _newlineWND(WND : uint32); +var + x, y : byte; + +begin + if WindowManager.Windows[WND].WND_W = 0 then exit; + if WindowManager.Windows[WND].WND_H = 0 then exit; + for x:=0 to WindowManager.Windows[WND].WND_W do begin + for y:=0 to WindowManager.Windows[WND].WND_H-1 do begin + WindowManager.Windows[WND].buffer[y][x]:= WindowManager.Windows[WND].buffer[y+1][x]; + WindowManager.Windows[WND].row_dirty[y]:= true; + //Console_Matrix[y][x]:= Console_Matrix[y+1][x]; + end; + end; + for x:=0 to WindowManager.Windows[WND].WND_W do begin + WindowManager.Windows[WND].buffer[WindowManager.Windows[WND].WND_H-1][x].Character:= ' '; + WindowManager.Windows[WND].buffer[WindowManager.Windows[WND].WND_H-1][x].Attributes:= $FFFF0000; + //Console_Matrix[63][x].Character:= ' '; + //Console_Matrix[63][x].Attributes:= $FFFF0000; + end; + //for y:=0 to 63 do begin + // for x:=0 to 159 do begin + // OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); + // end; + //end; + console._update_cursor; +end; + +end. diff --git a/src/backup/consoleBK3.pas b/src/backup/consoleBK3.pas index 9fad4fc3..f9f87fd5 100644 --- a/src/backup/consoleBK3.pas +++ b/src/backup/consoleBK3.pas @@ -1,1894 +1,1894 @@ -// Copyright 2021 Kieron Morris -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -{ ************************************************ - * Asuro - * Unit: console - * Description: Basic Console Output - ************************************************ - * Author: K Morris - * Contributors: - ************************************************ } - -unit console; - -interface - -uses - util, - bios_data_area, - multiboot, - fonts, - tracer; - -type - TColor = ( Black = $0, - Blue = $1, - Green = $2, - Aqua = $3, - Red = $4, - Purple = $5, - Yellow = $6, - White = $7, - Gray = $8, - lBlue = $9, - lGreen = $A, - lAqua = $B, - lRed = $C, - lPurple = $D, - lYellow = $E, - lWhite = $F ); - - TEventType = ( EVENT_DRAW, - EVENT_MOUSE_CLICK, - EVENT_MOUSE_MOVE, - EVENT_MOUSE_DOWN, - EVENT_MOUSE_UP, - EVENT_KEY_PRESSED, - EVENT_CLOSE, - EVENT_MINIMIZE, - EVENT_FOCUS, - EVENT_LOSE_FOCUS ); - -procedure init(); -procedure clear(); -procedure setdefaultattribute(attribute : uint32); - -procedure disable_cursor; - -procedure writechar(character : char); -procedure writecharln(character : char); -procedure writecharex(character : char; attributes: uint32); -procedure writecharlnex(character : char; attributes: uint32); - -procedure Output(identifier : PChar; str : PChar); -procedure Outputln(identifier : PChar; str : PChar); - -procedure writestring(str: PChar); -procedure writestringln(str: PChar); -procedure writestringex(str: PChar; attributes: uint32); -procedure writestringlnex(str: PChar; attributes: uint32); - -procedure writeint(i: Integer); -procedure writeintln(i: Integer); -procedure writeintex(i: Integer; attributes: uint32); -procedure writeintlnex(i: Integer; attributes: uint32); - -procedure writeword(i: DWORD); -procedure writewordln(i: DWORD); -procedure writewordex(i: DWORD; attributes: uint32); -procedure writewordlnex(i: DWORD; attributes: uint32); - -procedure writehexpair(b : uint8); -procedure writehex(i: DWORD); -procedure writehexln(i: DWORD); -procedure writehexex(i : DWORD; attributes: uint32); -procedure writehexlnex(i: DWORD; attributes: uint32); - -procedure writebin8(b : uint8); -procedure writebin8ln(b : uint8); -procedure writebin8ex(b : uint8; attributes: uint32); -procedure writebin8lnex(b : uint8; attributes: uint32); - -procedure writebin16(b : uint16); -procedure writebin16ln(b : uint16); -procedure writebin16ex(b : uint16; attributes: uint32); -procedure writebin16lnex(b : uint16; attributes: uint32); - -procedure writebin32(b : uint32); -procedure writebin32ln(b : uint32); -procedure writebin32ex(b : uint32; attributes: uint32); -procedure writebin32lnex(b : uint32; attributes: uint32); - -procedure backspace; - -function combinecolors(Foreground, Background : uint16) : uint32; - -procedure _increment_x(); -procedure _increment_y(); -procedure _safeincrement_y(); -procedure _safeincrement_x(); -procedure _newline(); - -{ WND Specific } - -procedure clearWND(WND : uint32); -procedure clearWNDEx(WND : uint32; attributes : uint32); - -procedure writecharWND(character : char; WND : uint32); -procedure writecharlnWND(character : char; WND : uint32); -procedure writecharexWND(character : char; attributes: uint32; WND : uint32); -procedure writecharlnexWND(character : char; attributes: uint32; WND : uint32); - -procedure OutputWND(identifier : PChar; str : PChar; WND : uint32); -procedure OutputlnWND(identifier : PChar; str : PChar; WND : uint32); - -procedure writestringWND(str: PChar; WND : uint32); -procedure writestringlnWND(str: PChar; WND : uint32); -procedure writestringexWND(str: PChar; attributes: uint32; WND : uint32); -procedure writestringlnexWND(str: PChar; attributes: uint32; WND : uint32); - -procedure writeintWND(i: Integer; WND : uint32); -procedure writeintlnWND(i: Integer; WND : uint32); -procedure writeintexWND(i: Integer; attributes: uint32; WND : uint32); -procedure writeintlnexWND(i: Integer; attributes: uint32; WND : uint32); - -procedure writewordWND(i: DWORD; WND : uint32); -procedure writewordlnWND(i: DWORD; WND : uint32); -procedure writewordexWND(i: DWORD; attributes: uint32; WND : uint32); -procedure writewordlnexWND(i: DWORD; attributes: uint32; WND : uint32); - -procedure writehexpairWND(b : uint8; WND : uint32); -procedure writehexWND(i: DWORD; WND : uint32); -procedure writehexlnWND(i: DWORD; WND : uint32); -procedure writehexexWND(i : DWORD; attributes: uint32; WND : uint32); -procedure writehexlnexWND(i: DWORD; attributes: uint32; WND : uint32); - -procedure writebin8WND(b : uint8; WND : uint32); -procedure writebin8lnWND(b : uint8; WND : uint32); -procedure writebin8exWND(b : uint8; attributes: uint32; WND : uint32); -procedure writebin8lnexWND(b : uint8; attributes: uint32; WND : uint32); - -procedure writebin16WND(b : uint16; WND : uint32); -procedure writebin16lnWND(b : uint16; WND : uint32); -procedure writebin16exWND(b : uint16; attributes: uint32; WND : uint32); -procedure writebin16lnexWND(b : uint16; attributes: uint32; WND : uint32); - -procedure writebin32WND(b : uint32; WND : uint32); -procedure writebin32lnWND(b : uint32; WND : uint32); -procedure writebin32exWND(b : uint32; attributes: uint32; WND : uint32); -procedure writebin32lnexWND(b : uint32; attributes: uint32; WND : uint32); - -procedure backspaceWND(WND : uint32); -procedure setCursorPosWND(x : uint32; y : uint32; WND : HWND); - -procedure _increment_x_WND(WND : uint32); -procedure _increment_y_WND(WND : uint32); -procedure _safeincrement_y_WND(WND : uint32); -procedure _safeincrement_x_WND(WND : uint32); -procedure _newlineWND(WND : uint32); - -{ Drawing } - -procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16); -procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16); -procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16); - -function getPixel(x : uint32; y : uint32) : uint16; -procedure drawPixel(x : uint32; y : uint32; color : uint16); -function getPixel32(x : uint32; y : uint32) : uint32; -procedure drawPixel32(x : uint32; y : uint32; pixel : uint32); -function getPixel64(x : uint32; y : uint32) : uint64; -procedure drawPixel64(x : uint32; y : uint32; pixel : uint64); - -{ Windows Methods } - -procedure setMousePosition(x : uint32; y : uint32); -procedure redrawWindows; -procedure toggleWNDVisible(WND : uint32); -procedure setWNDVisible(WND : uint32; visible : boolean); -procedure closeAllWindows; -function newWindow(x : uint32; y : uint32; Width : uint32; Height : uint32; Title : PChar) : HWND; -function registerEventHandler(WND : HWND; Event : TEventType; Handler : void) : boolean; -procedure forceQuitAll; -procedure closeWindow(WND : HWND); -procedure bordersEnabled(WND : HWND; enabled : boolean); -procedure SetShellWindow(WND : HWND; b : boolean); -function getWindowName(WND : HWND) : pchar; - -procedure _MouseDown(); -procedure _MouseUp(); -procedure _MouseClick(left : boolean); - -implementation - -uses - lmemorymanager, strings, keyboard, serial, terminal; - -const - MAX_WINDOWS = 255; - DefaultWND = 0; - -type - TConsoleProperties = record - Default_Attribute : uint32; - end; - - TCharacter = bitpacked record - Character : Char; - attributes : uint32; - visible : boolean; - end; - PCharacter = ^TCharacter; - - TVideoMemory = Array[0..1999] of TCharacter; - PVideoMemory = ^TVideoMemory; - - TMask = Array[0..63] of Array[0..159] of uint32; - - T2DVideoMemory = Array[0..63] of Array[0..159] of TCharacter; - P2DVideoMemory = ^T2DVideoMemory; - - TMouseCoord = record - X : sint32; - Y : sint32; - end; - - TCoord = record - X : Byte; - Y : Byte; - end; - - TDrawHook = procedure(); - TMouseClickHook = procedure(x : uint32; y : uint32; left : boolean); - TMouseMoveHook = procedure(x : uint32; y : uint32); - TMouseDownHook = procedure(x : uint32; y : uint32); - TMouseUpHook = procedure(x : uint32; y : uint32); - TKeyPressedHook = procedure(info : TKeyInfo); - TCloseHook = procedure(); - TMinimizeHook = procedure(); - TFocusHook = procedure(); - TLoseFocusHook = procedure(); - - THooks = record - OnDraw : TDrawHook; - OnMouseClick : TMouseClickHook; - OnMouseMove : TMouseMoveHook; - OnMouseDown : TMouseDownHook; - OnMouseUp : TMouseUpHook; - OnKeyPressed : TKeyPressedHook; - OnClose : TCloseHook; - OnMinimize : TMinimizeHook; - OnFocus : TFocusHook; - OnLoseFocus : TLoseFocusHook; - end; - - TWindow = record - visible : boolean; - buffer : T2DVideoMemory; - row_dirty : Array[0..63] of Boolean; - WND_X : uint32; - WND_Y : uint32; - WND_W : uint32; - WND_H : uint32; - Cursor : TCoord; - WND_NAME : PChar; - Hooks : THooks; - Closed : boolean; - Border : boolean; - ShellWND : boolean; - end; - PWindow = ^TWindow; - - TWindows = Array[0..MAX_WINDOWS-1] of PWindow; - - TWindowManager = record - Windows : TWindows; - Z_Order : TWindows; - Z_Locked : TWindows; - MousePos : TMouseCoord; - MousePrev : TMouseCoord; - end; - - TMouseDirt = record - TopLeft : TMouseCoord; - BottomRight : TMouseCoord; - end; - -var - Console_Properties : TConsoleProperties; //Generic Properties - Console_Real : T2DVideoMemory; //The real state of the Console/TUI - Console_Matrix : T2DVideoMemory; //The next buffer to be written - Console_Cursor : TCoord; //The text cursor position - WindowManager : TWindowManager; //Window Manager - Ready : Boolean = false; //Is the unit ready for use? - MouseDrawActive : Boolean = false; //Is the Mouse currently being updated? - mouse_dirt : TMouseDirt; //Character Cell(s) the mouse occupies, these need to be rewritten on mouse move. - Window_Border : TCharacter; - Default_Char : TCharacter; - WindowTitleMask : TMask; - WindowMask : TMask; - MouseDown : Boolean; - WindowMovePos : TMouseCoord; - MovingWindow : uint32; - - -procedure _MouseDown(); -begin - MouseDown:= true; -end; - -procedure _MouseUp(); -begin - MouseDown:= false; -end; - -procedure _MouseClick(left : boolean); -begin - -end; - -procedure AddToZOrder(WND : HWND); -begin - -end; - -procedure RemoveFromZOrder(WND : HWND); -begin - -end; - -procedure FocusZOrder(WND : HWND); -begin - -end; - -function getWindowName(WND : HWND) : pchar; -var - Window : PWindow; - -begin - getWindowName:= nil; - Window:= WindowManager.Windows[WND]; - if Window <> nil then begin - if Window^.ShellWND then begin - getWindowName:= Window^.WND_NAME; - end; - end; -end; - -procedure SetShellWindow(WND : HWND; b : boolean); -var - Window : PWindow; - -begin - Window:= WindowManager.Windows[WND]; - if Window <> nil then begin - Window^.ShellWND:= b; - end; -end; - -procedure bordersEnabled(WND : HWND; enabled : boolean); -var - Window : PWindow; - -begin - Window:= WindowManager.Windows[WND]; - if Window <> nil then begin - Window^.Border:= enabled; - end; -end; - -procedure setCursorPosWND(x : uint32; y : uint32; WND : HWND); -var - Window : PWindow; - -begin - Window:= WindowManager.Windows[WND]; - if Window <> nil then begin - while x > 159 do dec(x); - while y > 63 do dec(y); - Window^.Cursor.x:= x; - Window^.Cursor.y:= y; - end; -end; - -procedure setWindowPosition(WND : HWND; x, y : sint32); -var - Window : PWindow; - nx, ny : sint32; - -begin - Window:= WindowManager.Windows[WND]; - If Window <> nil then begin - nx:= x; - ny:= y; - if Window^.Border then begin - if nx < 2 then nx:= 2; - if ny < 1 then ny:= 1; - while (nx + Window^.WND_W + 2) > 159 do begin - dec(nx); - end; - while (ny + Window^.WND_H + 1) > 63 do begin - dec(ny); - end; - end else begin - if nx < 0 then nx:= 0; - if ny < 0 then ny:= 0; - while (nx + Window^.WND_W) > 159 do begin - dec(nx); - end; - while (ny + Window^.WND_H) > 63 do begin - dec(ny); - end; - end; - Window^.WND_X:= nx; - Window^.WND_Y:= ny; - end; -end; - -function registerEventHandler(WND : HWND; Event : TEventType; Handler : void) : boolean; -begin - registerEventHandler:= true; - if WindowManager.Windows[WND] <> nil then begin - case Event of - EVENT_DRAW : WindowManager.Windows[WND]^.Hooks.OnDraw:= TDrawHook(Handler); - EVENT_MOUSE_CLICK : WindowManager.Windows[WND]^.Hooks.OnMouseClick:= TMouseClickHook(Handler); - EVENT_MOUSE_MOVE : WindowManager.Windows[WND]^.Hooks.OnMouseMove:= TMouseMoveHook(Handler); - EVENT_MOUSE_DOWN : WindowManager.Windows[WND]^.Hooks.OnMouseDown:= TMouseDownHook(Handler); - EVENT_MOUSE_UP : WindowManager.Windows[WND]^.Hooks.OnMouseUp:= TMouseUpHook(Handler); - EVENT_KEY_PRESSED : WindowManager.Windows[WND]^.Hooks.OnKeyPressed:= TKeyPressedHook(Handler); - EVENT_CLOSE : WindowManager.Windows[WND]^.Hooks.OnClose:= TCloseHook(Handler); - EVENT_MINIMIZE : WindowManager.Windows[WND]^.Hooks.OnMinimize:= TMinimizeHook(Handler); - EVENT_FOCUS : WindowManager.Windows[WND]^.Hooks.OnFocus:= TFocusHook(Handler); - EVENT_LOSE_FOCUS : WindowManager.Windows[WND]^.Hooks.OnLoseFocus:= TLoseFocusHook(Handler); - else registerEventHandler:= false; - end; - end else begin - registerEventHandler:= false; - end; -end; - -function newWindow(x : uint32; y : uint32; Width : uint32; Height : uint32; Title : PChar) : HWND; -var - idx : uint32; - WND : PWindow; - -begin - newWindow:= 0; - for idx:=1 to MAX_WINDOWS-1 do begin - if WindowManager.Windows[idx] = nil then begin - newWindow:= idx; - break; - end; - end; - if newWindow <> 0 then begin - WND:= PWindow(kalloc(sizeof(TWindow))); - WND^.WND_NAME:= StringCopy(Title); - WND^.WND_X:= x; - WND^.WND_Y:= y; - WND^.WND_W:= Width; - WND^.WND_H:= Height; - WND^.Cursor.x:= 0; - WND^.Cursor.y:= 0; - WND^.visible:= true; - WND^.Closed:= false; - WND^.Border:= true; - WND^.ShellWND:= true; - WND^.Hooks.OnDraw := nil; - WND^.Hooks.OnMouseClick := nil; - WND^.Hooks.OnMouseMove := nil; - WND^.Hooks.OnMouseDown := nil; - WND^.Hooks.OnMouseUp := nil; - WND^.Hooks.OnKeyPressed := nil; - WND^.Hooks.OnClose := nil; - WND^.Hooks.OnMinimize := nil; - WND^.Hooks.OnFocus := nil; - WND^.Hooks.OnLoseFocus := nil; - WindowManager.Windows[newWindow]:= WND; - end; -end; - -procedure forceQuitAll; -var - i : uint32; - WND : PWindow; - -begin - for i:=1 to MAX_WINDOWS-1 do begin - if WindowManager.Windows[i] <> nil then begin - WND:= WindowManager.Windows[i]; - WindowManager.Windows[i]:= nil; - kfree(void(WND^.WND_NAME)); - kfree(void(WND)); - end; - end; -end; - - -procedure _closeWindow(WND : HWND); -var - WNDCopy : PWindow; - -begin - if WindowManager.Windows[WND] <> nil then begin - WNDCopy:= WindowManager.Windows[WND]; - WindowManager.Windows[WND]:= nil; - if WNDCopy^.Hooks.OnClose <> nil then WNDCopy^.Hooks.OnClose(); - kfree(void(WNDCopy^.WND_NAME)); - kfree(void(WNDCopy)); - end; -end; - -procedure closeWindow(WND : HWND); -begin - if WindowManager.Windows[WND] <> nil then begin - WindowManager.Windows[WND]^.Closed:= True; - end; -end; - -procedure closeAllWindows; -var - i : uint32; - -begin - for i:=1 to MAX_WINDOWS-1 do begin - setWNDVisible(i, false); - end; -end; - -procedure setWNDVisible(WND : uint32; visible : boolean); -begin - if WindowManager.Windows[WND] <> nil then begin - WindowManager.Windows[WND]^.visible:= visible; - end; -end; - -procedure toggleWNDVisible(WND : uint32); -begin - if WindowManager.Windows[DefaultWND] <> nil then begin - WindowManager.Windows[WND]^.visible:= not WindowManager.Windows[WND]^.visible; - end; -end; - -function MouseYToTile(Y : uint32) : uint32; -begin - MouseYToTile:= Y div 16; -end; - -function MouseXToTile(X : uint32) : uint32; -begin - MouseXToTile:= X div 8; -end; - -procedure drawMouse; -var - x, y : uint32; - MX, MY : uint32; - -begin - MouseDrawActive:= true; - MX:= WindowManager.MousePos.X; - MY:= WindowManager.MousePos.Y; - WindowManager.MousePrev.x:= MX; - WindowManager.MousePrev.y:= MY; - mouse_dirt.TopLeft.x:= (MX div 8) - 2; - mouse_dirt.TopLeft.y:= (MY div 16) - 2; - mouse_dirt.BottomRight.x:= (MX div 8) + 2; - mouse_dirt.BottomRight.y:= (MY div 16) + 2; - if mouse_dirt.TopLeft.x < 0 then mouse_dirt.TopLeft.x:= 0; - if mouse_dirt.TopLeft.y < 0 then mouse_dirt.TopLeft.y:= 0; - if mouse_dirt.BottomRight.x > 159 then mouse_dirt.BottomRight.x:= 159; - if mouse_dirt.BottomRight.y > 63 then mouse_dirt.BottomRight.y:= 63; - MouseDrawActive:= false; -end; - -procedure redrawMatrix; -var - x, y, w: uint32; - -begin - if (WindowManager.MousePos.x <> WindowManager.MousePrev.x) OR (WindowManager.MousePos.y <> WindowManager.MousePrev.y) then begin - for y:=mouse_dirt.TopLeft.y to mouse_dirt.BottomRight.y do begin - for x:=mouse_dirt.TopLeft.x to mouse_dirt.BottomRight.x do begin - Console_Real[y][x].character:= char(1); - end; - end; - drawMouse; - end; - for y:=0 to 63 do begin - for x:=0 to 159 do begin - if (Console_Matrix[y][x].character <> Console_Real[y][x].character) or (Console_Matrix[y][x].attributes <> Console_Real[y][x].attributes) then begin - OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); - Console_Real[y][x]:= Console_Matrix[y][x]; - end; - end; - end; - outputCharToScreenSpace(char(0), WindowManager.MousePrev.x, WindowManager.MousePrev.y, $FFFF); -end; - -procedure setMousePosition(x : uint32; y : uint32); -begin - if MouseDrawActive then exit; - WindowManager.MousePos.X:= x; - WindowManager.MousePos.Y:= y; -end; - -procedure redrawWindows; -var - x, y, w : uint32; - WXL, WYL : sint32; - WXR, WYR : sint32; - STRC : uint32; - MIDP, STARTP : uint32; - deltax, deltay : sint32; - -begin - for y:=0 to 63 do begin - for x:=0 to 159 do begin - Console_Matrix[y][x]:= Default_Char; - end; - end; - if MouseDown then begin - if MovingWindow = 0 then begin - MovingWindow:= WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; - if MovingWindow <> 0 then begin - WindowMovePos.x:= MouseXToTile(WindowManager.MousePrev.X); - WindowMovePos.y:= MouseYToTile(WindowManager.MousePrev.Y); - end; - end; - if MovingWindow <> 0 then begin - if WindowManager.Windows[MovingWindow] <> nil then begin - deltax:= WindowMovePos.x - MouseXToTile(WindowManager.MousePrev.X); - deltay:= WindowMovePos.y - MouseYToTile(WindowManager.MousePrev.Y); - WindowMovePos.x:= MouseXToTile(WindowManager.MousePrev.X); - WindowMovePos.y:= MouseYToTile(WindowManager.MousePrev.Y); - setWindowPosition(MovingWindow, WindowManager.Windows[MovingWindow]^.WND_X - deltax, WindowManager.Windows[MovingWindow]^.WND_Y - deltay); - //WindowManager.Windows[MovingWindow]^.WND_X:= WindowManager.Windows[MovingWindow]^.WND_X - deltax; - //WindowManager.Windows[MovingWindow]^.WND_Y:= WindowManager.Windows[MovingWindow]^.WND_Y - deltay; - end; - end; - end else begin - MovingWindow:= 0; - end; - for w:=0 to MAX_WINDOWS-1 do begin - if WindowManager.Windows[w] <> nil then begin - if w <> 0 then begin - if WindowManager.Windows[w]^.Hooks.OnDraw <> nil then WindowManager.Windows[w]^.Hooks.OnDraw(); - end; - If WindowManager.Windows[w]^.visible then begin - if WindowManager.Windows[w]^.Border then begin - WXL:= WindowManager.Windows[w]^.WND_X - 1; - WYL:= WindowManager.Windows[w]^.WND_Y - 1; - WXR:= WindowManager.Windows[w]^.WND_X + WindowManager.Windows[w]^.WND_W + 1; - WYR:= WindowManager.Windows[w]^.WND_Y + WindowManager.Windows[w]^.WND_H + 1; - for y:=WYL to WYR do begin - Console_Matrix[y][WXL]:= Window_Border; - Console_Matrix[y][WXL-1]:= Window_Border; - Console_Matrix[y][WXR]:= Window_Border; - Console_Matrix[y][WXR+1]:= Window_Border; - Console_Real[y][WXL].Character:= char(3); - Console_Real[y][WXL-1].Character:= char(3); - Console_Real[y][WXR].Character:= char(3); - Console_Real[y][WXR+1].Character:= char(3); - end; - STRC:= 0; - MIDP:= (WXR + WXL) div 2; - STARTP:= MIDP - (StringSize(WindowManager.Windows[w]^.WND_NAME) div 2) - 1; - for x:=WXL to WXR do begin - Console_Matrix[WYL][x]:= Window_Border; - WindowTitleMask[WYL][x]:= w; - if (x >= STARTP) and (STRC < StringSize(WindowManager.Windows[w]^.WND_NAME)) then begin - Console_Matrix[WYL][x].character:= WindowManager.Windows[w]^.WND_NAME[STRC]; - inc(STRC); - end; - if x = WXR then begin - Console_Matrix[WYL][x].character:= 'x'; - end; - Console_Matrix[WYR][x]:= Window_Border; - Console_Real[WYL][x].Character:= char(3); - Console_Real[WYR][x].Character:= char(3); - end; - end; - for y:=WindowManager.Windows[w]^.WND_Y to WindowManager.Windows[w]^.WND_Y + WindowManager.Windows[w]^.WND_H do begin - if y > 63 then break; - for x:=WindowManager.Windows[w]^.WND_X to WindowManager.Windows[w]^.WND_X + WindowManager.Windows[w]^.WND_W do begin - if x > 159 then break; - Console_Matrix[y][x]:= WindowManager.Windows[w]^.buffer[y - WindowManager.Windows[w]^.WND_Y][x - WindowManager.Windows[w]^.WND_X]; - WindowTitleMask[y][x]:= 0; - WindowMask[y][x]:= w; - end; - end; - end; - if WindowManager.Windows[w]^.Closed then _closeWindow(w); - end; - end; - redrawMatrix; -end; - -procedure initWindows; -var - x, y, w : uint32; - WND : PWindow; - -begin - Default_Char.Character:= ' '; - Default_Char.attributes:= Console_Properties.Default_Attribute; - Default_Char.visible:= true; - - Window_Border.Character:= ' '; - Window_Border.Attributes:= console.combinecolors($01C3, $07EE);//$0000FFFF; - Window_Border.visible:= true; - - For w:=0 to MAX_WINDOWS-1 do begin - WindowManager.Windows[w]:= nil; - end; - - WND:= PWindow(kalloc(sizeof(TWindow))); - WND^.WND_NAME:= 'Asuro'; - WND^.WND_X:= 0; - WND^.WND_Y:= 0; - WND^.WND_W:= 159; - WND^.WND_H:= 63; - WND^.Cursor.x:= 0; - WND^.Cursor.y:= 0; - WND^.visible:= true; - WND^.Closed:= false; - WND^.Border:= false; - WND^.ShellWND:= false; - WindowManager.Windows[0]:= WND; -end; - -function getPixel(x : uint32; y : uint32) : uint16; -var - dest : puint16; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * 1280) + x; - getPixel:= dest^; -end; - -procedure drawPixel(x : uint32; y : uint32; color : uint16); -var - dest : puint16; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * 1280) + x; - dest^:= color; -end; - -function getPixel32(x : uint32; y : uint32) : uint32; -var - dest : puint16; - dest32 : puint32; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * 1280) + x; - dest32:= puint32(dest); - getPixel32:= dest32[0]; -end; - -procedure drawPixel32(x : uint32; y : uint32; pixel : uint32); -var - dest : puint16; - dest32 : puint32; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * 1280) + x; - dest32:= puint32(dest); - dest32[0]:= pixel; -end; - -function getPixel64(x : uint32; y : uint32) : uint64; -var - dest : puint16; - dest64 : puint64; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * 1280) + x; - dest64:= puint64(dest); - getPixel64:= dest64^; -end; - -procedure drawPixel64(x : uint32; y : uint32; pixel : uint64); -var - dest : puint16; - dest64 : puint64; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * 1280) + x; - dest64:= puint64(dest); - dest64^:= pixel; -end; - -procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16); -var - dest : puint16; - dest32 : puint32; - fgcolor32, bgcolor32 : uint32; - mask : puint32; - i : uint32; - -begin - if not ready then exit; - fgcolor32:= fgcolor OR (fgcolor SHL 16); - mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); - dest:= puint16(multibootinfo^.framebuffer_addr); - //dest:= puint16(windowmanager.getBuffer(0)); - dest:= dest + (y * 1280) + x; - dest32:= puint32(dest); - for i:=0 to 15 do begin - dest32[(i*640)+0]:= (dest32[(i*640)+0] AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); - dest32[(i*640)+1]:= (dest32[(i*640)+1] AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); - dest32[(i*640)+2]:= (dest32[(i*640)+2] AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); - dest32[(i*640)+3]:= (dest32[(i*640)+3] AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); - end; - //windowmanager.redraw; -end; - -procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16); -var - dest : puint16; - dest32 : puint32; - fgcolor32, bgcolor32 : uint32; - mask : puint32; - i : uint32; - -begin - if not ready then exit; - fgcolor32:= fgcolor OR (fgcolor SHL 16); - mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); - dest:= puint16(multibootinfo^.framebuffer_addr); - //dest:= puint16(windowmanager.getBuffer(0)); - dest:= dest + (y*(1280 * 16)) + (x * 8); - dest32:= puint32(dest); - for i:=0 to 15 do begin - dest32[(i*640)+0]:= (dest32[(i*640)+0] AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); - dest32[(i*640)+1]:= (dest32[(i*640)+1] AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); - dest32[(i*640)+2]:= (dest32[(i*640)+2] AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); - dest32[(i*640)+3]:= (dest32[(i*640)+3] AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); - end; - //windowmanager.redraw; -end; - -procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16); -var - dest : puint16; - dest32 : puint32; - fgcolor32, bgcolor32 : uint32; - mask : puint32; - i : uint32; - -begin - if not ready then exit; - fgcolor32:= fgcolor OR (fgcolor SHL 16); - bgcolor32:= bgcolor OR (bgcolor SHL 16); - mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); - dest:= puint16(multibootinfo^.framebuffer_addr); - //dest:= puint16(windowmanager.getBuffer(0)); - dest:= dest + (y*(1280 * 16)) + (x * 8); - dest32:= puint32(dest); - for i:=0 to 15 do begin - dest32[(i*640)+0]:= (bgcolor32 AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); - dest32[(i*640)+1]:= (bgcolor32 AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); - dest32[(i*640)+2]:= (bgcolor32 AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); - dest32[(i*640)+3]:= (bgcolor32 AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); - end; - //windowmanager.redraw; -end; - -procedure disable_cursor; -begin - outb($3D4, $0A); - outb($3D5, $20); -end; - -procedure init(); [public, alias: 'console_init']; -var - fb: puint32; - -Begin - fb:= puint32(uint32(multibootinfo^.framebuffer_addr)); - kpalloc(uint32(fb)); - initWindows; - Console_Properties.Default_Attribute:= console.combinecolors($FFFF, $0000); - console.clear(); - Ready:= True; -end; - -{ Default Console Write Functions } - -procedure clear(); [public, alias: 'console_clear']; -var - x,y: Byte; - -begin - if WindowManager.Windows[DefaultWND] <> nil then begin - for y:=0 to 63 do begin - for x:=0 to 159 do begin - WindowManager.Windows[DefaultWND]^.Buffer[y][x].Character:= ' '; - WindowManager.Windows[DefaultWND]^.Buffer[y][x].Attributes:= Console_Properties.Default_Attribute; - WindowManager.Windows[DefaultWND]^.row_dirty[y]:= true; - //Console_Matrix[y][x].Character:= ' '; - //Console_Matrix[y][x].Attributes:= Console_Properties.Default_Attribute; - //OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); - end; - end; - WindowManager.Windows[DefaultWND]^.Cursor.X:= 0; - WindowManager.Windows[DefaultWND]^.Cursor.Y:= 0; - //redrawWindows; - end; - //Console_Cursor.X:= 0; - //Console_Cursor.Y:= 0; -end; - -procedure writebin8ex(b : uint8; attributes: uint32); -var - Mask : PMask; - i : uint8; - -begin - Mask:= PMask(@b); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); - end; -end; - -procedure writebin16ex(b : uint16; attributes: uint32); -var - Mask : PMask; - i,j : uint8; - -begin - for j:=1 downto 0 do begin - Mask:= PMask(uint32(@b) + (1 * j)); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); - end; - end; -end; - -procedure writebin32ex(b : uint32; attributes: uint32); -var - Mask : PMask; - i,j : uint8; - -begin - for j:=3 downto 0 do begin - Mask:= PMask(uint32(@b) + (1 * j)); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); - end; - end; -end; - -procedure writebin8(b : uint8); -begin - writebin8ex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin16(b : uint16); -begin - writebin16ex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin32(b : uint32); -begin - writebin32ex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin8lnex(b : uint8; attributes: uint32); -begin - writebin8ex(b, attributes); - console._safeincrement_y(); -end; - -procedure writebin16lnex(b : uint16; attributes: uint32); -begin - writebin16ex(b, attributes); - console._safeincrement_y(); -end; - -procedure writebin32lnex(b : uint32; attributes: uint32); -begin - writebin32ex(b, attributes); - console._safeincrement_y(); -end; - -procedure writebin8ln(b : uint8); -begin - writebin8lnex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin16ln(b : uint16); -begin - writebin16lnex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin32ln(b : uint32); -begin - writebin32lnex(b, Console_Properties.Default_Attribute); -end; - -procedure setdefaultattribute(attribute: uint32); [public, alias: 'console_setdefaultattribute']; -begin - Console_Properties.Default_Attribute:= attribute; -end; - -procedure writechar(character: char); [public, alias: 'console_writechar']; -begin - console.writecharex(character, Console_Properties.Default_Attribute); -end; - -procedure writestring(str: PChar); [public, alias: 'console_writestring']; -begin - console.writestringex(str, Console_Properties.Default_Attribute); -end; - -procedure writeint(i: Integer); [public, alias: 'console_writeint']; -begin - console.writeintex(i, Console_Properties.Default_Attribute); -end; - -procedure writeword(i: DWORD); [public, alias: 'console_writeword']; -begin - console.writewordex(i, Console_Properties.Default_Attribute); -end; - -procedure writecharln(character: char); [public, alias: 'console_writecharln']; -begin - console.writecharlnex(character, Console_Properties.Default_Attribute); -end; - -procedure writestringln(str: PChar); [public, alias: 'console_writestringln']; -begin - console.writestringlnex(str, Console_Properties.Default_Attribute); -end; - -procedure writeintln(i: Integer); [public, alias: 'console_writeintln']; -begin - console.writeintlnex(i, Console_Properties.Default_Attribute); -end; - -procedure writewordln(i: DWORD); [public, alias: 'console_writewordln']; -begin - console.writewordlnex(i, Console_Properties.Default_Attribute); -end; - -procedure writecharex(character: char; attributes: uint32); [public, alias: 'console_writecharex']; -begin - if WindowManager.Windows[DefaultWND] <> nil then begin - WindowManager.Windows[DefaultWND]^.Buffer[WindowManager.Windows[DefaultWND]^.Cursor.Y][WindowManager.Windows[DefaultWND]^.Cursor.X].Character:= character; - WindowManager.Windows[DefaultWND]^.Buffer[WindowManager.Windows[DefaultWND]^.Cursor.Y][WindowManager.Windows[DefaultWND]^.Cursor.X].Attributes:= attributes; - //outputChar(character, Console_Cursor.X, Console_Cursor.Y, attributes SHR 16, attributes AND $FFFF); - //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Character:= character; - //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Attributes:= attributes; - WindowManager.Windows[DefaultWND]^.row_dirty[WindowManager.Windows[DefaultWND]^.Cursor.Y]:= true; - console._safeincrement_x(); - end; -end; - -procedure writehexpair(b : uint8); -var - bn : Array[0..1] of uint8; - i : uint8; - -begin - bn[0]:= b SHR 4; - bn[1]:= b AND $0F; - for i:=0 to 1 do begin - case bn[i] of - 0:writestring('0'); - 1:writestring('1'); - 2:writestring('2'); - 3:writestring('3'); - 4:writestring('4'); - 5:writestring('5'); - 6:writestring('6'); - 7:writestring('7'); - 8:writestring('8'); - 9:writestring('9'); - 10:writestring('A'); - 11:writestring('B'); - 12:writestring('C'); - 13:writestring('D'); - 14:writestring('E'); - 15:writestring('F'); - end; - end; -end; - -procedure writehexex(i : dword; attributes: uint32); [public, alias: 'console_writehexex']; -var - Hex : Array[0..7] of Byte; - Res : DWORD; - Rem : DWORD; - c : Integer; - -begin - for c:=0 to 7 do begin - Hex[c]:= 0; - end; - c:=0; - Res:= i; - Rem:= Res mod 16; - while Res > 0 do begin - Hex[c]:= Rem; - Res:= Res div 16; - Rem:= Res mod 16; - c:=c+1; - end; - writestringex('0x', attributes); - for c:=7 downto 0 do begin - if Hex[c] <> 255 then begin - case Hex[c] of - 0:writecharex('0', attributes); - 1:writecharex('1', attributes); - 2:writecharex('2', attributes); - 3:writecharex('3', attributes); - 4:writecharex('4', attributes); - 5:writecharex('5', attributes); - 6:writecharex('6', attributes); - 7:writecharex('7', attributes); - 8:writecharex('8', attributes); - 9:writecharex('9', attributes); - 10:writecharex('A', attributes); - 11:writecharex('B', attributes); - 12:writecharex('C', attributes); - 13:writecharex('D', attributes); - 14:writecharex('E', attributes); - 15:writecharex('F', attributes); - else writecharex('?', attributes); - end; - end; - end; -end; - -procedure writehex(i : dword); [public, alias: 'console_writehex']; -begin - console.writehexex(i, Console_Properties.Default_Attribute); -end; - -procedure writehexlnex(i : dword; attributes: uint32); -begin - console.writehexex(i, attributes); - console._safeincrement_y(); -end; - -procedure writehexln(i : dword); -begin - writehexlnex(i, Console_Properties.Default_Attribute); -end; - -procedure Output(identifier : PChar; str : PChar); -begin - writestring('['); - writestring(identifier); - writestring('] '); - writestring(str); -end; - -procedure Outputln(identifier : PChar; str : PChar); -begin - Output(identifier, str); - writestringln(' '); -end; - -procedure writestringex(str: PChar; attributes: uint32); [public, alias: 'console_writestringex']; -var - i : integer; - -begin - i:= 0; - while (str[i] <> #0) do begin - console.writecharex(str[i], attributes); - i:=i+1; - end; -end; - -procedure writeintex(i: Integer; attributes: uint32); [public, alias: 'console_writeintex']; -var - buffer: array [0..11] of Char; - str: PChar; - digit: DWORD; - minus: Boolean; -begin - str := @buffer[11]; - str^ := #0; - if (i < 0) then begin - digit := -i; - minus := True; - end else begin - digit := i; - minus := False; - end; - repeat - Dec(str); - str^ := Char((digit mod 10) + Byte('0')); - digit := digit div 10; - until (digit = 0); - if (minus) then begin - Dec(str); - str^ := '-'; - end; - console.writestringex(str, attributes); -end; - -procedure writewordex(i: DWORD; attributes: uint32); [public, alias: 'console_writedwordex']; -var - buffer: array [0..11] of Char; - str: PChar; - digit: DWORD; -begin - for digit := 0 to 10 do buffer[digit] := '0'; - str := @buffer[11]; - str^ := #0; - digit := i; - repeat - Dec(str); - str^ := Char((digit mod 10) + Byte('0')); - digit := digit div 10; - until (digit = 0); - console.writestringex(@Buffer[0], attributes); -end; - -procedure writecharlnex(character: char; attributes: uint32); [public, alias: 'console_writecharlnex']; -begin - console.writecharex(character, attributes); - console._safeincrement_y(); -end; - -procedure writestringlnex(str: PChar; attributes: uint32); [public, alias: 'console_writestringlnex']; -begin - console.writestringex(str, attributes); - console._safeincrement_y(); -end; - -procedure writeintlnex(i: Integer; attributes: uint32); [public, alias: 'console_writeintlnex']; -begin - console.writeintex(i, attributes); - console._safeincrement_y(); -end; - -procedure writewordlnex(i: DWORD; attributes: uint32); [public, alias: 'console_writewordlnex']; -begin - console.writewordex(i, attributes); - console._safeincrement_y(); -end; - -function combinecolors(Foreground, Background: uint16): uint32; -begin - combinecolors:= (uint32(Foreground) SHL 16) OR Background; -end; - -procedure _update_cursor(); [public, alias: '_console_update_cursor']; -var - pos : word; - b : byte; - -begin - //pos:= (Console_Cursor.Y * 80) + Console_Cursor.X; - //outb($3D4, $0F); - //b:= pos and $00FF; - //outb($3D5, b); - //outb($3D4, $0E); - //b:= pos shr 8; - //outb($3D5, b); - if CONSOLE_SLOW_REDRAW then redrawWindows; - //sleep(1); -end; - -procedure backspace; -begin - if WindowManager.Windows[DefaultWND] <> nil then begin - Dec(WindowManager.Windows[DefaultWND]^.Cursor.X); - writechar(' '); - Dec(WindowManager.Windows[DefaultWND]^.Cursor.X); - _update_cursor(); - end; -end; - -procedure _increment_x(); [public, alias: '_console_increment_x']; -begin - if WindowManager.Windows[DefaultWND] <> nil then begin - WindowManager.Windows[DefaultWND]^.Cursor.X:= WindowManager.Windows[DefaultWND]^.Cursor.X+1; - If WindowManager.Windows[DefaultWND]^.Cursor.X > WindowManager.Windows[DefaultWND]^.WND_W-1 then WindowManager.Windows[DefaultWND]^.Cursor.X:= 0; - console._update_cursor; - end; - //Console_Cursor.X:= Console_Cursor.X+1; - //If Console_Cursor.X > 159 then Console_Cursor.X:= 0; - //console._update_cursor; -end; - -procedure _increment_y(); [public, alias: '_console_increment_y']; -begin - if WindowManager.Windows[DefaultWND] <> nil then begin - WindowManager.Windows[DefaultWND]^.Cursor.Y:= WindowManager.Windows[DefaultWND]^.Cursor.Y+1; - If WindowManager.Windows[DefaultWND]^.Cursor.Y > WindowManager.Windows[DefaultWND]^.WND_H-1 then begin - console._newline(); - WindowManager.Windows[DefaultWND]^.Cursor.Y:= WindowManager.Windows[DefaultWND]^.WND_H-1; - end; - console._update_cursor; - end; - //Console_Cursor.Y:= Console_Cursor.Y+1; - //If Console_Cursor.Y > 63 then begin - // console._newline(); - // Console_Cursor.Y:= 63; - //end; - //console._update_cursor; -end; - -procedure _safeincrement_x(); [public, alias: '_console_safeincrement_x']; -begin - if WindowManager.Windows[DefaultWND] <> nil then begin - WindowManager.Windows[DefaultWND]^.Cursor.X:= WindowManager.Windows[DefaultWND]^.Cursor.X+1; - if WindowManager.Windows[DefaultWND]^.Cursor.X > WindowManager.Windows[DefaultWND]^.WND_W-1 then begin - console._safeincrement_y(); - end; - console._update_cursor; - end; - //Console_Cursor.X:= Console_Cursor.X+1; - //If Console_Cursor.X > 159 then begin - // console._safeincrement_y(); - //end; - //console._update_cursor; -end; - -procedure _safeincrement_y(); [public, alias: '_console_safeincrement_y']; -begin - if WindowManager.Windows[DefaultWND] <> nil then begin - WindowManager.Windows[DefaultWND]^.Cursor.Y:= WindowManager.Windows[DefaultWND]^.Cursor.Y+1; - if WindowManager.Windows[DefaultWND]^.Cursor.Y > WindowManager.Windows[DefaultWND]^.WND_H-1 then begin - console._newline(); - WindowManager.Windows[DefaultWND]^.Cursor.Y:= WindowManager.Windows[DefaultWND]^.WND_H-1; - end; - WindowManager.Windows[DefaultWND]^.Cursor.X:= 0; - console._update_cursor; - end; - //Console_Cursor.Y:= Console_Cursor.Y+1; - //If Console_Cursor.Y > 63 then begin - // console._newline(); - // Console_Cursor.Y:= 63; - //end; - //Console_Cursor.X:= 0; - //console._update_cursor; -end; - -procedure _newline(); [public, alias: '_console_newline']; -var - x, y : byte; - -begin - if WindowManager.Windows[DefaultWND] <> nil then begin - if WindowManager.Windows[DefaultWND]^.WND_W = 0 then exit; - if WindowManager.Windows[DefaultWND]^.WND_H = 0 then exit; - for x:=0 to WindowManager.Windows[DefaultWND]^.WND_W do begin - for y:=0 to WindowManager.Windows[DefaultWND]^.WND_H-1 do begin - WindowManager.Windows[DefaultWND]^.buffer[y][x]:= WindowManager.Windows[DefaultWND]^.buffer[y+1][x]; - WindowManager.Windows[DefaultWND]^.row_dirty[y]:= true; - //Console_Matrix[y][x]:= Console_Matrix[y+1][x]; - end; - end; - for x:=0 to WindowManager.Windows[DefaultWND]^.WND_W do begin - WindowManager.Windows[DefaultWND]^.buffer[WindowManager.Windows[DefaultWND]^.WND_H-1][x].Character:= ' '; - WindowManager.Windows[DefaultWND]^.buffer[WindowManager.Windows[DefaultWND]^.WND_H-1][x].Attributes:= $FFFF0000; - //Console_Matrix[63][x].Character:= ' '; - //Console_Matrix[63][x].Attributes:= $FFFF0000; - end; - //for y:=0 to 63 do begin - // for x:=0 to 159 do begin - // OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); - // end; - //end; - console._update_cursor; - end; -end; - -{ WND Specific Console Draw Functions } - -procedure clearWND(WND : uint32); -var - x,y: Byte; - -begin - if WindowManager.Windows[WND] <> nil then begin - for y:=0 to 63 do begin - for x:=0 to 159 do begin - WindowManager.Windows[WND]^.Buffer[y][x].Character:= ' '; - WindowManager.Windows[WND]^.Buffer[y][x].Attributes:= Console_Properties.Default_Attribute; - WindowManager.Windows[WND]^.row_dirty[y]:= true; - //Console_Matrix[y][x].Character:= ' '; - //Console_Matrix[y][x].Attributes:= Console_Properties.Default_Attribute; - //OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); - end; - end; - WindowManager.Windows[WND]^.Cursor.X:= 0; - WindowManager.Windows[WND]^.Cursor.Y:= 0; - //redrawWindows; - end; - //Console_Cursor.X:= 0; - //Console_Cursor.Y:= 0; -end; - -procedure clearWNDEx(WND : uint32; attributes : uint32); -var - x,y: Byte; - -begin - if WindowManager.Windows[WND] <> nil then begin - for y:=0 to 63 do begin - for x:=0 to 159 do begin - WindowManager.Windows[WND]^.Buffer[y][x].Character:= ' '; - WindowManager.Windows[WND]^.Buffer[y][x].Attributes:= attributes; - WindowManager.Windows[WND]^.row_dirty[y]:= true; - end; - end; - WindowManager.Windows[WND]^.Cursor.X:= 0; - WindowManager.Windows[WND]^.Cursor.Y:= 0; - end; -end; - -procedure writebin8exWND(b : uint8; attributes: uint32; WND : uint32); -var - Mask : PMask; - i : uint8; - -begin - Mask:= PMask(@b); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharexWND('1', attributes, WND) else writecharexWND('0', attributes, WND); - end; -end; - -procedure writebin16exWND(b : uint16; attributes: uint32; WND : uint32); -var - Mask : PMask; - i,j : uint8; - -begin - for j:=1 downto 0 do begin - Mask:= PMask(uint32(@b) + (1 * j)); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharexWND('1', attributes, WND) else writecharexWND('0', attributes, WND); - end; - end; -end; - -procedure writebin32exWND(b : uint32; attributes: uint32; WND : uint32); -var - Mask : PMask; - i,j : uint8; - -begin - for j:=3 downto 0 do begin - Mask:= PMask(uint32(@b) + (1 * j)); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharexWND('1', attributes, WND) else writecharexWND('0', attributes, WND); - end; - end; -end; - -procedure writebin8WND(b : uint8; WND : uint32); -begin - writebin8exWND(b, Console_Properties.Default_Attribute, WND); -end; - -procedure writebin16WND(b : uint16; WND : uint32); -begin - writebin16exWND(b, Console_Properties.Default_Attribute, WND); -end; - -procedure writebin32WND(b : uint32; WND : uint32); -begin - writebin32exWND(b, Console_Properties.Default_Attribute, WND); -end; - -procedure writebin8lnexWND(b : uint8; attributes: uint32; WND : uint32); -begin - writebin8exWND(b, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writebin16lnexWND(b : uint16; attributes: uint32; WND : uint32); -begin - writebin16exWND(b, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writebin32lnexWND(b : uint32; attributes: uint32; WND : uint32); -begin - writebin32exWND(b, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writebin8lnWND(b : uint8; WND : uint32); -begin - writebin8lnexWND(b, Console_Properties.Default_Attribute, WND); -end; - -procedure writebin16lnWND(b : uint16; WND : uint32); -begin - writebin16lnexWND(b, Console_Properties.Default_Attribute, WND); -end; - -procedure writebin32lnWND(b : uint32; WND : uint32); -begin - writebin32lnexWND(b, Console_Properties.Default_Attribute, WND); -end; - -{procedure setdefaultattribute(attribute: uint32); [public, alias: 'console_setdefaultattribute']; -begin - Console_Properties.Default_Attribute:= attribute; -end;} - -procedure writecharWND(character: char; WND : uint32); -begin - console.writecharexWND(character, Console_Properties.Default_Attribute, WND); -end; - -procedure writestringWND(str: PChar; WND : uint32); -begin - console.writestringexWND(str, Console_Properties.Default_Attribute, WND); -end; - -procedure writeintWND(i: Integer; WND : uint32); -begin - console.writeintexWND(i, Console_Properties.Default_Attribute, WND); -end; - -procedure writewordWND(i: DWORD; WND : uint32); -begin - console.writewordexWND(i, Console_Properties.Default_Attribute, WND); -end; - -procedure writecharlnWND(character: char; WND : uint32); -begin - console.writecharlnexWND(character, Console_Properties.Default_Attribute, WND); -end; - -procedure writestringlnWND(str: PChar; WND : uint32); -begin - console.writestringlnexWND(str, Console_Properties.Default_Attribute, WND); -end; - -procedure writeintlnWND(i: Integer; WND : uint32); -begin - console.writeintlnexWND(i, Console_Properties.Default_Attribute, WND); -end; - -procedure writewordlnWND(i: DWORD; WND : uint32); -begin - console.writewordlnexWND(i, Console_Properties.Default_Attribute, WND); -end; - -procedure writecharexWND(character: char; attributes: uint32; WND : uint32); -begin - if WindowManager.Windows[WND] <> nil then begin - WindowManager.Windows[WND]^.Buffer[WindowManager.Windows[WND]^.Cursor.Y][WindowManager.Windows[WND]^.Cursor.X].Character:= character; - WindowManager.Windows[WND]^.Buffer[WindowManager.Windows[WND]^.Cursor.Y][WindowManager.Windows[WND]^.Cursor.X].Attributes:= attributes; - //outputChar(character, Console_Cursor.X, Console_Cursor.Y, attributes SHR 16, attributes AND $FFFF); - //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Character:= character; - //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Attributes:= attributes; - WindowManager.Windows[WND]^.row_dirty[WindowManager.Windows[WND]^.Cursor.Y]:= true; - console._safeincrement_x_WND(WND); - end; -end; - -procedure writehexpairWND(b : uint8; WND : uint32); -var - bn : Array[0..1] of uint8; - i : uint8; - -begin - bn[0]:= b SHR 4; - bn[1]:= b AND $0F; - for i:=0 to 1 do begin - case bn[i] of - 0 :writestringWND('0', WND); - 1 :writestringWND('1', WND); - 2 :writestringWND('2', WND); - 3 :writestringWND('3', WND); - 4 :writestringWND('4', WND); - 5 :writestringWND('5', WND); - 6 :writestringWND('6', WND); - 7 :writestringWND('7', WND); - 8 :writestringWND('8', WND); - 9 :writestringWND('9', WND); - 10:writestringWND('A', WND); - 11:writestringWND('B', WND); - 12:writestringWND('C', WND); - 13:writestringWND('D', WND); - 14:writestringWND('E', WND); - 15:writestringWND('F', WND); - end; - end; -end; - -procedure writehexexWND(i : dword; attributes: uint32; WND : uint32); -var - Hex : Array[0..7] of Byte; - Res : DWORD; - Rem : DWORD; - c : Integer; - -begin - for c:=0 to 7 do begin - Hex[c]:= 0; - end; - c:=0; - Res:= i; - Rem:= Res mod 16; - while Res > 0 do begin - Hex[c]:= Rem; - Res:= Res div 16; - Rem:= Res mod 16; - c:=c+1; - end; - writestringexWND('0x', attributes, WND); - for c:=7 downto 0 do begin - if Hex[c] <> 255 then begin - case Hex[c] of - 0:writecharexWND('0', attributes, WND); - 1:writecharexWND('1', attributes, WND); - 2:writecharexWND('2', attributes, WND); - 3:writecharexWND('3', attributes, WND); - 4:writecharexWND('4', attributes, WND); - 5:writecharexWND('5', attributes, WND); - 6:writecharexWND('6', attributes, WND); - 7:writecharexWND('7', attributes, WND); - 8:writecharexWND('8', attributes, WND); - 9:writecharexWND('9', attributes, WND); - 10:writecharexWND('A', attributes, WND); - 11:writecharexWND('B', attributes, WND); - 12:writecharexWND('C', attributes, WND); - 13:writecharexWND('D', attributes, WND); - 14:writecharexWND('E', attributes, WND); - 15:writecharexWND('F', attributes, WND); - else writecharexWND('?', attributes, WND); - end; - end; - end; -end; - -procedure writehexWND(i : dword; WND : uint32); -begin - console.writehexexWND(i, Console_Properties.Default_Attribute, WND); -end; - -procedure writehexlnexWND(i : dword; attributes: uint32; WND : uint32); -begin - console.writehexexWND(i, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writehexlnWND(i : dword; WND : uint32); -begin - writehexlnexWND(i, Console_Properties.Default_Attribute, WND); -end; - -procedure OutputWND(identifier : PChar; str : PChar; WND : uint32); -begin - writestringWND('[', WND); - writestringWND(identifier, WND); - writestringWND('] ', WND); - writestringWND(str, WND); -end; - -procedure OutputlnWND(identifier : PChar; str : PChar; WND : uint32); -begin - OutputWND(identifier, str, WND); - writestringlnWND(' ', WND); -end; - -procedure writestringexWND(str: PChar; attributes: uint32; WND : uint32); -var - i : integer; - -begin - i:= 0; - while (str[i] <> #0) do begin - console.writecharexWND(str[i], attributes, WND); - i:=i+1; - end; -end; - -procedure writeintexWND(i: Integer; attributes: uint32; WND : uint32); -var - buffer: array [0..11] of Char; - str: PChar; - digit: DWORD; - minus: Boolean; -begin - str := @buffer[11]; - str^ := #0; - if (i < 0) then begin - digit := -i; - minus := True; - end else begin - digit := i; - minus := False; - end; - repeat - Dec(str); - str^ := Char((digit mod 10) + Byte('0')); - digit := digit div 10; - until (digit = 0); - if (minus) then begin - Dec(str); - str^ := '-'; - end; - console.writestringexWND(str, attributes, WND); -end; - -procedure writewordexWND(i: DWORD; attributes: uint32; WND : uint32); -var - buffer: array [0..11] of Char; - str: PChar; - digit: DWORD; -begin - for digit := 0 to 10 do buffer[digit] := '0'; - str := @buffer[11]; - str^ := #0; - digit := i; - repeat - Dec(str); - str^ := Char((digit mod 10) + Byte('0')); - digit := digit div 10; - until (digit = 0); - console.writestringexWND(@Buffer[0], attributes, WND); -end; - -procedure writecharlnexWND(character: char; attributes: uint32; WND : uint32); -begin - console.writecharexWND(character, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writestringlnexWND(str: PChar; attributes: uint32; WND : uint32); -begin - console.writestringexWND(str, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writeintlnexWND(i: Integer; attributes: uint32; WND : uint32); -begin - console.writeintexWND(i, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writewordlnexWND(i: DWORD; attributes: uint32; WND : uint32); -begin - console.writewordexWND(i, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure backspaceWND(WND : uint32); -begin - if WindowManager.Windows[WND] <> nil then begin - Dec(WindowManager.Windows[WND]^.Cursor.X); - writecharWND(' ', WND); - Dec(WindowManager.Windows[WND]^.Cursor.X); - _update_cursor(); - end; -end; - -procedure _increment_x_WND(WND : uint32); -begin - if WindowManager.Windows[WND] <> nil then begin - WindowManager.Windows[WND]^.Cursor.X:= WindowManager.Windows[WND]^.Cursor.X+1; - If WindowManager.Windows[WND]^.Cursor.X > WindowManager.Windows[WND]^.WND_W-1 then WindowManager.Windows[WND]^.Cursor.X:= 0; - console._update_cursor; - end; - //Console_Cursor.X:= Console_Cursor.X+1; - //If Console_Cursor.X > 159 then Console_Cursor.X:= 0; - //console._update_cursor; -end; - -procedure _increment_y_WND(WND : uint32); -begin - if WindowManager.Windows[WND] <> nil then begin - WindowManager.Windows[WND]^.Cursor.Y:= WindowManager.Windows[WND]^.Cursor.Y+1; - If WindowManager.Windows[WND]^.Cursor.Y > WindowManager.Windows[WND]^.WND_H-1 then begin - console._newlineWND(WND); - WindowManager.Windows[WND]^.Cursor.Y:= WindowManager.Windows[WND]^.WND_H-1; - end; - console._update_cursor; - end; - //Console_Cursor.Y:= Console_Cursor.Y+1; - //If Console_Cursor.Y > 63 then begin - // console._newline(); - // Console_Cursor.Y:= 63; - //end; - //console._update_cursor; -end; - -procedure _safeincrement_x_WND(WND : uint32); -begin - if WindowManager.Windows[WND] <> nil then begin - WindowManager.Windows[WND]^.Cursor.X:= WindowManager.Windows[WND]^.Cursor.X+1; - if WindowManager.Windows[WND]^.Cursor.X > WindowManager.Windows[WND]^.WND_W-1 then begin - console._safeincrement_y_WND(WND); - end; - console._update_cursor; - end; - //Console_Cursor.X:= Console_Cursor.X+1; - //If Console_Cursor.X > 159 then begin - // console._safeincrement_y(); - //end; - //console._update_cursor; -end; - -procedure _safeincrement_y_WND(WND : uint32); -begin - if WindowManager.Windows[WND] <> nil then begin - WindowManager.Windows[WND]^.Cursor.Y:= WindowManager.Windows[WND]^.Cursor.Y+1; - if WindowManager.Windows[WND]^.Cursor.Y > WindowManager.Windows[WND]^.WND_H-1 then begin - console._newlineWND(WND); - WindowManager.Windows[WND]^.Cursor.Y:= WindowManager.Windows[WND]^.WND_H-1; - end; - WindowManager.Windows[WND]^.Cursor.X:= 0; - console._update_cursor; - end; - //Console_Cursor.Y:= Console_Cursor.Y+1; - //If Console_Cursor.Y > 63 then begin - // console._newline(); - // Console_Cursor.Y:= 63; - //end; - //Console_Cursor.X:= 0; - //console._update_cursor; -end; - -procedure _newlineWND(WND : uint32); -var - x, y : byte; - -begin - if WindowManager.Windows[WND] <> nil then begin - if WindowManager.Windows[WND]^.WND_W = 0 then exit; - if WindowManager.Windows[WND]^.WND_H = 0 then exit; - for x:=0 to WindowManager.Windows[WND]^.WND_W do begin - for y:=0 to WindowManager.Windows[WND]^.WND_H-1 do begin - WindowManager.Windows[WND]^.buffer[y][x]:= WindowManager.Windows[WND]^.buffer[y+1][x]; - WindowManager.Windows[WND]^.row_dirty[y]:= true; - //Console_Matrix[y][x]:= Console_Matrix[y+1][x]; - end; - end; - for x:=0 to WindowManager.Windows[WND]^.WND_W do begin - WindowManager.Windows[WND]^.buffer[WindowManager.Windows[WND]^.WND_H-1][x].Character:= ' '; - WindowManager.Windows[WND]^.buffer[WindowManager.Windows[WND]^.WND_H-1][x].Attributes:= $FFFF0000; - //Console_Matrix[63][x].Character:= ' '; - //Console_Matrix[63][x].Attributes:= $FFFF0000; - end; - //for y:=0 to 63 do begin - // for x:=0 to 159 do begin - // OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); - // end; - //end; - console._update_cursor; - end; -end; - -end. +// Copyright 2021 Kieron Morris +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +{ ************************************************ + * Asuro + * Unit: console + * Description: Basic Console Output + ************************************************ + * Author: K Morris + * Contributors: + ************************************************ } + +unit console; + +interface + +uses + util, + bios_data_area, + multiboot, + fonts, + tracer; + +type + TColor = ( Black = $0, + Blue = $1, + Green = $2, + Aqua = $3, + Red = $4, + Purple = $5, + Yellow = $6, + White = $7, + Gray = $8, + lBlue = $9, + lGreen = $A, + lAqua = $B, + lRed = $C, + lPurple = $D, + lYellow = $E, + lWhite = $F ); + + TEventType = ( EVENT_DRAW, + EVENT_MOUSE_CLICK, + EVENT_MOUSE_MOVE, + EVENT_MOUSE_DOWN, + EVENT_MOUSE_UP, + EVENT_KEY_PRESSED, + EVENT_CLOSE, + EVENT_MINIMIZE, + EVENT_FOCUS, + EVENT_LOSE_FOCUS ); + +procedure init(); +procedure clear(); +procedure setdefaultattribute(attribute : uint32); + +procedure disable_cursor; + +procedure writechar(character : char); +procedure writecharln(character : char); +procedure writecharex(character : char; attributes: uint32); +procedure writecharlnex(character : char; attributes: uint32); + +procedure Output(identifier : PChar; str : PChar); +procedure Outputln(identifier : PChar; str : PChar); + +procedure writestring(str: PChar); +procedure writestringln(str: PChar); +procedure writestringex(str: PChar; attributes: uint32); +procedure writestringlnex(str: PChar; attributes: uint32); + +procedure writeint(i: Integer); +procedure writeintln(i: Integer); +procedure writeintex(i: Integer; attributes: uint32); +procedure writeintlnex(i: Integer; attributes: uint32); + +procedure writeword(i: DWORD); +procedure writewordln(i: DWORD); +procedure writewordex(i: DWORD; attributes: uint32); +procedure writewordlnex(i: DWORD; attributes: uint32); + +procedure writehexpair(b : uint8); +procedure writehex(i: DWORD); +procedure writehexln(i: DWORD); +procedure writehexex(i : DWORD; attributes: uint32); +procedure writehexlnex(i: DWORD; attributes: uint32); + +procedure writebin8(b : uint8); +procedure writebin8ln(b : uint8); +procedure writebin8ex(b : uint8; attributes: uint32); +procedure writebin8lnex(b : uint8; attributes: uint32); + +procedure writebin16(b : uint16); +procedure writebin16ln(b : uint16); +procedure writebin16ex(b : uint16; attributes: uint32); +procedure writebin16lnex(b : uint16; attributes: uint32); + +procedure writebin32(b : uint32); +procedure writebin32ln(b : uint32); +procedure writebin32ex(b : uint32; attributes: uint32); +procedure writebin32lnex(b : uint32; attributes: uint32); + +procedure backspace; + +function combinecolors(Foreground, Background : uint16) : uint32; + +procedure _increment_x(); +procedure _increment_y(); +procedure _safeincrement_y(); +procedure _safeincrement_x(); +procedure _newline(); + +{ WND Specific } + +procedure clearWND(WND : uint32); +procedure clearWNDEx(WND : uint32; attributes : uint32); + +procedure writecharWND(character : char; WND : uint32); +procedure writecharlnWND(character : char; WND : uint32); +procedure writecharexWND(character : char; attributes: uint32; WND : uint32); +procedure writecharlnexWND(character : char; attributes: uint32; WND : uint32); + +procedure OutputWND(identifier : PChar; str : PChar; WND : uint32); +procedure OutputlnWND(identifier : PChar; str : PChar; WND : uint32); + +procedure writestringWND(str: PChar; WND : uint32); +procedure writestringlnWND(str: PChar; WND : uint32); +procedure writestringexWND(str: PChar; attributes: uint32; WND : uint32); +procedure writestringlnexWND(str: PChar; attributes: uint32; WND : uint32); + +procedure writeintWND(i: Integer; WND : uint32); +procedure writeintlnWND(i: Integer; WND : uint32); +procedure writeintexWND(i: Integer; attributes: uint32; WND : uint32); +procedure writeintlnexWND(i: Integer; attributes: uint32; WND : uint32); + +procedure writewordWND(i: DWORD; WND : uint32); +procedure writewordlnWND(i: DWORD; WND : uint32); +procedure writewordexWND(i: DWORD; attributes: uint32; WND : uint32); +procedure writewordlnexWND(i: DWORD; attributes: uint32; WND : uint32); + +procedure writehexpairWND(b : uint8; WND : uint32); +procedure writehexWND(i: DWORD; WND : uint32); +procedure writehexlnWND(i: DWORD; WND : uint32); +procedure writehexexWND(i : DWORD; attributes: uint32; WND : uint32); +procedure writehexlnexWND(i: DWORD; attributes: uint32; WND : uint32); + +procedure writebin8WND(b : uint8; WND : uint32); +procedure writebin8lnWND(b : uint8; WND : uint32); +procedure writebin8exWND(b : uint8; attributes: uint32; WND : uint32); +procedure writebin8lnexWND(b : uint8; attributes: uint32; WND : uint32); + +procedure writebin16WND(b : uint16; WND : uint32); +procedure writebin16lnWND(b : uint16; WND : uint32); +procedure writebin16exWND(b : uint16; attributes: uint32; WND : uint32); +procedure writebin16lnexWND(b : uint16; attributes: uint32; WND : uint32); + +procedure writebin32WND(b : uint32; WND : uint32); +procedure writebin32lnWND(b : uint32; WND : uint32); +procedure writebin32exWND(b : uint32; attributes: uint32; WND : uint32); +procedure writebin32lnexWND(b : uint32; attributes: uint32; WND : uint32); + +procedure backspaceWND(WND : uint32); +procedure setCursorPosWND(x : uint32; y : uint32; WND : HWND); + +procedure _increment_x_WND(WND : uint32); +procedure _increment_y_WND(WND : uint32); +procedure _safeincrement_y_WND(WND : uint32); +procedure _safeincrement_x_WND(WND : uint32); +procedure _newlineWND(WND : uint32); + +{ Drawing } + +procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16); +procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16); +procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16); + +function getPixel(x : uint32; y : uint32) : uint16; +procedure drawPixel(x : uint32; y : uint32; color : uint16); +function getPixel32(x : uint32; y : uint32) : uint32; +procedure drawPixel32(x : uint32; y : uint32; pixel : uint32); +function getPixel64(x : uint32; y : uint32) : uint64; +procedure drawPixel64(x : uint32; y : uint32; pixel : uint64); + +{ Windows Methods } + +procedure setMousePosition(x : uint32; y : uint32); +procedure redrawWindows; +procedure toggleWNDVisible(WND : uint32); +procedure setWNDVisible(WND : uint32; visible : boolean); +procedure closeAllWindows; +function newWindow(x : uint32; y : uint32; Width : uint32; Height : uint32; Title : PChar) : HWND; +function registerEventHandler(WND : HWND; Event : TEventType; Handler : void) : boolean; +procedure forceQuitAll; +procedure closeWindow(WND : HWND); +procedure bordersEnabled(WND : HWND; enabled : boolean); +procedure SetShellWindow(WND : HWND; b : boolean); +function getWindowName(WND : HWND) : pchar; + +procedure _MouseDown(); +procedure _MouseUp(); +procedure _MouseClick(left : boolean); + +implementation + +uses + lmemorymanager, strings, keyboard, serial, terminal; + +const + MAX_WINDOWS = 255; + DefaultWND = 0; + +type + TConsoleProperties = record + Default_Attribute : uint32; + end; + + TCharacter = bitpacked record + Character : Char; + attributes : uint32; + visible : boolean; + end; + PCharacter = ^TCharacter; + + TVideoMemory = Array[0..1999] of TCharacter; + PVideoMemory = ^TVideoMemory; + + TMask = Array[0..63] of Array[0..159] of uint32; + + T2DVideoMemory = Array[0..63] of Array[0..159] of TCharacter; + P2DVideoMemory = ^T2DVideoMemory; + + TMouseCoord = record + X : sint32; + Y : sint32; + end; + + TCoord = record + X : Byte; + Y : Byte; + end; + + TDrawHook = procedure(); + TMouseClickHook = procedure(x : uint32; y : uint32; left : boolean); + TMouseMoveHook = procedure(x : uint32; y : uint32); + TMouseDownHook = procedure(x : uint32; y : uint32); + TMouseUpHook = procedure(x : uint32; y : uint32); + TKeyPressedHook = procedure(info : TKeyInfo); + TCloseHook = procedure(); + TMinimizeHook = procedure(); + TFocusHook = procedure(); + TLoseFocusHook = procedure(); + + THooks = record + OnDraw : TDrawHook; + OnMouseClick : TMouseClickHook; + OnMouseMove : TMouseMoveHook; + OnMouseDown : TMouseDownHook; + OnMouseUp : TMouseUpHook; + OnKeyPressed : TKeyPressedHook; + OnClose : TCloseHook; + OnMinimize : TMinimizeHook; + OnFocus : TFocusHook; + OnLoseFocus : TLoseFocusHook; + end; + + TWindow = record + visible : boolean; + buffer : T2DVideoMemory; + row_dirty : Array[0..63] of Boolean; + WND_X : uint32; + WND_Y : uint32; + WND_W : uint32; + WND_H : uint32; + Cursor : TCoord; + WND_NAME : PChar; + Hooks : THooks; + Closed : boolean; + Border : boolean; + ShellWND : boolean; + end; + PWindow = ^TWindow; + + TWindows = Array[0..MAX_WINDOWS-1] of PWindow; + + TWindowManager = record + Windows : TWindows; + Z_Order : TWindows; + Z_Locked : TWindows; + MousePos : TMouseCoord; + MousePrev : TMouseCoord; + end; + + TMouseDirt = record + TopLeft : TMouseCoord; + BottomRight : TMouseCoord; + end; + +var + Console_Properties : TConsoleProperties; //Generic Properties + Console_Real : T2DVideoMemory; //The real state of the Console/TUI + Console_Matrix : T2DVideoMemory; //The next buffer to be written + Console_Cursor : TCoord; //The text cursor position + WindowManager : TWindowManager; //Window Manager + Ready : Boolean = false; //Is the unit ready for use? + MouseDrawActive : Boolean = false; //Is the Mouse currently being updated? + mouse_dirt : TMouseDirt; //Character Cell(s) the mouse occupies, these need to be rewritten on mouse move. + Window_Border : TCharacter; + Default_Char : TCharacter; + WindowTitleMask : TMask; + WindowMask : TMask; + MouseDown : Boolean; + WindowMovePos : TMouseCoord; + MovingWindow : uint32; + + +procedure _MouseDown(); +begin + MouseDown:= true; +end; + +procedure _MouseUp(); +begin + MouseDown:= false; +end; + +procedure _MouseClick(left : boolean); +begin + +end; + +procedure AddToZOrder(WND : HWND); +begin + +end; + +procedure RemoveFromZOrder(WND : HWND); +begin + +end; + +procedure FocusZOrder(WND : HWND); +begin + +end; + +function getWindowName(WND : HWND) : pchar; +var + Window : PWindow; + +begin + getWindowName:= nil; + Window:= WindowManager.Windows[WND]; + if Window <> nil then begin + if Window^.ShellWND then begin + getWindowName:= Window^.WND_NAME; + end; + end; +end; + +procedure SetShellWindow(WND : HWND; b : boolean); +var + Window : PWindow; + +begin + Window:= WindowManager.Windows[WND]; + if Window <> nil then begin + Window^.ShellWND:= b; + end; +end; + +procedure bordersEnabled(WND : HWND; enabled : boolean); +var + Window : PWindow; + +begin + Window:= WindowManager.Windows[WND]; + if Window <> nil then begin + Window^.Border:= enabled; + end; +end; + +procedure setCursorPosWND(x : uint32; y : uint32; WND : HWND); +var + Window : PWindow; + +begin + Window:= WindowManager.Windows[WND]; + if Window <> nil then begin + while x > 159 do dec(x); + while y > 63 do dec(y); + Window^.Cursor.x:= x; + Window^.Cursor.y:= y; + end; +end; + +procedure setWindowPosition(WND : HWND; x, y : sint32); +var + Window : PWindow; + nx, ny : sint32; + +begin + Window:= WindowManager.Windows[WND]; + If Window <> nil then begin + nx:= x; + ny:= y; + if Window^.Border then begin + if nx < 2 then nx:= 2; + if ny < 1 then ny:= 1; + while (nx + Window^.WND_W + 2) > 159 do begin + dec(nx); + end; + while (ny + Window^.WND_H + 1) > 63 do begin + dec(ny); + end; + end else begin + if nx < 0 then nx:= 0; + if ny < 0 then ny:= 0; + while (nx + Window^.WND_W) > 159 do begin + dec(nx); + end; + while (ny + Window^.WND_H) > 63 do begin + dec(ny); + end; + end; + Window^.WND_X:= nx; + Window^.WND_Y:= ny; + end; +end; + +function registerEventHandler(WND : HWND; Event : TEventType; Handler : void) : boolean; +begin + registerEventHandler:= true; + if WindowManager.Windows[WND] <> nil then begin + case Event of + EVENT_DRAW : WindowManager.Windows[WND]^.Hooks.OnDraw:= TDrawHook(Handler); + EVENT_MOUSE_CLICK : WindowManager.Windows[WND]^.Hooks.OnMouseClick:= TMouseClickHook(Handler); + EVENT_MOUSE_MOVE : WindowManager.Windows[WND]^.Hooks.OnMouseMove:= TMouseMoveHook(Handler); + EVENT_MOUSE_DOWN : WindowManager.Windows[WND]^.Hooks.OnMouseDown:= TMouseDownHook(Handler); + EVENT_MOUSE_UP : WindowManager.Windows[WND]^.Hooks.OnMouseUp:= TMouseUpHook(Handler); + EVENT_KEY_PRESSED : WindowManager.Windows[WND]^.Hooks.OnKeyPressed:= TKeyPressedHook(Handler); + EVENT_CLOSE : WindowManager.Windows[WND]^.Hooks.OnClose:= TCloseHook(Handler); + EVENT_MINIMIZE : WindowManager.Windows[WND]^.Hooks.OnMinimize:= TMinimizeHook(Handler); + EVENT_FOCUS : WindowManager.Windows[WND]^.Hooks.OnFocus:= TFocusHook(Handler); + EVENT_LOSE_FOCUS : WindowManager.Windows[WND]^.Hooks.OnLoseFocus:= TLoseFocusHook(Handler); + else registerEventHandler:= false; + end; + end else begin + registerEventHandler:= false; + end; +end; + +function newWindow(x : uint32; y : uint32; Width : uint32; Height : uint32; Title : PChar) : HWND; +var + idx : uint32; + WND : PWindow; + +begin + newWindow:= 0; + for idx:=1 to MAX_WINDOWS-1 do begin + if WindowManager.Windows[idx] = nil then begin + newWindow:= idx; + break; + end; + end; + if newWindow <> 0 then begin + WND:= PWindow(kalloc(sizeof(TWindow))); + WND^.WND_NAME:= StringCopy(Title); + WND^.WND_X:= x; + WND^.WND_Y:= y; + WND^.WND_W:= Width; + WND^.WND_H:= Height; + WND^.Cursor.x:= 0; + WND^.Cursor.y:= 0; + WND^.visible:= true; + WND^.Closed:= false; + WND^.Border:= true; + WND^.ShellWND:= true; + WND^.Hooks.OnDraw := nil; + WND^.Hooks.OnMouseClick := nil; + WND^.Hooks.OnMouseMove := nil; + WND^.Hooks.OnMouseDown := nil; + WND^.Hooks.OnMouseUp := nil; + WND^.Hooks.OnKeyPressed := nil; + WND^.Hooks.OnClose := nil; + WND^.Hooks.OnMinimize := nil; + WND^.Hooks.OnFocus := nil; + WND^.Hooks.OnLoseFocus := nil; + WindowManager.Windows[newWindow]:= WND; + end; +end; + +procedure forceQuitAll; +var + i : uint32; + WND : PWindow; + +begin + for i:=1 to MAX_WINDOWS-1 do begin + if WindowManager.Windows[i] <> nil then begin + WND:= WindowManager.Windows[i]; + WindowManager.Windows[i]:= nil; + kfree(void(WND^.WND_NAME)); + kfree(void(WND)); + end; + end; +end; + + +procedure _closeWindow(WND : HWND); +var + WNDCopy : PWindow; + +begin + if WindowManager.Windows[WND] <> nil then begin + WNDCopy:= WindowManager.Windows[WND]; + WindowManager.Windows[WND]:= nil; + if WNDCopy^.Hooks.OnClose <> nil then WNDCopy^.Hooks.OnClose(); + kfree(void(WNDCopy^.WND_NAME)); + kfree(void(WNDCopy)); + end; +end; + +procedure closeWindow(WND : HWND); +begin + if WindowManager.Windows[WND] <> nil then begin + WindowManager.Windows[WND]^.Closed:= True; + end; +end; + +procedure closeAllWindows; +var + i : uint32; + +begin + for i:=1 to MAX_WINDOWS-1 do begin + setWNDVisible(i, false); + end; +end; + +procedure setWNDVisible(WND : uint32; visible : boolean); +begin + if WindowManager.Windows[WND] <> nil then begin + WindowManager.Windows[WND]^.visible:= visible; + end; +end; + +procedure toggleWNDVisible(WND : uint32); +begin + if WindowManager.Windows[DefaultWND] <> nil then begin + WindowManager.Windows[WND]^.visible:= not WindowManager.Windows[WND]^.visible; + end; +end; + +function MouseYToTile(Y : uint32) : uint32; +begin + MouseYToTile:= Y div 16; +end; + +function MouseXToTile(X : uint32) : uint32; +begin + MouseXToTile:= X div 8; +end; + +procedure drawMouse; +var + x, y : uint32; + MX, MY : uint32; + +begin + MouseDrawActive:= true; + MX:= WindowManager.MousePos.X; + MY:= WindowManager.MousePos.Y; + WindowManager.MousePrev.x:= MX; + WindowManager.MousePrev.y:= MY; + mouse_dirt.TopLeft.x:= (MX div 8) - 2; + mouse_dirt.TopLeft.y:= (MY div 16) - 2; + mouse_dirt.BottomRight.x:= (MX div 8) + 2; + mouse_dirt.BottomRight.y:= (MY div 16) + 2; + if mouse_dirt.TopLeft.x < 0 then mouse_dirt.TopLeft.x:= 0; + if mouse_dirt.TopLeft.y < 0 then mouse_dirt.TopLeft.y:= 0; + if mouse_dirt.BottomRight.x > 159 then mouse_dirt.BottomRight.x:= 159; + if mouse_dirt.BottomRight.y > 63 then mouse_dirt.BottomRight.y:= 63; + MouseDrawActive:= false; +end; + +procedure redrawMatrix; +var + x, y, w: uint32; + +begin + if (WindowManager.MousePos.x <> WindowManager.MousePrev.x) OR (WindowManager.MousePos.y <> WindowManager.MousePrev.y) then begin + for y:=mouse_dirt.TopLeft.y to mouse_dirt.BottomRight.y do begin + for x:=mouse_dirt.TopLeft.x to mouse_dirt.BottomRight.x do begin + Console_Real[y][x].character:= char(1); + end; + end; + drawMouse; + end; + for y:=0 to 63 do begin + for x:=0 to 159 do begin + if (Console_Matrix[y][x].character <> Console_Real[y][x].character) or (Console_Matrix[y][x].attributes <> Console_Real[y][x].attributes) then begin + OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); + Console_Real[y][x]:= Console_Matrix[y][x]; + end; + end; + end; + outputCharToScreenSpace(char(0), WindowManager.MousePrev.x, WindowManager.MousePrev.y, $FFFF); +end; + +procedure setMousePosition(x : uint32; y : uint32); +begin + if MouseDrawActive then exit; + WindowManager.MousePos.X:= x; + WindowManager.MousePos.Y:= y; +end; + +procedure redrawWindows; +var + x, y, w : uint32; + WXL, WYL : sint32; + WXR, WYR : sint32; + STRC : uint32; + MIDP, STARTP : uint32; + deltax, deltay : sint32; + +begin + for y:=0 to 63 do begin + for x:=0 to 159 do begin + Console_Matrix[y][x]:= Default_Char; + end; + end; + if MouseDown then begin + if MovingWindow = 0 then begin + MovingWindow:= WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; + if MovingWindow <> 0 then begin + WindowMovePos.x:= MouseXToTile(WindowManager.MousePrev.X); + WindowMovePos.y:= MouseYToTile(WindowManager.MousePrev.Y); + end; + end; + if MovingWindow <> 0 then begin + if WindowManager.Windows[MovingWindow] <> nil then begin + deltax:= WindowMovePos.x - MouseXToTile(WindowManager.MousePrev.X); + deltay:= WindowMovePos.y - MouseYToTile(WindowManager.MousePrev.Y); + WindowMovePos.x:= MouseXToTile(WindowManager.MousePrev.X); + WindowMovePos.y:= MouseYToTile(WindowManager.MousePrev.Y); + setWindowPosition(MovingWindow, WindowManager.Windows[MovingWindow]^.WND_X - deltax, WindowManager.Windows[MovingWindow]^.WND_Y - deltay); + //WindowManager.Windows[MovingWindow]^.WND_X:= WindowManager.Windows[MovingWindow]^.WND_X - deltax; + //WindowManager.Windows[MovingWindow]^.WND_Y:= WindowManager.Windows[MovingWindow]^.WND_Y - deltay; + end; + end; + end else begin + MovingWindow:= 0; + end; + for w:=0 to MAX_WINDOWS-1 do begin + if WindowManager.Windows[w] <> nil then begin + if w <> 0 then begin + if WindowManager.Windows[w]^.Hooks.OnDraw <> nil then WindowManager.Windows[w]^.Hooks.OnDraw(); + end; + If WindowManager.Windows[w]^.visible then begin + if WindowManager.Windows[w]^.Border then begin + WXL:= WindowManager.Windows[w]^.WND_X - 1; + WYL:= WindowManager.Windows[w]^.WND_Y - 1; + WXR:= WindowManager.Windows[w]^.WND_X + WindowManager.Windows[w]^.WND_W + 1; + WYR:= WindowManager.Windows[w]^.WND_Y + WindowManager.Windows[w]^.WND_H + 1; + for y:=WYL to WYR do begin + Console_Matrix[y][WXL]:= Window_Border; + Console_Matrix[y][WXL-1]:= Window_Border; + Console_Matrix[y][WXR]:= Window_Border; + Console_Matrix[y][WXR+1]:= Window_Border; + Console_Real[y][WXL].Character:= char(3); + Console_Real[y][WXL-1].Character:= char(3); + Console_Real[y][WXR].Character:= char(3); + Console_Real[y][WXR+1].Character:= char(3); + end; + STRC:= 0; + MIDP:= (WXR + WXL) div 2; + STARTP:= MIDP - (StringSize(WindowManager.Windows[w]^.WND_NAME) div 2) - 1; + for x:=WXL to WXR do begin + Console_Matrix[WYL][x]:= Window_Border; + WindowTitleMask[WYL][x]:= w; + if (x >= STARTP) and (STRC < StringSize(WindowManager.Windows[w]^.WND_NAME)) then begin + Console_Matrix[WYL][x].character:= WindowManager.Windows[w]^.WND_NAME[STRC]; + inc(STRC); + end; + if x = WXR then begin + Console_Matrix[WYL][x].character:= 'x'; + end; + Console_Matrix[WYR][x]:= Window_Border; + Console_Real[WYL][x].Character:= char(3); + Console_Real[WYR][x].Character:= char(3); + end; + end; + for y:=WindowManager.Windows[w]^.WND_Y to WindowManager.Windows[w]^.WND_Y + WindowManager.Windows[w]^.WND_H do begin + if y > 63 then break; + for x:=WindowManager.Windows[w]^.WND_X to WindowManager.Windows[w]^.WND_X + WindowManager.Windows[w]^.WND_W do begin + if x > 159 then break; + Console_Matrix[y][x]:= WindowManager.Windows[w]^.buffer[y - WindowManager.Windows[w]^.WND_Y][x - WindowManager.Windows[w]^.WND_X]; + WindowTitleMask[y][x]:= 0; + WindowMask[y][x]:= w; + end; + end; + end; + if WindowManager.Windows[w]^.Closed then _closeWindow(w); + end; + end; + redrawMatrix; +end; + +procedure initWindows; +var + x, y, w : uint32; + WND : PWindow; + +begin + Default_Char.Character:= ' '; + Default_Char.attributes:= Console_Properties.Default_Attribute; + Default_Char.visible:= true; + + Window_Border.Character:= ' '; + Window_Border.Attributes:= console.combinecolors($01C3, $07EE);//$0000FFFF; + Window_Border.visible:= true; + + For w:=0 to MAX_WINDOWS-1 do begin + WindowManager.Windows[w]:= nil; + end; + + WND:= PWindow(kalloc(sizeof(TWindow))); + WND^.WND_NAME:= 'Asuro'; + WND^.WND_X:= 0; + WND^.WND_Y:= 0; + WND^.WND_W:= 159; + WND^.WND_H:= 63; + WND^.Cursor.x:= 0; + WND^.Cursor.y:= 0; + WND^.visible:= true; + WND^.Closed:= false; + WND^.Border:= false; + WND^.ShellWND:= false; + WindowManager.Windows[0]:= WND; +end; + +function getPixel(x : uint32; y : uint32) : uint16; +var + dest : puint16; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * 1280) + x; + getPixel:= dest^; +end; + +procedure drawPixel(x : uint32; y : uint32; color : uint16); +var + dest : puint16; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * 1280) + x; + dest^:= color; +end; + +function getPixel32(x : uint32; y : uint32) : uint32; +var + dest : puint16; + dest32 : puint32; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * 1280) + x; + dest32:= puint32(dest); + getPixel32:= dest32[0]; +end; + +procedure drawPixel32(x : uint32; y : uint32; pixel : uint32); +var + dest : puint16; + dest32 : puint32; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * 1280) + x; + dest32:= puint32(dest); + dest32[0]:= pixel; +end; + +function getPixel64(x : uint32; y : uint32) : uint64; +var + dest : puint16; + dest64 : puint64; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * 1280) + x; + dest64:= puint64(dest); + getPixel64:= dest64^; +end; + +procedure drawPixel64(x : uint32; y : uint32; pixel : uint64); +var + dest : puint16; + dest64 : puint64; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * 1280) + x; + dest64:= puint64(dest); + dest64^:= pixel; +end; + +procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16); +var + dest : puint16; + dest32 : puint32; + fgcolor32, bgcolor32 : uint32; + mask : puint32; + i : uint32; + +begin + if not ready then exit; + fgcolor32:= fgcolor OR (fgcolor SHL 16); + mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); + dest:= puint16(multibootinfo^.framebuffer_addr); + //dest:= puint16(windowmanager.getBuffer(0)); + dest:= dest + (y * 1280) + x; + dest32:= puint32(dest); + for i:=0 to 15 do begin + dest32[(i*640)+0]:= (dest32[(i*640)+0] AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); + dest32[(i*640)+1]:= (dest32[(i*640)+1] AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); + dest32[(i*640)+2]:= (dest32[(i*640)+2] AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); + dest32[(i*640)+3]:= (dest32[(i*640)+3] AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); + end; + //windowmanager.redraw; +end; + +procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16); +var + dest : puint16; + dest32 : puint32; + fgcolor32, bgcolor32 : uint32; + mask : puint32; + i : uint32; + +begin + if not ready then exit; + fgcolor32:= fgcolor OR (fgcolor SHL 16); + mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); + dest:= puint16(multibootinfo^.framebuffer_addr); + //dest:= puint16(windowmanager.getBuffer(0)); + dest:= dest + (y*(1280 * 16)) + (x * 8); + dest32:= puint32(dest); + for i:=0 to 15 do begin + dest32[(i*640)+0]:= (dest32[(i*640)+0] AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); + dest32[(i*640)+1]:= (dest32[(i*640)+1] AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); + dest32[(i*640)+2]:= (dest32[(i*640)+2] AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); + dest32[(i*640)+3]:= (dest32[(i*640)+3] AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); + end; + //windowmanager.redraw; +end; + +procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16); +var + dest : puint16; + dest32 : puint32; + fgcolor32, bgcolor32 : uint32; + mask : puint32; + i : uint32; + +begin + if not ready then exit; + fgcolor32:= fgcolor OR (fgcolor SHL 16); + bgcolor32:= bgcolor OR (bgcolor SHL 16); + mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); + dest:= puint16(multibootinfo^.framebuffer_addr); + //dest:= puint16(windowmanager.getBuffer(0)); + dest:= dest + (y*(1280 * 16)) + (x * 8); + dest32:= puint32(dest); + for i:=0 to 15 do begin + dest32[(i*640)+0]:= (bgcolor32 AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); + dest32[(i*640)+1]:= (bgcolor32 AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); + dest32[(i*640)+2]:= (bgcolor32 AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); + dest32[(i*640)+3]:= (bgcolor32 AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); + end; + //windowmanager.redraw; +end; + +procedure disable_cursor; +begin + outb($3D4, $0A); + outb($3D5, $20); +end; + +procedure init(); [public, alias: 'console_init']; +var + fb: puint32; + +Begin + fb:= puint32(uint32(multibootinfo^.framebuffer_addr)); + kpalloc(uint32(fb)); + initWindows; + Console_Properties.Default_Attribute:= console.combinecolors($FFFF, $0000); + console.clear(); + Ready:= True; +end; + +{ Default Console Write Functions } + +procedure clear(); [public, alias: 'console_clear']; +var + x,y: Byte; + +begin + if WindowManager.Windows[DefaultWND] <> nil then begin + for y:=0 to 63 do begin + for x:=0 to 159 do begin + WindowManager.Windows[DefaultWND]^.Buffer[y][x].Character:= ' '; + WindowManager.Windows[DefaultWND]^.Buffer[y][x].Attributes:= Console_Properties.Default_Attribute; + WindowManager.Windows[DefaultWND]^.row_dirty[y]:= true; + //Console_Matrix[y][x].Character:= ' '; + //Console_Matrix[y][x].Attributes:= Console_Properties.Default_Attribute; + //OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); + end; + end; + WindowManager.Windows[DefaultWND]^.Cursor.X:= 0; + WindowManager.Windows[DefaultWND]^.Cursor.Y:= 0; + //redrawWindows; + end; + //Console_Cursor.X:= 0; + //Console_Cursor.Y:= 0; +end; + +procedure writebin8ex(b : uint8; attributes: uint32); +var + Mask : PMask; + i : uint8; + +begin + Mask:= PMask(@b); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); + end; +end; + +procedure writebin16ex(b : uint16; attributes: uint32); +var + Mask : PMask; + i,j : uint8; + +begin + for j:=1 downto 0 do begin + Mask:= PMask(uint32(@b) + (1 * j)); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); + end; + end; +end; + +procedure writebin32ex(b : uint32; attributes: uint32); +var + Mask : PMask; + i,j : uint8; + +begin + for j:=3 downto 0 do begin + Mask:= PMask(uint32(@b) + (1 * j)); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); + end; + end; +end; + +procedure writebin8(b : uint8); +begin + writebin8ex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin16(b : uint16); +begin + writebin16ex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin32(b : uint32); +begin + writebin32ex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin8lnex(b : uint8; attributes: uint32); +begin + writebin8ex(b, attributes); + console._safeincrement_y(); +end; + +procedure writebin16lnex(b : uint16; attributes: uint32); +begin + writebin16ex(b, attributes); + console._safeincrement_y(); +end; + +procedure writebin32lnex(b : uint32; attributes: uint32); +begin + writebin32ex(b, attributes); + console._safeincrement_y(); +end; + +procedure writebin8ln(b : uint8); +begin + writebin8lnex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin16ln(b : uint16); +begin + writebin16lnex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin32ln(b : uint32); +begin + writebin32lnex(b, Console_Properties.Default_Attribute); +end; + +procedure setdefaultattribute(attribute: uint32); [public, alias: 'console_setdefaultattribute']; +begin + Console_Properties.Default_Attribute:= attribute; +end; + +procedure writechar(character: char); [public, alias: 'console_writechar']; +begin + console.writecharex(character, Console_Properties.Default_Attribute); +end; + +procedure writestring(str: PChar); [public, alias: 'console_writestring']; +begin + console.writestringex(str, Console_Properties.Default_Attribute); +end; + +procedure writeint(i: Integer); [public, alias: 'console_writeint']; +begin + console.writeintex(i, Console_Properties.Default_Attribute); +end; + +procedure writeword(i: DWORD); [public, alias: 'console_writeword']; +begin + console.writewordex(i, Console_Properties.Default_Attribute); +end; + +procedure writecharln(character: char); [public, alias: 'console_writecharln']; +begin + console.writecharlnex(character, Console_Properties.Default_Attribute); +end; + +procedure writestringln(str: PChar); [public, alias: 'console_writestringln']; +begin + console.writestringlnex(str, Console_Properties.Default_Attribute); +end; + +procedure writeintln(i: Integer); [public, alias: 'console_writeintln']; +begin + console.writeintlnex(i, Console_Properties.Default_Attribute); +end; + +procedure writewordln(i: DWORD); [public, alias: 'console_writewordln']; +begin + console.writewordlnex(i, Console_Properties.Default_Attribute); +end; + +procedure writecharex(character: char; attributes: uint32); [public, alias: 'console_writecharex']; +begin + if WindowManager.Windows[DefaultWND] <> nil then begin + WindowManager.Windows[DefaultWND]^.Buffer[WindowManager.Windows[DefaultWND]^.Cursor.Y][WindowManager.Windows[DefaultWND]^.Cursor.X].Character:= character; + WindowManager.Windows[DefaultWND]^.Buffer[WindowManager.Windows[DefaultWND]^.Cursor.Y][WindowManager.Windows[DefaultWND]^.Cursor.X].Attributes:= attributes; + //outputChar(character, Console_Cursor.X, Console_Cursor.Y, attributes SHR 16, attributes AND $FFFF); + //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Character:= character; + //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Attributes:= attributes; + WindowManager.Windows[DefaultWND]^.row_dirty[WindowManager.Windows[DefaultWND]^.Cursor.Y]:= true; + console._safeincrement_x(); + end; +end; + +procedure writehexpair(b : uint8); +var + bn : Array[0..1] of uint8; + i : uint8; + +begin + bn[0]:= b SHR 4; + bn[1]:= b AND $0F; + for i:=0 to 1 do begin + case bn[i] of + 0:writestring('0'); + 1:writestring('1'); + 2:writestring('2'); + 3:writestring('3'); + 4:writestring('4'); + 5:writestring('5'); + 6:writestring('6'); + 7:writestring('7'); + 8:writestring('8'); + 9:writestring('9'); + 10:writestring('A'); + 11:writestring('B'); + 12:writestring('C'); + 13:writestring('D'); + 14:writestring('E'); + 15:writestring('F'); + end; + end; +end; + +procedure writehexex(i : dword; attributes: uint32); [public, alias: 'console_writehexex']; +var + Hex : Array[0..7] of Byte; + Res : DWORD; + Rem : DWORD; + c : Integer; + +begin + for c:=0 to 7 do begin + Hex[c]:= 0; + end; + c:=0; + Res:= i; + Rem:= Res mod 16; + while Res > 0 do begin + Hex[c]:= Rem; + Res:= Res div 16; + Rem:= Res mod 16; + c:=c+1; + end; + writestringex('0x', attributes); + for c:=7 downto 0 do begin + if Hex[c] <> 255 then begin + case Hex[c] of + 0:writecharex('0', attributes); + 1:writecharex('1', attributes); + 2:writecharex('2', attributes); + 3:writecharex('3', attributes); + 4:writecharex('4', attributes); + 5:writecharex('5', attributes); + 6:writecharex('6', attributes); + 7:writecharex('7', attributes); + 8:writecharex('8', attributes); + 9:writecharex('9', attributes); + 10:writecharex('A', attributes); + 11:writecharex('B', attributes); + 12:writecharex('C', attributes); + 13:writecharex('D', attributes); + 14:writecharex('E', attributes); + 15:writecharex('F', attributes); + else writecharex('?', attributes); + end; + end; + end; +end; + +procedure writehex(i : dword); [public, alias: 'console_writehex']; +begin + console.writehexex(i, Console_Properties.Default_Attribute); +end; + +procedure writehexlnex(i : dword; attributes: uint32); +begin + console.writehexex(i, attributes); + console._safeincrement_y(); +end; + +procedure writehexln(i : dword); +begin + writehexlnex(i, Console_Properties.Default_Attribute); +end; + +procedure Output(identifier : PChar; str : PChar); +begin + writestring('['); + writestring(identifier); + writestring('] '); + writestring(str); +end; + +procedure Outputln(identifier : PChar; str : PChar); +begin + Output(identifier, str); + writestringln(' '); +end; + +procedure writestringex(str: PChar; attributes: uint32); [public, alias: 'console_writestringex']; +var + i : integer; + +begin + i:= 0; + while (str[i] <> #0) do begin + console.writecharex(str[i], attributes); + i:=i+1; + end; +end; + +procedure writeintex(i: Integer; attributes: uint32); [public, alias: 'console_writeintex']; +var + buffer: array [0..11] of Char; + str: PChar; + digit: DWORD; + minus: Boolean; +begin + str := @buffer[11]; + str^ := #0; + if (i < 0) then begin + digit := -i; + minus := True; + end else begin + digit := i; + minus := False; + end; + repeat + Dec(str); + str^ := Char((digit mod 10) + Byte('0')); + digit := digit div 10; + until (digit = 0); + if (minus) then begin + Dec(str); + str^ := '-'; + end; + console.writestringex(str, attributes); +end; + +procedure writewordex(i: DWORD; attributes: uint32); [public, alias: 'console_writedwordex']; +var + buffer: array [0..11] of Char; + str: PChar; + digit: DWORD; +begin + for digit := 0 to 10 do buffer[digit] := '0'; + str := @buffer[11]; + str^ := #0; + digit := i; + repeat + Dec(str); + str^ := Char((digit mod 10) + Byte('0')); + digit := digit div 10; + until (digit = 0); + console.writestringex(@Buffer[0], attributes); +end; + +procedure writecharlnex(character: char; attributes: uint32); [public, alias: 'console_writecharlnex']; +begin + console.writecharex(character, attributes); + console._safeincrement_y(); +end; + +procedure writestringlnex(str: PChar; attributes: uint32); [public, alias: 'console_writestringlnex']; +begin + console.writestringex(str, attributes); + console._safeincrement_y(); +end; + +procedure writeintlnex(i: Integer; attributes: uint32); [public, alias: 'console_writeintlnex']; +begin + console.writeintex(i, attributes); + console._safeincrement_y(); +end; + +procedure writewordlnex(i: DWORD; attributes: uint32); [public, alias: 'console_writewordlnex']; +begin + console.writewordex(i, attributes); + console._safeincrement_y(); +end; + +function combinecolors(Foreground, Background: uint16): uint32; +begin + combinecolors:= (uint32(Foreground) SHL 16) OR Background; +end; + +procedure _update_cursor(); [public, alias: '_console_update_cursor']; +var + pos : word; + b : byte; + +begin + //pos:= (Console_Cursor.Y * 80) + Console_Cursor.X; + //outb($3D4, $0F); + //b:= pos and $00FF; + //outb($3D5, b); + //outb($3D4, $0E); + //b:= pos shr 8; + //outb($3D5, b); + if CONSOLE_SLOW_REDRAW then redrawWindows; + //sleep(1); +end; + +procedure backspace; +begin + if WindowManager.Windows[DefaultWND] <> nil then begin + Dec(WindowManager.Windows[DefaultWND]^.Cursor.X); + writechar(' '); + Dec(WindowManager.Windows[DefaultWND]^.Cursor.X); + _update_cursor(); + end; +end; + +procedure _increment_x(); [public, alias: '_console_increment_x']; +begin + if WindowManager.Windows[DefaultWND] <> nil then begin + WindowManager.Windows[DefaultWND]^.Cursor.X:= WindowManager.Windows[DefaultWND]^.Cursor.X+1; + If WindowManager.Windows[DefaultWND]^.Cursor.X > WindowManager.Windows[DefaultWND]^.WND_W-1 then WindowManager.Windows[DefaultWND]^.Cursor.X:= 0; + console._update_cursor; + end; + //Console_Cursor.X:= Console_Cursor.X+1; + //If Console_Cursor.X > 159 then Console_Cursor.X:= 0; + //console._update_cursor; +end; + +procedure _increment_y(); [public, alias: '_console_increment_y']; +begin + if WindowManager.Windows[DefaultWND] <> nil then begin + WindowManager.Windows[DefaultWND]^.Cursor.Y:= WindowManager.Windows[DefaultWND]^.Cursor.Y+1; + If WindowManager.Windows[DefaultWND]^.Cursor.Y > WindowManager.Windows[DefaultWND]^.WND_H-1 then begin + console._newline(); + WindowManager.Windows[DefaultWND]^.Cursor.Y:= WindowManager.Windows[DefaultWND]^.WND_H-1; + end; + console._update_cursor; + end; + //Console_Cursor.Y:= Console_Cursor.Y+1; + //If Console_Cursor.Y > 63 then begin + // console._newline(); + // Console_Cursor.Y:= 63; + //end; + //console._update_cursor; +end; + +procedure _safeincrement_x(); [public, alias: '_console_safeincrement_x']; +begin + if WindowManager.Windows[DefaultWND] <> nil then begin + WindowManager.Windows[DefaultWND]^.Cursor.X:= WindowManager.Windows[DefaultWND]^.Cursor.X+1; + if WindowManager.Windows[DefaultWND]^.Cursor.X > WindowManager.Windows[DefaultWND]^.WND_W-1 then begin + console._safeincrement_y(); + end; + console._update_cursor; + end; + //Console_Cursor.X:= Console_Cursor.X+1; + //If Console_Cursor.X > 159 then begin + // console._safeincrement_y(); + //end; + //console._update_cursor; +end; + +procedure _safeincrement_y(); [public, alias: '_console_safeincrement_y']; +begin + if WindowManager.Windows[DefaultWND] <> nil then begin + WindowManager.Windows[DefaultWND]^.Cursor.Y:= WindowManager.Windows[DefaultWND]^.Cursor.Y+1; + if WindowManager.Windows[DefaultWND]^.Cursor.Y > WindowManager.Windows[DefaultWND]^.WND_H-1 then begin + console._newline(); + WindowManager.Windows[DefaultWND]^.Cursor.Y:= WindowManager.Windows[DefaultWND]^.WND_H-1; + end; + WindowManager.Windows[DefaultWND]^.Cursor.X:= 0; + console._update_cursor; + end; + //Console_Cursor.Y:= Console_Cursor.Y+1; + //If Console_Cursor.Y > 63 then begin + // console._newline(); + // Console_Cursor.Y:= 63; + //end; + //Console_Cursor.X:= 0; + //console._update_cursor; +end; + +procedure _newline(); [public, alias: '_console_newline']; +var + x, y : byte; + +begin + if WindowManager.Windows[DefaultWND] <> nil then begin + if WindowManager.Windows[DefaultWND]^.WND_W = 0 then exit; + if WindowManager.Windows[DefaultWND]^.WND_H = 0 then exit; + for x:=0 to WindowManager.Windows[DefaultWND]^.WND_W do begin + for y:=0 to WindowManager.Windows[DefaultWND]^.WND_H-1 do begin + WindowManager.Windows[DefaultWND]^.buffer[y][x]:= WindowManager.Windows[DefaultWND]^.buffer[y+1][x]; + WindowManager.Windows[DefaultWND]^.row_dirty[y]:= true; + //Console_Matrix[y][x]:= Console_Matrix[y+1][x]; + end; + end; + for x:=0 to WindowManager.Windows[DefaultWND]^.WND_W do begin + WindowManager.Windows[DefaultWND]^.buffer[WindowManager.Windows[DefaultWND]^.WND_H-1][x].Character:= ' '; + WindowManager.Windows[DefaultWND]^.buffer[WindowManager.Windows[DefaultWND]^.WND_H-1][x].Attributes:= $FFFF0000; + //Console_Matrix[63][x].Character:= ' '; + //Console_Matrix[63][x].Attributes:= $FFFF0000; + end; + //for y:=0 to 63 do begin + // for x:=0 to 159 do begin + // OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); + // end; + //end; + console._update_cursor; + end; +end; + +{ WND Specific Console Draw Functions } + +procedure clearWND(WND : uint32); +var + x,y: Byte; + +begin + if WindowManager.Windows[WND] <> nil then begin + for y:=0 to 63 do begin + for x:=0 to 159 do begin + WindowManager.Windows[WND]^.Buffer[y][x].Character:= ' '; + WindowManager.Windows[WND]^.Buffer[y][x].Attributes:= Console_Properties.Default_Attribute; + WindowManager.Windows[WND]^.row_dirty[y]:= true; + //Console_Matrix[y][x].Character:= ' '; + //Console_Matrix[y][x].Attributes:= Console_Properties.Default_Attribute; + //OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); + end; + end; + WindowManager.Windows[WND]^.Cursor.X:= 0; + WindowManager.Windows[WND]^.Cursor.Y:= 0; + //redrawWindows; + end; + //Console_Cursor.X:= 0; + //Console_Cursor.Y:= 0; +end; + +procedure clearWNDEx(WND : uint32; attributes : uint32); +var + x,y: Byte; + +begin + if WindowManager.Windows[WND] <> nil then begin + for y:=0 to 63 do begin + for x:=0 to 159 do begin + WindowManager.Windows[WND]^.Buffer[y][x].Character:= ' '; + WindowManager.Windows[WND]^.Buffer[y][x].Attributes:= attributes; + WindowManager.Windows[WND]^.row_dirty[y]:= true; + end; + end; + WindowManager.Windows[WND]^.Cursor.X:= 0; + WindowManager.Windows[WND]^.Cursor.Y:= 0; + end; +end; + +procedure writebin8exWND(b : uint8; attributes: uint32; WND : uint32); +var + Mask : PMask; + i : uint8; + +begin + Mask:= PMask(@b); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharexWND('1', attributes, WND) else writecharexWND('0', attributes, WND); + end; +end; + +procedure writebin16exWND(b : uint16; attributes: uint32; WND : uint32); +var + Mask : PMask; + i,j : uint8; + +begin + for j:=1 downto 0 do begin + Mask:= PMask(uint32(@b) + (1 * j)); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharexWND('1', attributes, WND) else writecharexWND('0', attributes, WND); + end; + end; +end; + +procedure writebin32exWND(b : uint32; attributes: uint32; WND : uint32); +var + Mask : PMask; + i,j : uint8; + +begin + for j:=3 downto 0 do begin + Mask:= PMask(uint32(@b) + (1 * j)); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharexWND('1', attributes, WND) else writecharexWND('0', attributes, WND); + end; + end; +end; + +procedure writebin8WND(b : uint8; WND : uint32); +begin + writebin8exWND(b, Console_Properties.Default_Attribute, WND); +end; + +procedure writebin16WND(b : uint16; WND : uint32); +begin + writebin16exWND(b, Console_Properties.Default_Attribute, WND); +end; + +procedure writebin32WND(b : uint32; WND : uint32); +begin + writebin32exWND(b, Console_Properties.Default_Attribute, WND); +end; + +procedure writebin8lnexWND(b : uint8; attributes: uint32; WND : uint32); +begin + writebin8exWND(b, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writebin16lnexWND(b : uint16; attributes: uint32; WND : uint32); +begin + writebin16exWND(b, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writebin32lnexWND(b : uint32; attributes: uint32; WND : uint32); +begin + writebin32exWND(b, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writebin8lnWND(b : uint8; WND : uint32); +begin + writebin8lnexWND(b, Console_Properties.Default_Attribute, WND); +end; + +procedure writebin16lnWND(b : uint16; WND : uint32); +begin + writebin16lnexWND(b, Console_Properties.Default_Attribute, WND); +end; + +procedure writebin32lnWND(b : uint32; WND : uint32); +begin + writebin32lnexWND(b, Console_Properties.Default_Attribute, WND); +end; + +{procedure setdefaultattribute(attribute: uint32); [public, alias: 'console_setdefaultattribute']; +begin + Console_Properties.Default_Attribute:= attribute; +end;} + +procedure writecharWND(character: char; WND : uint32); +begin + console.writecharexWND(character, Console_Properties.Default_Attribute, WND); +end; + +procedure writestringWND(str: PChar; WND : uint32); +begin + console.writestringexWND(str, Console_Properties.Default_Attribute, WND); +end; + +procedure writeintWND(i: Integer; WND : uint32); +begin + console.writeintexWND(i, Console_Properties.Default_Attribute, WND); +end; + +procedure writewordWND(i: DWORD; WND : uint32); +begin + console.writewordexWND(i, Console_Properties.Default_Attribute, WND); +end; + +procedure writecharlnWND(character: char; WND : uint32); +begin + console.writecharlnexWND(character, Console_Properties.Default_Attribute, WND); +end; + +procedure writestringlnWND(str: PChar; WND : uint32); +begin + console.writestringlnexWND(str, Console_Properties.Default_Attribute, WND); +end; + +procedure writeintlnWND(i: Integer; WND : uint32); +begin + console.writeintlnexWND(i, Console_Properties.Default_Attribute, WND); +end; + +procedure writewordlnWND(i: DWORD; WND : uint32); +begin + console.writewordlnexWND(i, Console_Properties.Default_Attribute, WND); +end; + +procedure writecharexWND(character: char; attributes: uint32; WND : uint32); +begin + if WindowManager.Windows[WND] <> nil then begin + WindowManager.Windows[WND]^.Buffer[WindowManager.Windows[WND]^.Cursor.Y][WindowManager.Windows[WND]^.Cursor.X].Character:= character; + WindowManager.Windows[WND]^.Buffer[WindowManager.Windows[WND]^.Cursor.Y][WindowManager.Windows[WND]^.Cursor.X].Attributes:= attributes; + //outputChar(character, Console_Cursor.X, Console_Cursor.Y, attributes SHR 16, attributes AND $FFFF); + //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Character:= character; + //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Attributes:= attributes; + WindowManager.Windows[WND]^.row_dirty[WindowManager.Windows[WND]^.Cursor.Y]:= true; + console._safeincrement_x_WND(WND); + end; +end; + +procedure writehexpairWND(b : uint8; WND : uint32); +var + bn : Array[0..1] of uint8; + i : uint8; + +begin + bn[0]:= b SHR 4; + bn[1]:= b AND $0F; + for i:=0 to 1 do begin + case bn[i] of + 0 :writestringWND('0', WND); + 1 :writestringWND('1', WND); + 2 :writestringWND('2', WND); + 3 :writestringWND('3', WND); + 4 :writestringWND('4', WND); + 5 :writestringWND('5', WND); + 6 :writestringWND('6', WND); + 7 :writestringWND('7', WND); + 8 :writestringWND('8', WND); + 9 :writestringWND('9', WND); + 10:writestringWND('A', WND); + 11:writestringWND('B', WND); + 12:writestringWND('C', WND); + 13:writestringWND('D', WND); + 14:writestringWND('E', WND); + 15:writestringWND('F', WND); + end; + end; +end; + +procedure writehexexWND(i : dword; attributes: uint32; WND : uint32); +var + Hex : Array[0..7] of Byte; + Res : DWORD; + Rem : DWORD; + c : Integer; + +begin + for c:=0 to 7 do begin + Hex[c]:= 0; + end; + c:=0; + Res:= i; + Rem:= Res mod 16; + while Res > 0 do begin + Hex[c]:= Rem; + Res:= Res div 16; + Rem:= Res mod 16; + c:=c+1; + end; + writestringexWND('0x', attributes, WND); + for c:=7 downto 0 do begin + if Hex[c] <> 255 then begin + case Hex[c] of + 0:writecharexWND('0', attributes, WND); + 1:writecharexWND('1', attributes, WND); + 2:writecharexWND('2', attributes, WND); + 3:writecharexWND('3', attributes, WND); + 4:writecharexWND('4', attributes, WND); + 5:writecharexWND('5', attributes, WND); + 6:writecharexWND('6', attributes, WND); + 7:writecharexWND('7', attributes, WND); + 8:writecharexWND('8', attributes, WND); + 9:writecharexWND('9', attributes, WND); + 10:writecharexWND('A', attributes, WND); + 11:writecharexWND('B', attributes, WND); + 12:writecharexWND('C', attributes, WND); + 13:writecharexWND('D', attributes, WND); + 14:writecharexWND('E', attributes, WND); + 15:writecharexWND('F', attributes, WND); + else writecharexWND('?', attributes, WND); + end; + end; + end; +end; + +procedure writehexWND(i : dword; WND : uint32); +begin + console.writehexexWND(i, Console_Properties.Default_Attribute, WND); +end; + +procedure writehexlnexWND(i : dword; attributes: uint32; WND : uint32); +begin + console.writehexexWND(i, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writehexlnWND(i : dword; WND : uint32); +begin + writehexlnexWND(i, Console_Properties.Default_Attribute, WND); +end; + +procedure OutputWND(identifier : PChar; str : PChar; WND : uint32); +begin + writestringWND('[', WND); + writestringWND(identifier, WND); + writestringWND('] ', WND); + writestringWND(str, WND); +end; + +procedure OutputlnWND(identifier : PChar; str : PChar; WND : uint32); +begin + OutputWND(identifier, str, WND); + writestringlnWND(' ', WND); +end; + +procedure writestringexWND(str: PChar; attributes: uint32; WND : uint32); +var + i : integer; + +begin + i:= 0; + while (str[i] <> #0) do begin + console.writecharexWND(str[i], attributes, WND); + i:=i+1; + end; +end; + +procedure writeintexWND(i: Integer; attributes: uint32; WND : uint32); +var + buffer: array [0..11] of Char; + str: PChar; + digit: DWORD; + minus: Boolean; +begin + str := @buffer[11]; + str^ := #0; + if (i < 0) then begin + digit := -i; + minus := True; + end else begin + digit := i; + minus := False; + end; + repeat + Dec(str); + str^ := Char((digit mod 10) + Byte('0')); + digit := digit div 10; + until (digit = 0); + if (minus) then begin + Dec(str); + str^ := '-'; + end; + console.writestringexWND(str, attributes, WND); +end; + +procedure writewordexWND(i: DWORD; attributes: uint32; WND : uint32); +var + buffer: array [0..11] of Char; + str: PChar; + digit: DWORD; +begin + for digit := 0 to 10 do buffer[digit] := '0'; + str := @buffer[11]; + str^ := #0; + digit := i; + repeat + Dec(str); + str^ := Char((digit mod 10) + Byte('0')); + digit := digit div 10; + until (digit = 0); + console.writestringexWND(@Buffer[0], attributes, WND); +end; + +procedure writecharlnexWND(character: char; attributes: uint32; WND : uint32); +begin + console.writecharexWND(character, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writestringlnexWND(str: PChar; attributes: uint32; WND : uint32); +begin + console.writestringexWND(str, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writeintlnexWND(i: Integer; attributes: uint32; WND : uint32); +begin + console.writeintexWND(i, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writewordlnexWND(i: DWORD; attributes: uint32; WND : uint32); +begin + console.writewordexWND(i, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure backspaceWND(WND : uint32); +begin + if WindowManager.Windows[WND] <> nil then begin + Dec(WindowManager.Windows[WND]^.Cursor.X); + writecharWND(' ', WND); + Dec(WindowManager.Windows[WND]^.Cursor.X); + _update_cursor(); + end; +end; + +procedure _increment_x_WND(WND : uint32); +begin + if WindowManager.Windows[WND] <> nil then begin + WindowManager.Windows[WND]^.Cursor.X:= WindowManager.Windows[WND]^.Cursor.X+1; + If WindowManager.Windows[WND]^.Cursor.X > WindowManager.Windows[WND]^.WND_W-1 then WindowManager.Windows[WND]^.Cursor.X:= 0; + console._update_cursor; + end; + //Console_Cursor.X:= Console_Cursor.X+1; + //If Console_Cursor.X > 159 then Console_Cursor.X:= 0; + //console._update_cursor; +end; + +procedure _increment_y_WND(WND : uint32); +begin + if WindowManager.Windows[WND] <> nil then begin + WindowManager.Windows[WND]^.Cursor.Y:= WindowManager.Windows[WND]^.Cursor.Y+1; + If WindowManager.Windows[WND]^.Cursor.Y > WindowManager.Windows[WND]^.WND_H-1 then begin + console._newlineWND(WND); + WindowManager.Windows[WND]^.Cursor.Y:= WindowManager.Windows[WND]^.WND_H-1; + end; + console._update_cursor; + end; + //Console_Cursor.Y:= Console_Cursor.Y+1; + //If Console_Cursor.Y > 63 then begin + // console._newline(); + // Console_Cursor.Y:= 63; + //end; + //console._update_cursor; +end; + +procedure _safeincrement_x_WND(WND : uint32); +begin + if WindowManager.Windows[WND] <> nil then begin + WindowManager.Windows[WND]^.Cursor.X:= WindowManager.Windows[WND]^.Cursor.X+1; + if WindowManager.Windows[WND]^.Cursor.X > WindowManager.Windows[WND]^.WND_W-1 then begin + console._safeincrement_y_WND(WND); + end; + console._update_cursor; + end; + //Console_Cursor.X:= Console_Cursor.X+1; + //If Console_Cursor.X > 159 then begin + // console._safeincrement_y(); + //end; + //console._update_cursor; +end; + +procedure _safeincrement_y_WND(WND : uint32); +begin + if WindowManager.Windows[WND] <> nil then begin + WindowManager.Windows[WND]^.Cursor.Y:= WindowManager.Windows[WND]^.Cursor.Y+1; + if WindowManager.Windows[WND]^.Cursor.Y > WindowManager.Windows[WND]^.WND_H-1 then begin + console._newlineWND(WND); + WindowManager.Windows[WND]^.Cursor.Y:= WindowManager.Windows[WND]^.WND_H-1; + end; + WindowManager.Windows[WND]^.Cursor.X:= 0; + console._update_cursor; + end; + //Console_Cursor.Y:= Console_Cursor.Y+1; + //If Console_Cursor.Y > 63 then begin + // console._newline(); + // Console_Cursor.Y:= 63; + //end; + //Console_Cursor.X:= 0; + //console._update_cursor; +end; + +procedure _newlineWND(WND : uint32); +var + x, y : byte; + +begin + if WindowManager.Windows[WND] <> nil then begin + if WindowManager.Windows[WND]^.WND_W = 0 then exit; + if WindowManager.Windows[WND]^.WND_H = 0 then exit; + for x:=0 to WindowManager.Windows[WND]^.WND_W do begin + for y:=0 to WindowManager.Windows[WND]^.WND_H-1 do begin + WindowManager.Windows[WND]^.buffer[y][x]:= WindowManager.Windows[WND]^.buffer[y+1][x]; + WindowManager.Windows[WND]^.row_dirty[y]:= true; + //Console_Matrix[y][x]:= Console_Matrix[y+1][x]; + end; + end; + for x:=0 to WindowManager.Windows[WND]^.WND_W do begin + WindowManager.Windows[WND]^.buffer[WindowManager.Windows[WND]^.WND_H-1][x].Character:= ' '; + WindowManager.Windows[WND]^.buffer[WindowManager.Windows[WND]^.WND_H-1][x].Attributes:= $FFFF0000; + //Console_Matrix[63][x].Character:= ' '; + //Console_Matrix[63][x].Attributes:= $FFFF0000; + end; + //for y:=0 to 63 do begin + // for x:=0 to 159 do begin + // OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); + // end; + //end; + console._update_cursor; + end; +end; + +end. diff --git a/src/console.pas b/src/console.pas index 39842a45..d215dff3 100644 --- a/src/console.pas +++ b/src/console.pas @@ -1,2709 +1,2709 @@ -// Copyright 2021 Kieron Morris -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -{ - Console - Provides Screen/Window management & drawing. - - @author(Kieron Morris ) -} -unit console; - -interface - -uses - util, - bios_data_area, - multiboot, - fonts, - tracer; - -type - { 4-bit nibble representing a color. } - TColor = ( Black = $0, - Blue = $1, - Green = $2, - Aqua = $3, - Red = $4, - Purple = $5, - Yellow = $6, - White = $7, - Gray = $8, - lBlue = $9, - lGreen = $A, - lAqua = $B, - lRed = $C, - lPurple = $D, - lYellow = $E, - lWhite = $F ); - - { Window Manager Events. } - TEventType = ( EVENT_DRAW, - EVENT_MOUSE_CLICK, - EVENT_MOUSE_MOVE, - EVENT_MOUSE_DOWN, - EVENT_MOUSE_UP, - EVENT_KEY_PRESSED, - EVENT_CLOSE, - EVENT_MINIMIZE, - EVENT_FOCUS, - EVENT_LOSE_FOCUS ); - - { Properties pertaining to the raw screen matrix. } - TConsoleProperties = record - Default_Attribute : uint32; //< Attribute (Colors) to use when no override defined. - Width : uint32; - Height : uint32; - BitsPerPixel : uint8; - MAX_CELL_X : uint32; - MAX_CELL_Y : uint32; - end; - PConsoleProperties = ^TConsoleProperties; - -{! Default Buffer Specific } - -{ - Initialize the Frame Buffer & Window Manager ready for use. -} -procedure init(); - -{ - Clear the Frame Buffer. -} -procedure clear(); - -{ - Set the default set of attributes to be used when drawing to the screen. - @param(attribute A 32-bit value representing the Foreground & Background colors.) -} -procedure setdefaultattribute(attribute : uint32); - -{ - @bold(Text mode only!) - Disable the cursor/text-caret. - @deprecated -} -procedure disable_cursor; - -{ - Write a single 8-bit character to the screen. - @param(character An 8-bit value representing an ASCII character.) -} -procedure writechar(character : char); - -{ - Write a single 8-bit character to the screen, followed by starting a new line. - @param(character An 8-bit value representing an ASCII character.) -} -procedure writecharln(character : char); - -{ - Write a single 8-bit character to the screen, specifying custom color attributes. - @param(character An 8-bit value representing an ASCII character.) - @param(attributes A 32-bit value representing the colors for the background and foreground.) -} -procedure writecharex(character : char; attributes: uint32); - -{ - Write a single 8-bit character to the screen, followed by starting a new line, specifying custom color attributes. - @param(character An 8-bit value representing an ASCII character.) - @param(attributes A 32-bit value representing the colors for the background and foreground.) -} -procedure writecharlnex(character : char; attributes: uint32); - -{ - Simple console write for debugging. - @param(identifier A NULL terminated string with the name of the module printing the output.) - @param(str A NULL terminated string with the debug message.) -} -procedure Output(identifier : PChar; str : PChar); - -{ - Simple console writeln for debugging. - @param(identifier A NULL terminated string with the name of the module printing the output.) - @param(str A NULL terminated string with the debug message.) -} -procedure Outputln(identifier : PChar; str : PChar); - -{ - Write a NULL terminated string to the console. - @param(str A NULL terminated string with the debug message.) -} -procedure writestring(str: PChar); - -{ - Write a NULL terminated string to the console, followed by a new-line. - @param(str A NULL terminated string with the debug message.) -} -procedure writestringln(str: PChar); - -{ - Write a NULL terminated string to the console, with the specified attributes. - @param(str A NULL terminated string with the debug message.) - @param(attributes A 32-bit representation of the background/foreground colors.) -} -procedure writestringex(str: PChar; attributes: uint32); - -{ - Write a NULL terminated string + new-line to the console, with the specified attributes. - @param(str A NULL terminated string with the debug message.) - @param(attributes A 32-bit representation of the background/foreground colors.) -} -procedure writestringlnex(str: PChar; attributes: uint32); - -{ - Write a 32-bit value to the console. - @param(i A 32-bit value.) -} -procedure writeint(i: Integer); - -{ - Write a 32-bit value to the console followed by a new-line. - @param(i A 32-bit value.) -} -procedure writeintln(i: Integer); - -{ - Write a 32-bit value to the console, with the specified attributes. - @param(i A 32-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) -} -procedure writeintex(i: Integer; attributes: uint32); - -{ - Write a 32-bit value + new-line to the console, with the specified attributes. - @param(i A 32-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) -} -procedure writeintlnex(i: Integer; attributes: uint32); - -{ - Write an 8-bit Hex Pair to the console. - @param(b An 8-bit value.) -} -procedure writehexpair(b : uint8); - -{ - Write a 32-bit value as Hex Pairs to the console. - @param(i A 32-bit value.) -} -procedure writehex(i: DWORD); - -{ - Write a 32-bit value as Hex Pairs to the console, followed by a new-line. - @param(i A 32-bit value.) -} -procedure writehexln(i: DWORD); - -{ - Write a 32-bit value as Hex Pairs to the console, with the specified attributes. - @param(b A 32-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) -} -procedure writehexex(i : DWORD; attributes: uint32); - -{ - Write a 32-bit value as Hex Pairs + new-line to the console, with the specified attributes. - @param(b A 32-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) -} -procedure writehexlnex(i: DWORD; attributes: uint32); - -{ - Write an 8-bit value as binary to the console. - @param(b An 8-bit value.) -} -procedure writebin8(b : uint8); - -{ - Write an 8-bit value as binary to the console, followed by a new-line. - @param(b An 8-bit value.) -} -procedure writebin8ln(b : uint8); - -{ - Write an 8-bit value as binary to the console, with the specified attributes. - @param(b An 8-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) -} -procedure writebin8ex(b : uint8; attributes: uint32); - -{ - Write an 8-bit value as binary + new-line to the console, with the specified attributes. - @param(b An 8-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) -} -procedure writebin8lnex(b : uint8; attributes: uint32); - -{ - Write a 16-bit value as binary to the console. - @param(b A 16-bit value.) -} -procedure writebin16(b : uint16); - -{ - Write an 16-bit value as binary to the console, followed by a new-line. - @param(b A 16-bit value.) -} -procedure writebin16ln(b : uint16); - -{ - Write a 16-bit value as binary to the console, with the specified attributes. - @param(b A 16-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) -} -procedure writebin16ex(b : uint16; attributes: uint32); - -{ - Write a 16-bit value as binary + new-line to the console, with the specified attributes. - @param(b A 16-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) -} -procedure writebin16lnex(b : uint16; attributes: uint32); - -{ - Write a 32-bit value as binary to the console. - @param(b A 32-bit value.) -} -procedure writebin32(b : uint32); - -{ - Write an 32-bit value as binary to the console, followed by a new-line. - @param(b A 32-bit value.) -} -procedure writebin32ln(b : uint32); - -{ - Write a 32-bit value as binary to the console, with the specified attributes. - @param(b A 32-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) -} -procedure writebin32ex(b : uint32; attributes: uint32); - -{ - Write a 32-bit value as binary + new-line to the console, with the specified attributes. - @param(b A 32-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) -} -procedure writebin32lnex(b : uint32; attributes: uint32); - -{ - Move the caret back 1 position and remove the character within the cell the caret occupies. -} -procedure backspace; - -{ - Combine two 16-bit values representing Foreground and Background respectively, into a 32-bit value representing an attribute. - @param(Foreground A 16-bit value representing the foreground color.) - @param(Background A 16-bit value representing the background color.) - @returns(A 32-bit value representing an attribute set. (uint32) ) -} -function combinecolors(Foreground, Background : uint16) : uint32; - -{ Increment the cursor one cell to the right (x+1). } -procedure _increment_x(); - -{ Increment the cursor one cell down (y+1). } -procedure _increment_y(); - -{ Increment the cursor one cell to the right (x+1), wrapping to the next line and performing a Y-Axis scroll when when needed. } -procedure _safeincrement_x(); - -{ Increment the cursor one cell down (y+1), performing a Y-Axis roll when when needed. } -procedure _safeincrement_y(); - -{ Increment the cursor one cell down and reposition it at the first X Cell (y+1, x=0),performing a Y-Axis scroll when needed. } -procedure _newline(); - - - - -{! Window Specific } - -{ - Clear a Window Canvas. - @param(WND A Window Handle.) -} -procedure clearWND(WND : uint32); - -{ - Clear a Window Canvas, with the specified attributes. - @param(WND A Window Handle.) - @param(Attributes A 32-bit value representing an attribute set.) -} -procedure clearWNDEx(WND : uint32; attributes : uint32); - -{ - Write an ASCII character to a specified Window. - @param(Character An 8-bit value representing an ASCII character.) - @param(WND A 32-bit handle to a Window.) -} -procedure writecharWND(character : char; WND : uint32); - -{ - Write a single 8-bit character to a Window, followed by starting a new line. - @param(character An 8-bit value representing an ASCII character.) - @param(WND A 32-bit handle to a Window.) -} -procedure writecharlnWND(character : char; WND : uint32); - -{ - Write a single 8-bit character to a Window, specifying custom color attributes. - @param(character An 8-bit value representing an ASCII character.) - @param(attributes A 32-bit value representing the colors for the background and foreground.) - @param(WND A 32-bit handle to a Window.) -} -procedure writecharexWND(character : char; attributes: uint32; WND : uint32); - -{ - Write a single 8-bit character to a Window, followed by starting a new line, specifying custom color attributes. - @param(character An 8-bit value representing an ASCII character.) - @param(attributes A 32-bit value representing the colors for the background and foreground.) - @param(WND A 32-bit handle to a Window.) -} -procedure writecharlnexWND(character : char; attributes: uint32; WND : uint32); - -{ - Simple console write for debugging to a Window. - @param(identifier A NULL terminated string with the name of the module printing the output.) - @param(str A NULL terminated string with the debug message.) - @param(WND A 32-bit handle to a Window.) -} -procedure OutputWND(identifier : PChar; str : PChar; WND : uint32); - -{ - Simple console writeln for debugging to a Window. - @param(identifier A NULL terminated string with the name of the module printing the output.) - @param(str A NULL terminated string with the debug message.) - @param(WND A 32-bit handle to a Window.) -} -procedure OutputlnWND(identifier : PChar; str : PChar; WND : uint32); - -{ - Write a NULL terminated string to a Window. - @param(str A NULL terminated string with the debug message.) - @param(WND A 32-bit handle to a Window.) -} -procedure writestringWND(str: PChar; WND : uint32); - -{ - Write a NULL terminated string to a Window, followed by a new-line. - @param(str A NULL terminated string with the debug message.) - @param(WND A 32-bit handle to a Window.) -} -procedure writestringlnWND(str: PChar; WND : uint32); - -{ - Write a NULL terminated string to a Window, with the specified attributes. - @param(str A NULL terminated string with the debug message.) - @param(attributes A 32-bit representation of the background/foreground colors.) - @param(WND A 32-bit handle to a Window.) -} -procedure writestringexWND(str: PChar; attributes: uint32; WND : uint32); - -{ - Write a NULL terminated string + new-line to a Window, with the specified attributes. - @param(str A NULL terminated string with the debug message.) - @param(attributes A 32-bit representation of the background/foreground colors.) - @param(WND A 32-bit handle to a Window.) -} -procedure writestringlnexWND(str: PChar; attributes: uint32; WND : uint32); - -{ - Write a 32-bit value to a Window. - @param(i A 32-bit value.) - @param(WND A 32-bit handle to a Window.) -} -procedure writeintWND(i: Integer; WND : uint32); - -{ - Write a 32-bit value to a Window followed by a new-line. - @param(i A 32-bit value.) - @param(WND A 32-bit handle to a Window.) -} -procedure writeintlnWND(i: Integer; WND : uint32); - -{ - Write a 32-bit value to a Window, with the specified attributes. - @param(i A 32-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) - @param(WND A 32-bit handle to a Window.) -} -procedure writeintexWND(i: Integer; attributes: uint32; WND : uint32); - -{ - Write a 32-bit value + new-line to a Window, with the specified attributes. - @param(i A 32-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) - @param(WND A 32-bit handle to a Window.) -} -procedure writeintlnexWND(i: Integer; attributes: uint32; WND : uint32); - -{ - Write an 8-bit Hex Pair to a Window. - @param(b An 8-bit value.) - @param(WND A 32-bit handle to a Window.) -} -procedure writehexpairWND(b : uint8; WND : uint32); - -{ - Write an 8-bit Hex Pair to a Window, with the specified attributes. - @param(b An 8-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) - @param(WND A 32-bit handle to a Window.) -} -procedure writehexpairExWND(b : uint8; Attributes : uint32; WND : uint32); - -{ - Write a 32-bit value as Hex Pairs to a Window. - @param(i A 32-bit value.) - @param(WND A 32-bit handle to a Window.) -} -procedure writehexWND(i: DWORD; WND : uint32); - -{ - Write a 32-bit value as Hex Pairs to a Window, followed by a new-line. - @param(i A 32-bit value.) - @param(WND A 32-bit handle to a Window.) -} -procedure writehexlnWND(i: DWORD; WND : uint32); - -{ - Write a 32-bit value as Hex Pairs to a Window, with the specified attributes. - @param(b A 32-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) - @param(WND A 32-bit handle to a Window.) -} -procedure writehexexWND(i : DWORD; attributes: uint32; WND : uint32); - -{ - Write a 32-bit value as Hex Pairs + new-line to a Window, with the specified attributes. - @param(b A 32-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) - @param(WND A 32-bit handle to a Window.) -} -procedure writehexlnexWND(i: DWORD; attributes: uint32; WND : uint32); - -{ - Write an 8-bit value as binary to a Window. - @param(b An 8-bit value.) - @param(WND A 32-bit handle to a Window.) -} -procedure writebin8WND(b : uint8; WND : uint32); - -{ - Write an 8-bit value as binary to a Window, followed by a new-line. - @param(b An 8-bit value.) - @param(WND A 32-bit handle to a Window.) -} -procedure writebin8lnWND(b : uint8; WND : uint32); - -{ - Write an 8-bit value as binary to a Window, with the specified attributes. - @param(b An 8-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) - @param(WND A 32-bit handle to a Window.) -} -procedure writebin8exWND(b : uint8; attributes: uint32; WND : uint32); - -{ - Write an 8-bit value as binary + new-line to a Window, with the specified attributes. - @param(b An 8-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) - @param(WND A 32-bit handle to a Window.) -} -procedure writebin8lnexWND(b : uint8; attributes: uint32; WND : uint32); - -{ - Write a 16-bit value as binary to a Window. - @param(b A 16-bit value.) - @param(WND A 32-bit handle to a Window.) -} -procedure writebin16WND(b : uint16; WND : uint32); - -{ - Write an 16-bit value as binary to a Window, followed by a new-line. - @param(b A 16-bit value.) - @param(WND A 32-bit handle to a Window.) -} -procedure writebin16lnWND(b : uint16; WND : uint32); - -{ - Write a 16-bit value as binary to a Window, with the specified attributes. - @param(b A 16-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) - @param(WND A 32-bit handle to a Window.) -} -procedure writebin16exWND(b : uint16; attributes: uint32; WND : uint32); - -{ - Write a 16-bit value as binary + new-line to a Window, with the specified attributes. - @param(b A 16-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) - @param(WND A 32-bit handle to a Window.) -} -procedure writebin16lnexWND(b : uint16; attributes: uint32; WND : uint32); - -{ - Write a 32-bit value as binary to a Window. - @param(b A 32-bit value.) - @param(WND A 32-bit handle to a Window.) -} -procedure writebin32WND(b : uint32; WND : uint32); - -{ - Write an 32-bit value as binary to a Window, followed by a new-line. - @param(b A 32-bit value.) - @param(WND A 32-bit handle to a Window.) -} -procedure writebin32lnWND(b : uint32; WND : uint32); - -{ - Write a 32-bit value as binary to a Window, with the specified attributes. - @param(b A 32-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) - @param(WND A 32-bit handle to a Window.) -} -procedure writebin32exWND(b : uint32; attributes: uint32; WND : uint32); - -{ - Write a 32-bit value as binary + new-line to a Window, with the specified attributes. - @param(b A 32-bit value.) - @param(attributes A 32-bit representation of the background/foreground colors.) - @param(WND A 32-bit handle to a Window.) -} -procedure writebin32lnexWND(b : uint32; attributes: uint32; WND : uint32); - -{ - Move a caret belonging to a Window back 1 position and remove the character within the cell the caret occupies. - @param(WND A 32-bit handle to a Window.) -} -procedure backspaceWND(WND : uint32); - -{ - Set the caret belonging to a Window to a specified position. - @param(X The new Horizontal position.) - @param(Y The new Vertical postion.) - @param(WND A 32-bit handle to a Window.) -} -procedure setCursorPosWND(x : uint32; y : uint32; WND : HWND); - -{ - Increment the cursor within a Window one cell to the right (x+1). - @param(WND A 32-bit handle to a Window.) -} -procedure _increment_x_WND(WND : uint32); - -{ - Increment the cursor within a Window one cell down (y+1). - @param(WND A 32-bit handle to a Window.) -} -procedure _increment_y_WND(WND : uint32); - -{ - Increment the cursor one cell down (y+1), performing a Y-Axis roll when when needed. - @param(WND A 32-bit handle to a Window.) -} -procedure _safeincrement_y_WND(WND : uint32); - -{ - Increment the cursor within a Window one cell to the right (x+1), wrapping to the next line and performing a Y-Axis scroll when when needed. - @param(WND A 32-bit handle to a Window.) -} -procedure _safeincrement_x_WND(WND : uint32); - -{ - Increment the cursor within a Window one cell down and reposition it at the first X Cell (y+1, x=0),performing a Y-Axis scroll when needed. - @param(WND A 32-bit handle to a Window.) -} -procedure _newlineWND(WND : uint32); - - - - -{! Drawing } - -{ - Draw an ASCII char to raw screen space conforming to cell constraints. - @param(C An 8-bit ASCII Character.) - @param(X An 8-bit Horizontal Cell position.) - @param(Y An 8-bit Vertical Cell Position.) - @param(fgcolor The 16-bit color of the Character.) - @param(bgcolor The 16-bit background color of the cell.) -} -procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16); - -{ - Draw an ASCII char to raw screen space. - @param(C An 8-bit ASCII Character.) - @param(X A 32-bit Horizontal Screen position.) - @param(Y A 32-bit Vertical Screen Position.) - @param(fgcolor The 16-bit color of the Character.) - @param(bgcolor The 16-bit background color of the cell.) -} -procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16); - -{ - Draw an ASCII char without a background to raw screen space conforming to cell constraints. - @param(C An 8-bit ASCII Character.) - @param(X An 8-bit Horizontal Cell position.) - @param(Y An 8-bit Vertical Cell Position.) - @param(fgcolor The 16-bit color of the Character.) -} -procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16); - -{ - Get 16-bits of pixel information from the screen position(x,y). - @param(X A 32-bit Horizontal Screen position.) - @param(Y A 32-bit Vertical Screen Position.) - @returns(16-bits of Pixel Information) -} -function getPixel(x : uint32; y : uint32) : uint16; - -{ - Draw 16-bits of pixel information at the screen position(x,y). - @param(X A 32-bit Horizontal Screen position.) - @param(Y A 32-bit Vertical Screen Position.) - @param(color 16-bits of Pixel Information) -} -procedure drawPixel(x : uint32; y : uint32; color : uint16); - -{ - Get 32-bits of pixel information from the screen position(x,y). - @param(X A 32-bit Horizontal Screen position.) - @param(Y A 32-bit Vertical Screen Position.) - @returns(32-bits of Pixel Information) -} -function getPixel32(x : uint32; y : uint32) : uint32; - -{ - Draw 32-bits of pixel information at the screen position(x,y). - @param(X A 32-bit Horizontal Screen position.) - @param(Y A 32-bit Vertical Screen Position.) - @param(color 32-bits of Pixel Information) -} -procedure drawPixel32(x : uint32; y : uint32; pixel : uint32); - -{ - Get 64-bits of pixel information from the screen position(x,y). - @param(X A 32-bit Horizontal Screen position.) - @param(Y A 32-bit Vertical Screen Position.) - @returns(64-bits of Pixel Information) -} -function getPixel64(x : uint32; y : uint32) : uint64; - -{ - Draw 64-bits of pixel information at the screen position(x,y). - @param(X A 32-bit Horizontal Screen position.) - @param(Y A 32-bit Vertical Screen Position.) - @param(color 64-bits of Pixel Information) -} -procedure drawPixel64(x : uint32; y : uint32; pixel : uint64); - - - - -{! Windows Methods } - -{ - Set the position of the mouse cursor relative to screen space. - @param(X A 32-bit Horizontal Screen Position.) - @param(Y A 32-bit Vertical Screen Position.) -} -procedure setMousePosition(x : uint32; y : uint32); - -{ - Redraw all of the Window adhearing to Z-Order. -} -procedure redrawWindows; - -{ - Toggle the visibility of a Window. - @param(WND A 32-bit handle to a Window.) -} -procedure toggleWNDVisible(WND : uint32); - -{ - Change a Windows visibility. - @param(WND A 32-bit handle to a Window.) - @param(Visible @true or @false.) -} -procedure setWNDVisible(WND : uint32; visible : boolean); - -{ - Close all open Windows and release handles. -} -procedure closeAllWindows; - -{ - Spawn a new Window at cell(x,y) with specified Width, Height and Title. - @param(X 32-bit Horizontal Cell for the top-left corner of the Window.) - @param(Y 32-bit Vertical Cell for the top-left corner of the Window.) - @param(Width 32-bit Width of the Window in Cells.) - @param(Height 32-bit Height of the Window in Cells.) - @param(Title NULL Terminated String used as the Title for the Window.) - @retruns(A 32-bit Handle for the new Window.) -} -function newWindow(x : uint32; y : uint32; Width : uint32; Height : uint32; Title : PChar) : HWND; - -{ - Register an Event Handler to a Window - @param(WND Handle for the Window the event should be registered against.) - @param(Event Type of event to register.) - @param(Handler Procedure to be called upon the event firing.) - @returns(@true for success @false for failure.) -} -function registerEventHandler(WND : HWND; Event : TEventType; Handler : void) : boolean; - -{ - Forcefully close all Windows -} -procedure forceQuitAll; - -{ - Close a Window specified by its Handle - @param(WND The handle to the target Window.) -} -procedure closeWindow(WND : HWND); - -{ - Enable or disable the drawing of the borders surrounding a Window. - @param(WND A 32-bit Handle to the target Window.) - @param(Enabled @true for borders to be shown, @false for borders to be hidden.) -} -procedure bordersEnabled(WND : HWND; enabled : boolean); - -{ - Set a specified Window as a Shell Window (Window cannot be moved or closed). - @param(WND 32-bit Handle for the target Window.) - @param(b @true to set Target as a Shell Window, @false to set Target as a normal Window.) -} -procedure SetShellWindow(WND : HWND; b : boolean); - -{ - Get the title of a specified Window. - @param(WND 32-bit Handle for the target Window.) - @returns(NULL Terminated PChar.) -} -function getWindowName(WND : HWND) : pchar; - -{ - Enable or disable the mouse. - @param(b @true for mouse enabled, @false for mouse disabled.) -} -procedure mouseEnabled(b : boolean); - -{ - Callback for a MouseDown event. -} -procedure _MouseDown(); - -{ - Callback for a MouseUp event. -} -procedure _MouseUp(); - -{ - Callback for a MouseClick event. - @param(Left @true for a Left-Click, @false for a Right-Click.) -} -procedure _MouseClick(left : boolean); - -{ - Set the attributes used for drawing the border around Windows. - @param(Colors A 32-bit value representing the attributes (background/foreground).) -} -procedure setWindowColors(colors : uint32); - -{ - Get a Pointer to the attribute used for Window Borders. - @returns(A 32-bit pointer to the Borders Attribute.) -} -function getWindowColorPtr : puint32; - -function getMaxCellW : uint32; -function getMaxCellH : uint32; -function getConsoleProperties : PConsoleProperties; - -const - MAX_WINDOWS = 255; //< Maximum number of Windows open. - DefaultWND = 0; //< The Window assigned for output when no Window is specified. (Default). - -implementation - -uses - lmemorymanager, strings, keyboard, serial, terminal; - -type - { Unrasterized representation of a character. } - TCharacter = bitpacked record - Character : Char; //< ASCII Character - attributes : uint32; //< 32-bit Representation of Background/Foreground Colors. - visible : boolean; //< Character is visible when rasterized. @true or @false. - end; - { Pointer to an Unrasterized Character. } - PCharacter = ^TCharacter; - - { Unrasterized screen matrix. } - TVideoMemory = Array[0..1999] of TCharacter; - { Pointer to the Unrasterized screen matrix. } - PVideoMemory = ^TVideoMemory; - - { Font Mask } - TMask = Array[0..63] of Array[0..159] of uint32; - - { 2D Unrasterized Matrix } - T2DVideoMemory = Array[0..63] of Array[0..159] of TCharacter; - { Pointer to 2D Unrasterized Matrix } - P2DVideoMemory = ^T2DVideoMemory; - - TMouseCoord = record - X : sint32; - Y : sint32; - end; - - TCoord = record - X : Byte; - Y : Byte; - end; - - TDrawHook = procedure(); - TMouseClickHook = procedure(x : uint32; y : uint32; left : boolean); - TMouseMoveHook = procedure(x : uint32; y : uint32); - TMouseDownHook = procedure(x : uint32; y : uint32); - TMouseUpHook = procedure(x : uint32; y : uint32); - TKeyPressedHook = procedure(info : TKeyInfo); - TCloseHook = procedure(); - TMinimizeHook = procedure(); - TFocusHook = procedure(); - TLoseFocusHook = procedure(); - - THooks = record - OnDraw : TDrawHook; //Implemented - OnMouseClick : TMouseClickHook; //Implemented - OnMouseMove : TMouseMoveHook; - OnMouseDown : TMouseDownHook; - OnMouseUp : TMouseUpHook; - OnKeyPressed : TKeyPressedHook; //Implemented - OnClose : TCloseHook; //Implemented - OnMinimize : TMinimizeHook; - OnFocus : TFocusHook; //Implemented - OnLoseFocus : TLoseFocusHook; //Implemented - end; - - TWindow = record - visible : boolean; - buffer : T2DVideoMemory; - row_dirty : Array[0..63] of Boolean; - WND_X : uint32; - WND_Y : uint32; - WND_W : uint32; - WND_H : uint32; - Cursor : TCoord; - WND_NAME : PChar; - Hooks : THooks; - Closed : boolean; - Border : boolean; - ShellWND : boolean; - end; - PWindow = ^TWindow; - - TWindows = Array[0..MAX_WINDOWS-1] of PWindow; - TZOrder = Array[0..MAX_WINDOWS-1] of uint32; - TBackOrder = Array[0..MAX_WINDOWS-1] of uint32; - TFrontOrder = Array[0..MAX_WINDOWS-1] of uint32; - - TWindowManager = record - Windows : TWindows; - Z_Order : TZOrder; - Back_Order : TBackOrder; - Front_Order : TFrontOrder; - MousePos : TMouseCoord; - MousePrev : TMouseCoord; - end; - - TMouseDirt = record - TopLeft : TMouseCoord; - BottomRight : TMouseCoord; - end; - -var - Console_Properties : TConsoleProperties; //Generic Properties - Console_Real : T2DVideoMemory; //The real state of the Console/TUI - Console_Matrix : T2DVideoMemory; //The next buffer to be written - Console_Cursor : TCoord; //The text cursor position - WindowManager : TWindowManager; //Window Manager - Ready : Boolean = false; //Is the unit ready for use? - MouseDrawActive : Boolean = false; //Is the Mouse currently being updated? - mouse_dirt : TMouseDirt; //Character Cell(s) the mouse occupies, these need to be rewritten on mouse move. - Window_Border : TCharacter; - Default_Char : TCharacter; - WindowTitleMask : TMask; - WindowMask : TMask; - ExitMask : TMask; - MouseDown : Boolean; - WindowMovePos : TMouseCoord; - MovingWindow : uint32; - UnhandledClick : Boolean = false; - UnhandledClickLeft : Boolean = false; - MouseCursorEnabled : Boolean = true; - OpenTerminal : Boolean = false; - -function getMaxCellW : uint32; -begin - getMaxCellW:= Console_Properties.MAX_CELL_X; -end; - -function getMaxCellH : uint32; -begin - getMaxCellH:= Console_Properties.MAX_CELL_Y; -end; - -function getConsoleProperties : PConsoleProperties; -begin - getConsoleProperties:= PConsoleProperties(@Console_Properties); -end; - -function getWindowColorPtr : puint32; -begin - getWindowColorPtr:= @Window_Border.Attributes; -end; - -procedure setWindowColors(colors : uint32); -begin - Window_Border.Attributes:= colors; -end; - -procedure mouseEnabled(b : boolean); -begin - MouseCursorEnabled:= b; -end; - -procedure _MouseDown(); -begin - MouseDown:= true; -end; - -procedure _MouseUp(); -begin - MouseDown:= false; -end; - -procedure _MouseClick(left : boolean); -begin - if not UnhandledClick then begin - UnhandledClick:= true; - UnhandledClickLeft:= left; - end; -end; - -procedure AddToZOrder(WND : HWND); -var - idx : uint32; - i : uint32; - Window : PWindow; - -begin - idx:= MAX_WINDOWS; - for i:=0 to MAX_WINDOWS-1 do begin - if WindowManager.Z_Order[i] = WND then begin - break; - end; - if WindowManager.Z_Order[i] = MAX_WINDOWS then begin - idx:= i; - break; - end; - end; - if idx <> MAX_WINDOWS then begin - WindowManager.Z_Order[idx]:= WND; - end; -end; - -procedure RemoveFromZOrder(WND : HWND); -var - i : uint32; - idx : uint32; - -begin - idx:= MAX_WINDOWS; - for i:=0 to MAX_WINDOWS-1 do begin - if WindowManager.Z_Order[i] = WND then begin - WindowManager.Z_Order[i]:= MAX_WINDOWS; - idx:= i; - break; - end; - end; - if idx <> MAX_WINDOWS then begin - for i:=idx to MAX_WINDOWS-2 do begin - WindowManager.Z_Order[i]:= WindowManager.Z_Order[i+1]; - end; - WindowManager.Z_Order[MAX_WINDOWS-1]:= MAX_WINDOWS; - end; -end; - -procedure FocusZOrder(WND : HWND); -var - i : uint32; - idx : uint32; - old, new : HWND; - wold, wnew : PWindow; - -begin - idx:= MAX_WINDOWS; - for i:=0 to MAX_WINDOWS-1 do begin - if WindowManager.Z_Order[i] = WND then begin - idx:= i; - break; - end; - end; - if idx <> MAX_WINDOWS then begin - old:= WindowManager.Z_Order[0]; - new:= WND; - for i:=idx downto 1 do begin - WindowManager.Z_Order[i]:= WindowManager.Z_Order[i-1]; - end; - WindowManager.Z_Order[0]:= WND; - if old <> new then begin - wold:= WindowManager.Windows[old]; - wnew:= WindowManager.Windows[new]; - if wold <> nil then begin - if wold^.Hooks.OnLoseFocus <> nil then wold^.Hooks.OnLoseFocus(); - end; - if wnew <> nil then begin - if wnew^.Hooks.OnFocus <> nil then wnew^.Hooks.OnFocus(); - end; - end; - end; -end; - -function getWindowName(WND : HWND) : pchar; -var - Window : PWindow; - -begin - getWindowName:= nil; - Window:= WindowManager.Windows[WND]; - if Window <> nil then begin - if Window^.ShellWND then begin - getWindowName:= Window^.WND_NAME; - end; - end; -end; - -procedure SetShellWindow(WND : HWND; b : boolean); -var - Window : PWindow; - -begin - Window:= WindowManager.Windows[WND]; - if Window <> nil then begin - Window^.ShellWND:= b; - end; -end; - -procedure bordersEnabled(WND : HWND; enabled : boolean); -var - Window : PWindow; - -begin - Window:= WindowManager.Windows[WND]; - if Window <> nil then begin - Window^.Border:= enabled; - end; -end; - -procedure setCursorPosWND(x : uint32; y : uint32; WND : HWND); -var - Window : PWindow; - -begin - Window:= WindowManager.Windows[WND]; - if Window <> nil then begin - while x > Console_Properties.MAX_CELL_X-1 do dec(x); - while y > Console_Properties.MAX_CELL_Y-1 do dec(y); - Window^.Cursor.x:= x; - Window^.Cursor.y:= y; - end; -end; - -procedure setWindowPosition(WND : HWND; x, y : sint32); -var - Window : PWindow; - nx, ny : sint32; - -begin - Window:= WindowManager.Windows[WND]; - If Window <> nil then begin - nx:= x; - ny:= y; - if Window^.Border then begin - if nx < 2 then nx:= 2; - if ny < 1 then ny:= 1; - while (nx + Window^.WND_W + 2) > Console_Properties.MAX_CELL_X do begin - dec(nx); - end; - while (ny + Window^.WND_H + 1) > Console_Properties.MAX_CELL_Y do begin - dec(ny); - end; - end else begin - if nx < 0 then nx:= 0; - if ny < 0 then ny:= 0; - while (nx + Window^.WND_W) > Console_Properties.MAX_CELL_X do begin - dec(nx); - end; - while (ny + Window^.WND_H) > Console_Properties.MAX_CELL_Y do begin - dec(ny); - end; - end; - Window^.WND_X:= nx; - Window^.WND_Y:= ny; - end; -end; - -function registerEventHandler(WND : HWND; Event : TEventType; Handler : void) : boolean; -begin - registerEventHandler:= true; - if WindowManager.Windows[WND] <> nil then begin - case Event of - EVENT_DRAW : WindowManager.Windows[WND]^.Hooks.OnDraw:= TDrawHook(Handler); - EVENT_MOUSE_CLICK : WindowManager.Windows[WND]^.Hooks.OnMouseClick:= TMouseClickHook(Handler); - EVENT_MOUSE_MOVE : WindowManager.Windows[WND]^.Hooks.OnMouseMove:= TMouseMoveHook(Handler); - EVENT_MOUSE_DOWN : WindowManager.Windows[WND]^.Hooks.OnMouseDown:= TMouseDownHook(Handler); - EVENT_MOUSE_UP : WindowManager.Windows[WND]^.Hooks.OnMouseUp:= TMouseUpHook(Handler); - EVENT_KEY_PRESSED : WindowManager.Windows[WND]^.Hooks.OnKeyPressed:= TKeyPressedHook(Handler); - EVENT_CLOSE : WindowManager.Windows[WND]^.Hooks.OnClose:= TCloseHook(Handler); - EVENT_MINIMIZE : WindowManager.Windows[WND]^.Hooks.OnMinimize:= TMinimizeHook(Handler); - EVENT_FOCUS : WindowManager.Windows[WND]^.Hooks.OnFocus:= TFocusHook(Handler); - EVENT_LOSE_FOCUS : WindowManager.Windows[WND]^.Hooks.OnLoseFocus:= TLoseFocusHook(Handler); - else registerEventHandler:= false; - end; - end else begin - registerEventHandler:= false; - end; -end; - -function newWindow(x : uint32; y : uint32; Width : uint32; Height : uint32; Title : PChar) : HWND; -var - idx : uint32; - WND : PWindow; - -begin - tracer.push_trace('console.newWindow'); - newWindow:= 0; - for idx:=1 to MAX_WINDOWS-1 do begin - if WindowManager.Windows[idx] = nil then begin - newWindow:= idx; - break; - end; - end; - if newWindow <> 0 then begin - WND:= PWindow(kalloc(sizeof(TWindow))); - WND^.WND_NAME:= StringCopy(Title); - WND^.WND_X:= x; - WND^.WND_Y:= y; - WND^.WND_W:= Width; - WND^.WND_H:= Height; - WND^.Cursor.x:= 0; - WND^.Cursor.y:= 0; - WND^.visible:= true; - WND^.Closed:= false; - WND^.Border:= true; - WND^.ShellWND:= true; - WND^.Hooks.OnDraw := nil; - WND^.Hooks.OnMouseClick := nil; - WND^.Hooks.OnMouseMove := nil; - WND^.Hooks.OnMouseDown := nil; - WND^.Hooks.OnMouseUp := nil; - WND^.Hooks.OnKeyPressed := nil; - WND^.Hooks.OnClose := nil; - WND^.Hooks.OnMinimize := nil; - WND^.Hooks.OnFocus := nil; - WND^.Hooks.OnLoseFocus := nil; - WindowManager.Windows[newWindow]:= WND; - AddToZOrder(newWindow); - FocusZOrder(newWindow); - end; -end; - -//If Packet.x_sign then Packet.x_movement:= sint16(Packet.x_movement OR $FF00); - //If Packet.y_sign then Packet.y_movement:= sint16(Packet.y_movement OR $FF00); - -procedure forceQuitAll; -var - i : uint32; - WND : PWindow; - -begin - for i:=1 to MAX_WINDOWS-1 do begin - if WindowManager.Windows[i] <> nil then begin - WND:= WindowManager.Windows[i]; - WindowManager.Windows[i]:= nil; - kfree(void(WND^.WND_NAME)); - kfree(void(WND)); - end; - end; -end; - - -procedure _closeWindow(WND : HWND); -var - WNDCopy : PWindow; - -begin - if WindowManager.Windows[WND] <> nil then begin - RemoveFromZOrder(WND); - WNDCopy:= WindowManager.Windows[WND]; - WindowManager.Windows[WND]:= nil; - if WNDCopy^.Hooks.OnClose <> nil then WNDCopy^.Hooks.OnClose(); - kfree(void(WNDCopy^.WND_NAME)); - kfree(void(WNDCopy)); - end; -end; - -procedure closeWindow(WND : HWND); -begin - if WindowManager.Windows[WND] <> nil then begin - WindowManager.Windows[WND]^.Closed:= True; - end; -end; - -procedure closeAllWindows; -var - i : uint32; - -begin - for i:=1 to MAX_WINDOWS-1 do begin - setWNDVisible(i, false); - end; -end; - -procedure setWNDVisible(WND : uint32; visible : boolean); -begin - if WindowManager.Windows[WND] <> nil then begin - WindowManager.Windows[WND]^.visible:= visible; - end; -end; - -procedure toggleWNDVisible(WND : uint32); -begin - if WindowManager.Windows[DefaultWND] <> nil then begin - WindowManager.Windows[WND]^.visible:= not WindowManager.Windows[WND]^.visible; - end; -end; - -function MouseYToTile(Y : uint32) : uint32; -begin - MouseYToTile:= Y div 16; -end; - -function MouseXToTile(X : uint32) : uint32; -begin - MouseXToTile:= X div 8; -end; - -procedure drawMouse; -var - x, y : uint32; - MX, MY : uint32; - -begin - MouseDrawActive:= true; - MX:= WindowManager.MousePos.X; - MY:= WindowManager.MousePos.Y; - WindowManager.MousePrev.x:= MX; - WindowManager.MousePrev.y:= MY; - mouse_dirt.TopLeft.x:= (MX div 8) - 2; - mouse_dirt.TopLeft.y:= (MY div 16) - 2; - mouse_dirt.BottomRight.x:= (MX div 8) + 2; - mouse_dirt.BottomRight.y:= (MY div 16) + 2; - if mouse_dirt.TopLeft.x < 0 then mouse_dirt.TopLeft.x:= 0; - if mouse_dirt.TopLeft.y < 0 then mouse_dirt.TopLeft.y:= 0; - if mouse_dirt.BottomRight.x > Console_Properties.MAX_CELL_X then mouse_dirt.BottomRight.x:= Console_Properties.MAX_CELL_X; - if mouse_dirt.BottomRight.y > Console_Properties.MAX_CELL_Y then mouse_dirt.BottomRight.y:= Console_Properties.MAX_CELL_Y; - MouseDrawActive:= false; -end; - -procedure redrawMatrix; -var - x, y, w: uint32; - -begin - if (WindowManager.MousePos.x <> WindowManager.MousePrev.x) OR (WindowManager.MousePos.y <> WindowManager.MousePrev.y) then begin - for y:=mouse_dirt.TopLeft.y to mouse_dirt.BottomRight.y do begin - for x:=mouse_dirt.TopLeft.x to mouse_dirt.BottomRight.x do begin - Console_Real[y][x].character:= char(1); - end; - end; - drawMouse; - end; - for y:=0 to Console_Properties.MAX_CELL_Y do begin - for x:=0 to Console_Properties.MAX_CELL_X do begin - if (Console_Matrix[y][x].character <> Console_Real[y][x].character) or (Console_Matrix[y][x].attributes <> Console_Real[y][x].attributes) then begin - OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); - Console_Real[y][x]:= Console_Matrix[y][x]; - end; - end; - end; - if MouseCursorEnabled then outputCharToScreenSpace(char(0), WindowManager.MousePrev.x, WindowManager.MousePrev.y, $FFFF); -end; - -procedure setMousePosition(x : uint32; y : uint32); -begin - if MouseDrawActive then exit; - WindowManager.MousePos.X:= x; - WindowManager.MousePos.Y:= y; -end; - -procedure redrawWindows; -var - x, y, w : uint32; - WXL, WYL : sint32; - WXR, WYR : sint32; - STRC : uint32; - MIDP, STARTP : uint32; - deltax, deltay : sint32; - SelectedWindow : uint32; - -begin - if OpenTerminal then begin - terminal.run; - OpenTerminal:= false; - end; - - { Clear the Console_Matrix } - for y:=0 to Console_Properties.MAX_CELL_Y do begin - for x:=0 to Console_Properties.MAX_CELL_X do begin - Console_Matrix[y][x]:= Default_Char; - end; - end; - - { Redraw all of the Windows to the Matrix taking into account Z_Order and borders } - for w:=MAX_WINDOWS-1 downto 0 do begin - if WindowManager.Z_Order[w] = MAX_WINDOWS then continue; - if WindowManager.Windows[WindowManager.Z_Order[w]] <> nil then begin - if WindowManager.Windows[WindowManager.Z_Order[w]]^.Hooks.OnDraw <> nil then WindowManager.Windows[WindowManager.Z_Order[w]]^.Hooks.OnDraw(); - If WindowManager.Windows[WindowManager.Z_Order[w]]^.visible then begin - if WindowManager.Windows[WindowManager.Z_Order[w]]^.Border then begin - WXL:= WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_X - 1; - WYL:= WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_Y - 1; - WXR:= WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_X + WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_W + 1; - WYR:= WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_Y + WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_H + 1; - for y:=WYL to WYR do begin - Console_Matrix[y][WXL]:= Window_Border; - Console_Matrix[y][WXL-1]:= Window_Border; - Console_Matrix[y][WXR]:= Window_Border; - Console_Matrix[y][WXR+1]:= Window_Border; - Console_Real[y][WXL].Character:= char(3); - Console_Real[y][WXL-1].Character:= char(3); - Console_Real[y][WXR].Character:= char(3); - Console_Real[y][WXR+1].Character:= char(3); - end; - STRC:= 0; - MIDP:= (WXR + WXL) div 2; - STARTP:= MIDP - (StringSize(WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_NAME) div 2) - 1; - for x:=WXL to WXR do begin - Console_Matrix[WYL][x]:= Window_Border; - WindowTitleMask[WYL][x]:= WindowManager.Z_Order[w]; - if (STRC = StringSize(WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_NAME)) and (w = 0) then begin - console_Matrix[WYL][x].character:= '*'; - inc(STRC); - end; - if (x >= STARTP) and (STRC < StringSize(WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_NAME)) then begin - Console_Matrix[WYL][x].character:= WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_NAME[STRC]; - inc(STRC); - end; - if x = WXR then begin - Console_Matrix[WYL][x].character:= 'x'; - ExitMask[WYL][x]:= WindowManager.Z_Order[w]; - end; - Console_Matrix[WYR][x]:= Window_Border; - Console_Real[WYL][x].Character:= char(3); - Console_Real[WYR][x].Character:= char(3); - end; - end; - for y:=WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_Y to WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_Y + WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_H do begin - if y > Console_Properties.MAX_CELL_Y then break; - for x:=WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_X to WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_X + WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_W do begin - if x > Console_Properties.MAX_CELL_X then break; - Console_Matrix[y][x]:= WindowManager.Windows[WindowManager.Z_Order[w]]^.buffer[y - WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_Y][x - WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_X]; - WindowTitleMask[y][x]:= 0; - WindowMask[y][x]:= WindowManager.Z_Order[w]; - ExitMask[y][x]:= 0; - end; - end; - end; - end; - end; - - { Handle any Clicks that have happened since last redraw } - if UnhandledClick then begin - if UnhandledClickLeft then begin - - SelectedWindow:= ExitMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; - if SelectedWindow <> 0 then begin - closeWindow(SelectedWindow); - end else begin - SelectedWindow:= WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; - if SelectedWindow <> 0 then begin - if WindowManager.Windows[SelectedWindow] <> nil then begin - if WindowManager.Windows[SelectedWindow]^.ShellWND then FocusZOrder(SelectedWindow); - end; - end else begin - SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; - if (SelectedWindow <> 0) and (WindowManager.Windows[SelectedWindow] <> nil) then begin - if (WindowManager.Z_Order[0] = SelectedWindow) or (WindowManager.Windows[SelectedWindow]^.ShellWND = false) then begin - if WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick <> nil then begin - deltax:= MouseXToTile(WindowManager.MousePrev.X) - WindowManager.Windows[SelectedWindow]^.WND_X; - deltay:= MouseYToTile(WindowManager.MousePrev.Y) - WindowManager.Windows[SelectedWindow]^.WND_Y; - WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick(deltax, deltay, true); - end; - end; - if (WindowManager.Z_Order[0] <> SelectedWindow) and (WindowManager.Windows[SelectedWindow]^.ShellWND) then begin - FocusZOrder(SelectedWindow); - end; - end; - end; - end; - - {SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; - if (SelectedWindow <> 0) and (WindowManager.Windows[SelectedWindow] <> nil) then begin - //OnClickHandler(Left) - if (WindowManager.Z_Order[0] = SelectedWindow) or (WindowManager.Windows[SelectedWindow]^.ShellWND = false) then begin - if WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick <> nil then begin - deltax:= MouseXToTile(WindowManager.MousePrev.X) - WindowManager.Windows[SelectedWindow]^.WND_X; - deltay:= MouseYToTile(WindowManager.MousePrev.Y) - WindowManager.Windows[SelectedWindow]^.WND_Y; - WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick(deltax, deltay, true); - end; - end; - if (WindowManager.Z_Order[0] <> SelectedWindow) and (WindowManager.Windows[SelectedWindow]^.ShellWND) then begin - FocusZOrder(SelectedWindow); - end; - end else begin - SelectedWindow:= WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; - if SelectedWindow <> 0 then begin - if WindowManager.Windows[SelectedWindow] <> nil then begin - if WindowManager.Windows[SelectedWindow]^.ShellWND then FocusZOrder(SelectedWindow); - end; - end; - SelectedWindow:= ExitMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; - if SelectedWindow <> 0 then begin - closeWindow(SelectedWindow); - end; - end;} - - - end; - if not UnhandledClickLeft then begin - SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; - if (SelectedWindow <> 0) and (WindowManager.Windows[SelectedWindow] <> nil) then begin - if (WindowManager.Z_Order[0] = SelectedWindow) or (WindowManager.Windows[SelectedWindow]^.ShellWND = false) then begin - if WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick <> nil then begin - deltax:= MouseXToTile(WindowManager.MousePrev.X) - WindowManager.Windows[SelectedWindow]^.WND_X; - deltay:= MouseYToTile(WindowManager.MousePrev.Y) - WindowManager.Windows[SelectedWindow]^.WND_Y; - WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick(deltax, deltay, false); - end; - end; - end; - end; - UnhandledClick:= false; - end; - - { Handle Moving Windows using MouseDown and Delta positions } - if MouseDown then begin - if MovingWindow = 0 then begin - MovingWindow:= WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; - if MovingWindow <> 0 then begin - WindowMovePos.x:= MouseXToTile(WindowManager.MousePrev.X); - WindowMovePos.y:= MouseYToTile(WindowManager.MousePrev.Y); - end else begin - MovingWindow:= MAX_WINDOWS; - end; - end; - if MovingWindow <> MAX_WINDOWS then begin - if WindowManager.Windows[MovingWindow] <> nil then begin - deltax:= WindowMovePos.x - MouseXToTile(WindowManager.MousePrev.X); - deltay:= WindowMovePos.y - MouseYToTile(WindowManager.MousePrev.Y); - WindowMovePos.x:= MouseXToTile(WindowManager.MousePrev.X); - WindowMovePos.y:= MouseYToTile(WindowManager.MousePrev.Y); - setWindowPosition(MovingWindow, WindowManager.Windows[MovingWindow]^.WND_X - deltax, WindowManager.Windows[MovingWindow]^.WND_Y - deltay); - FocusZOrder(MovingWindow); - end; - end; - end else begin - MovingWindow:= 0; - end; - - { Console_Matrix -> Actual Screen Buffer } - redrawMatrix; - - { Handle any closed Windows ready for next redraw } - for w:=0 to MAX_WINDOWS-1 do begin - if WindowManager.Windows[w] <> nil then begin - if WindowManager.Windows[w]^.Closed then _closeWindow(w); - end; - end; -end; - -procedure initWindows; -var - x, y, w : uint32; - WND : PWindow; - -begin - Default_Char.Character:= ' '; - Default_Char.attributes:= Console_Properties.Default_Attribute; - Default_Char.visible:= true; - - Window_Border.Character:= ' '; - Window_Border.Attributes:= console.combinecolors($01C3, $07EE); - Window_Border.visible:= true; - - For w:=0 to MAX_WINDOWS-1 do begin - WindowManager.Windows[w]:= nil; - WindowManager.Z_Order[w]:= MAX_WINDOWS; - end; - - WND:= PWindow(kalloc(sizeof(TWindow))); - WND^.WND_NAME:= 'Asuro'; - WND^.WND_X:= 0; - WND^.WND_Y:= 0; - WND^.WND_W:= Console_Properties.MAX_CELL_X; - WND^.WND_H:= Console_Properties.MAX_CELL_Y; - WND^.Cursor.x:= 0; - WND^.Cursor.y:= 0; - WND^.visible:= true; - WND^.Closed:= false; - WND^.Border:= false; - WND^.ShellWND:= false; - WND^.Hooks.OnDraw:= nil; - WND^.Hooks.OnMouseClick:= nil; - WND^.Hooks.OnMouseMove:= nil; - WND^.Hooks.OnMouseDown:= nil; - WND^.Hooks.OnMouseUp:= nil; - WND^.Hooks.OnKeyPressed:= nil; - WND^.Hooks.OnClose:= nil; - WND^.Hooks.OnMinimize:= nil; - WND^.Hooks.OnFocus:= nil; - WND^.Hooks.OnLoseFocus:= nil; - WindowManager.Windows[0]:= WND; - AddToZOrder(0); - FocusZOrder(0); -end; - -function getPixel(x : uint32; y : uint32) : uint16; -var - dest : puint16; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * Console_Properties.Width) + x; - getPixel:= dest^; -end; - -procedure drawPixel(x : uint32; y : uint32; color : uint16); -var - dest : puint16; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * Console_Properties.Width) + x; - dest^:= color; -end; - -function getPixel32(x : uint32; y : uint32) : uint32; -var - dest : puint16; - dest32 : puint32; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * Console_Properties.Width) + x; - dest32:= puint32(dest); - getPixel32:= dest32[0]; -end; - -procedure drawPixel32(x : uint32; y : uint32; pixel : uint32); -var - dest : puint16; - dest32 : puint32; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * Console_Properties.Width) + x; - dest32:= puint32(dest); - dest32[0]:= pixel; -end; - -function getPixel64(x : uint32; y : uint32) : uint64; -var - dest : puint16; - dest64 : puint64; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * Console_Properties.Width) + x; - dest64:= puint64(dest); - getPixel64:= dest64^; -end; - -procedure drawPixel64(x : uint32; y : uint32; pixel : uint64); -var - dest : puint16; - dest64 : puint64; - -begin - if not ready then exit; - dest:= puint16(multibootinfo^.framebuffer_addr); - dest:= dest + (y * Console_Properties.Width) + x; - dest64:= puint64(dest); - dest64^:= pixel; -end; - -procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16); -var - dest : puint16; - dest32 : puint32; - fgcolor32, bgcolor32 : uint32; - mask : puint32; - i : uint32; - -begin - if not ready then exit; - fgcolor32:= fgcolor OR (fgcolor SHL 16); - mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); - dest:= puint16(multibootinfo^.framebuffer_addr); - //dest:= puint16(windowmanager.getBuffer(0)); - dest:= dest + (y * Console_Properties.Width) + x; - dest32:= puint32(dest); - for i:=0 to 15 do begin - dest32[(i*(Console_Properties.Width div 2))+0]:= (dest32[(i*(Console_Properties.Width div 2))+0] AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); - dest32[(i*(Console_Properties.Width div 2))+1]:= (dest32[(i*(Console_Properties.Width div 2))+1] AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); - dest32[(i*(Console_Properties.Width div 2))+2]:= (dest32[(i*(Console_Properties.Width div 2))+2] AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); - dest32[(i*(Console_Properties.Width div 2))+3]:= (dest32[(i*(Console_Properties.Width div 2))+3] AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); - end; - //windowmanager.redraw; -end; - -procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16); -var - dest : puint16; - dest32 : puint32; - fgcolor32, bgcolor32 : uint32; - mask : puint32; - i : uint32; - -begin - if not ready then exit; - fgcolor32:= fgcolor OR (fgcolor SHL 16); - mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); - dest:= puint16(multibootinfo^.framebuffer_addr); - //dest:= puint16(windowmanager.getBuffer(0)); - dest:= dest + (y*(Console_Properties.Width * 16)) + (x * 8); - dest32:= puint32(dest); - for i:=0 to 15 do begin - dest32[(i*(Console_Properties.Width div 2))+0]:= (dest32[(i*(Console_Properties.Width div 2))+0] AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); - dest32[(i*(Console_Properties.Width div 2))+1]:= (dest32[(i*(Console_Properties.Width div 2))+1] AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); - dest32[(i*(Console_Properties.Width div 2))+2]:= (dest32[(i*(Console_Properties.Width div 2))+2] AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); - dest32[(i*(Console_Properties.Width div 2))+3]:= (dest32[(i*(Console_Properties.Width div 2))+3] AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); - end; - //windowmanager.redraw; -end; - -procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16); -var - dest : puint16; - dest32 : puint32; - fgcolor32, bgcolor32 : uint32; - mask : puint32; - i : uint32; - -begin - if not ready then exit; - fgcolor32:= fgcolor OR (fgcolor SHL 16); - bgcolor32:= bgcolor OR (bgcolor SHL 16); - mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); - dest:= puint16(multibootinfo^.framebuffer_addr); - //dest:= puint16(windowmanager.getBuffer(0)); - dest:= dest + (y*(Console_Properties.Width * 16)) + (x * 8); - dest32:= puint32(dest); - for i:=0 to 15 do begin - dest32[(i*(Console_Properties.Width div 2))+0]:= (bgcolor32 AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); - dest32[(i*(Console_Properties.Width div 2))+1]:= (bgcolor32 AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); - dest32[(i*(Console_Properties.Width div 2))+2]:= (bgcolor32 AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); - dest32[(i*(Console_Properties.Width div 2))+3]:= (bgcolor32 AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); - end; - //windowmanager.redraw; -end; - -procedure disable_cursor; -begin - outb($3D4, $0A); - outb($3D5, $20); -end; - -procedure keyhook(key_info : TKeyInfo); -begin - if (key_info.CTRL_DOWN) and (key_info.ALT_DOWN) then begin - case key_info.key_code of - uint8('c'):OpenTerminal:=true; - uint8('r'):resetSystem; - end; - end else begin - if WindowManager.Z_Order[0] <> MAX_WINDOWS then begin - if WindowManager.Windows[WindowManager.Z_Order[0]] <> nil then begin - if WindowManager.Windows[WindowManager.Z_Order[0]]^.Hooks.OnKeyPressed <> nil then WindowManager.Windows[WindowManager.Z_Order[0]]^.Hooks.OnKeyPressed(key_info); - end; - end; - end; -end; - -procedure init(); [public, alias: 'console_init']; -var - fb: puint32; - -Begin - fb:= puint32(uint32(multibootinfo^.framebuffer_addr)); - Console_Properties.Width:= multibootinfo^.framebuffer_width; - Console_Properties.Height:= multibootinfo^.framebuffer_height; - Console_Properties.BitsPerPixel:= multibootinfo^.framebuffer_bpp; - Console_Properties.MAX_CELL_X:= (Console_Properties.Width div 8) - 1; - Console_Properties.MAX_CELL_Y:= (Console_Properties.Height div 16) - 1; - If Console_Properties.BitsPerPixel <> 16 then while true do begin - - end; - kpalloc(uint32(fb)); - keyboard.hook(@keyhook); - initWindows; - Console_Properties.Default_Attribute:= console.combinecolors($FFFF, $0000); - console.clear(); - Ready:= True; -end; - -{ Default Console Write Functions } - -procedure clear(); [public, alias: 'console_clear']; -var - x,y: Byte; - -begin - if WindowManager.Windows[DefaultWND] <> nil then begin - for y:=0 to Console_Properties.MAX_CELL_Y do begin - for x:=0 to Console_Properties.MAX_CELL_X do begin - WindowManager.Windows[DefaultWND]^.Buffer[y][x].Character:= ' '; - WindowManager.Windows[DefaultWND]^.Buffer[y][x].Attributes:= Console_Properties.Default_Attribute; - WindowManager.Windows[DefaultWND]^.row_dirty[y]:= true; - //Console_Matrix[y][x].Character:= ' '; - //Console_Matrix[y][x].Attributes:= Console_Properties.Default_Attribute; - //OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); - end; - end; - WindowManager.Windows[DefaultWND]^.Cursor.X:= 0; - WindowManager.Windows[DefaultWND]^.Cursor.Y:= 0; - //redrawWindows; - end; - //Console_Cursor.X:= 0; - //Console_Cursor.Y:= 0; -end; - -procedure writebin8ex(b : uint8; attributes: uint32); -var - Mask : PMask; - i : uint8; - -begin - Mask:= PMask(@b); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); - end; -end; - -procedure writebin16ex(b : uint16; attributes: uint32); -var - Mask : PMask; - i,j : uint8; - -begin - for j:=1 downto 0 do begin - Mask:= PMask(uint32(@b) + (1 * j)); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); - end; - end; -end; - -procedure writebin32ex(b : uint32; attributes: uint32); -var - Mask : PMask; - i,j : uint8; - -begin - for j:=3 downto 0 do begin - Mask:= PMask(uint32(@b) + (1 * j)); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); - end; - end; -end; - -procedure writebin8(b : uint8); -begin - writebin8ex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin16(b : uint16); -begin - writebin16ex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin32(b : uint32); -begin - writebin32ex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin8lnex(b : uint8; attributes: uint32); -begin - writebin8ex(b, attributes); - console._safeincrement_y(); -end; - -procedure writebin16lnex(b : uint16; attributes: uint32); -begin - writebin16ex(b, attributes); - console._safeincrement_y(); -end; - -procedure writebin32lnex(b : uint32; attributes: uint32); -begin - writebin32ex(b, attributes); - console._safeincrement_y(); -end; - -procedure writebin8ln(b : uint8); -begin - writebin8lnex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin16ln(b : uint16); -begin - writebin16lnex(b, Console_Properties.Default_Attribute); -end; - -procedure writebin32ln(b : uint32); -begin - writebin32lnex(b, Console_Properties.Default_Attribute); -end; - -procedure setdefaultattribute(attribute: uint32); [public, alias: 'console_setdefaultattribute']; -begin - Console_Properties.Default_Attribute:= attribute; -end; - -procedure writechar(character: char); [public, alias: 'console_writechar']; -begin - console.writecharex(character, Console_Properties.Default_Attribute); -end; - -procedure writestring(str: PChar); [public, alias: 'console_writestring']; -begin - console.writestringex(str, Console_Properties.Default_Attribute); -end; - -procedure writeint(i: Integer); [public, alias: 'console_writeint']; -begin - console.writeintex(i, Console_Properties.Default_Attribute); -end; - -procedure writecharln(character: char); [public, alias: 'console_writecharln']; -begin - console.writecharlnex(character, Console_Properties.Default_Attribute); -end; - -procedure writestringln(str: PChar); [public, alias: 'console_writestringln']; -begin - console.writestringlnex(str, Console_Properties.Default_Attribute); -end; - -procedure writeintln(i: Integer); [public, alias: 'console_writeintln']; -begin - console.writeintlnex(i, Console_Properties.Default_Attribute); -end; - -procedure writecharex(character: char; attributes: uint32); [public, alias: 'console_writecharex']; -begin - serial.send(COM1, uint8(character), 10000); - if WindowManager.Windows[DefaultWND] <> nil then begin - WindowManager.Windows[DefaultWND]^.Buffer[WindowManager.Windows[DefaultWND]^.Cursor.Y][WindowManager.Windows[DefaultWND]^.Cursor.X].Character:= character; - WindowManager.Windows[DefaultWND]^.Buffer[WindowManager.Windows[DefaultWND]^.Cursor.Y][WindowManager.Windows[DefaultWND]^.Cursor.X].Attributes:= attributes; - //outputChar(character, Console_Cursor.X, Console_Cursor.Y, attributes SHR 16, attributes AND $FFFF); - //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Character:= character; - //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Attributes:= attributes; - WindowManager.Windows[DefaultWND]^.row_dirty[WindowManager.Windows[DefaultWND]^.Cursor.Y]:= true; - console._safeincrement_x(); - end; -end; - -procedure writehexpair(b : uint8); -var - bn : Array[0..1] of uint8; - i : uint8; - -begin - bn[0]:= b SHR 4; - bn[1]:= b AND $0F; - for i:=0 to 1 do begin - case bn[i] of - 0:writestring('0'); - 1:writestring('1'); - 2:writestring('2'); - 3:writestring('3'); - 4:writestring('4'); - 5:writestring('5'); - 6:writestring('6'); - 7:writestring('7'); - 8:writestring('8'); - 9:writestring('9'); - 10:writestring('A'); - 11:writestring('B'); - 12:writestring('C'); - 13:writestring('D'); - 14:writestring('E'); - 15:writestring('F'); - end; - end; -end; - -procedure writehexex(i : dword; attributes: uint32); [public, alias: 'console_writehexex']; -var - Hex : Array[0..7] of Byte; - Res : DWORD; - Rem : DWORD; - c : Integer; - -begin - for c:=0 to 7 do begin - Hex[c]:= 0; - end; - c:=0; - Res:= i; - Rem:= Res mod 16; - while Res > 0 do begin - Hex[c]:= Rem; - Res:= Res div 16; - Rem:= Res mod 16; - c:=c+1; - end; - writestringex('0x', attributes); - for c:=7 downto 0 do begin - if Hex[c] <> 255 then begin - case Hex[c] of - 0:writecharex('0', attributes); - 1:writecharex('1', attributes); - 2:writecharex('2', attributes); - 3:writecharex('3', attributes); - 4:writecharex('4', attributes); - 5:writecharex('5', attributes); - 6:writecharex('6', attributes); - 7:writecharex('7', attributes); - 8:writecharex('8', attributes); - 9:writecharex('9', attributes); - 10:writecharex('A', attributes); - 11:writecharex('B', attributes); - 12:writecharex('C', attributes); - 13:writecharex('D', attributes); - 14:writecharex('E', attributes); - 15:writecharex('F', attributes); - else writecharex('?', attributes); - end; - end; - end; -end; - -procedure writehex(i : dword); [public, alias: 'console_writehex']; -begin - console.writehexex(i, Console_Properties.Default_Attribute); -end; - -procedure writehexlnex(i : dword; attributes: uint32); -begin - console.writehexex(i, attributes); - console._safeincrement_y(); -end; - -procedure writehexln(i : dword); -begin - writehexlnex(i, Console_Properties.Default_Attribute); -end; - -procedure Output(identifier : PChar; str : PChar); -begin - writestring('['); - writestring(identifier); - writestring('] '); - writestring(str); - redrawWindows; -end; - -procedure Outputln(identifier : PChar; str : PChar); -begin - Output(identifier, str); - writestringln(' '); -end; - -procedure writestringex(str: PChar; attributes: uint32); [public, alias: 'console_writestringex']; -var - i : integer; - -begin - i:= 0; - while (str[i] <> #0) do begin - console.writecharex(str[i], attributes); - i:=i+1; - end; -end; - -procedure writeintex(i: Integer; attributes: uint32); [public, alias: 'console_writeintex']; -var - buffer: array [0..11] of Char; - str: PChar; - digit: DWORD; - minus: Boolean; -begin - str := @buffer[11]; - str^ := #0; - if (i < 0) then begin - digit := -i; - minus := True; - end else begin - digit := i; - minus := False; - end; - repeat - Dec(str); - str^ := Char((digit mod 10) + Byte('0')); - digit := digit div 10; - until (digit = 0); - if (minus) then begin - Dec(str); - str^ := '-'; - end; - console.writestringex(str, attributes); -end; - -procedure writecharlnex(character: char; attributes: uint32); [public, alias: 'console_writecharlnex']; -begin - console.writecharex(character, attributes); - console._safeincrement_y(); -end; - -procedure writestringlnex(str: PChar; attributes: uint32); [public, alias: 'console_writestringlnex']; -begin - console.writestringex(str, attributes); - console._safeincrement_y(); -end; - -procedure writeintlnex(i: Integer; attributes: uint32); [public, alias: 'console_writeintlnex']; -begin - console.writeintex(i, attributes); - console._safeincrement_y(); -end; - -function combinecolors(Foreground, Background: uint16): uint32; -begin - combinecolors:= (uint32(Foreground) SHL 16) OR Background; -end; - -procedure _update_cursor(); [public, alias: '_console_update_cursor']; -var - pos : word; - b : byte; - -begin - //pos:= (Console_Cursor.Y * 80) + Console_Cursor.X; - //outb($3D4, $0F); - //b:= pos and $00FF; - //outb($3D5, b); - //outb($3D4, $0E); - //b:= pos shr 8; - //outb($3D5, b); - if CONSOLE_SLOW_REDRAW then redrawWindows; - //sleep(1); -end; - -procedure backspace; -begin - if WindowManager.Windows[DefaultWND] <> nil then begin - Dec(WindowManager.Windows[DefaultWND]^.Cursor.X); - writechar(' '); - Dec(WindowManager.Windows[DefaultWND]^.Cursor.X); - _update_cursor(); - end; -end; - -procedure _increment_x(); [public, alias: '_console_increment_x']; -begin - if WindowManager.Windows[DefaultWND] <> nil then begin - WindowManager.Windows[DefaultWND]^.Cursor.X:= WindowManager.Windows[DefaultWND]^.Cursor.X+1; - If WindowManager.Windows[DefaultWND]^.Cursor.X > WindowManager.Windows[DefaultWND]^.WND_W-1 then WindowManager.Windows[DefaultWND]^.Cursor.X:= 0; - console._update_cursor; - end; - //Console_Cursor.X:= Console_Cursor.X+1; - //If Console_Cursor.X > 159 then Console_Cursor.X:= 0; - //console._update_cursor; -end; - -procedure _increment_y(); [public, alias: '_console_increment_y']; -begin - if WindowManager.Windows[DefaultWND] <> nil then begin - WindowManager.Windows[DefaultWND]^.Cursor.Y:= WindowManager.Windows[DefaultWND]^.Cursor.Y+1; - If WindowManager.Windows[DefaultWND]^.Cursor.Y > WindowManager.Windows[DefaultWND]^.WND_H-1 then begin - console._newline(); - WindowManager.Windows[DefaultWND]^.Cursor.Y:= WindowManager.Windows[DefaultWND]^.WND_H-1; - end; - console._update_cursor; - end; - //Console_Cursor.Y:= Console_Cursor.Y+1; - //If Console_Cursor.Y > 63 then begin - // console._newline(); - // Console_Cursor.Y:= 63; - //end; - //console._update_cursor; -end; - -procedure _safeincrement_x(); [public, alias: '_console_safeincrement_x']; -begin - if WindowManager.Windows[DefaultWND] <> nil then begin - WindowManager.Windows[DefaultWND]^.Cursor.X:= WindowManager.Windows[DefaultWND]^.Cursor.X+1; - if WindowManager.Windows[DefaultWND]^.Cursor.X > WindowManager.Windows[DefaultWND]^.WND_W-1 then begin - console._safeincrement_y(); - end; - console._update_cursor; - end; - //Console_Cursor.X:= Console_Cursor.X+1; - //If Console_Cursor.X > 159 then begin - // console._safeincrement_y(); - //end; - //console._update_cursor; -end; - -procedure _safeincrement_y(); [public, alias: '_console_safeincrement_y']; -begin - serial.send(COM1, uint8(13), 10000); - serial.send(COM1, uint8(10), 10000); - if WindowManager.Windows[DefaultWND] <> nil then begin - WindowManager.Windows[DefaultWND]^.Cursor.Y:= WindowManager.Windows[DefaultWND]^.Cursor.Y+1; - if WindowManager.Windows[DefaultWND]^.Cursor.Y > WindowManager.Windows[DefaultWND]^.WND_H-1 then begin - console._newline(); - WindowManager.Windows[DefaultWND]^.Cursor.Y:= WindowManager.Windows[DefaultWND]^.WND_H-1; - end; - WindowManager.Windows[DefaultWND]^.Cursor.X:= 0; - console._update_cursor; - end; - //Console_Cursor.Y:= Console_Cursor.Y+1; - //If Console_Cursor.Y > 63 then begin - // console._newline(); - // Console_Cursor.Y:= 63; - //end; - //Console_Cursor.X:= 0; - //console._update_cursor; -end; - -procedure _newline(); [public, alias: '_console_newline']; -var - x, y : byte; - -begin - if WindowManager.Windows[DefaultWND] <> nil then begin - if WindowManager.Windows[DefaultWND]^.WND_W = 0 then exit; - if WindowManager.Windows[DefaultWND]^.WND_H = 0 then exit; - for x:=0 to WindowManager.Windows[DefaultWND]^.WND_W do begin - for y:=0 to WindowManager.Windows[DefaultWND]^.WND_H-1 do begin - WindowManager.Windows[DefaultWND]^.buffer[y][x]:= WindowManager.Windows[DefaultWND]^.buffer[y+1][x]; - WindowManager.Windows[DefaultWND]^.row_dirty[y]:= true; - //Console_Matrix[y][x]:= Console_Matrix[y+1][x]; - end; - end; - for x:=0 to WindowManager.Windows[DefaultWND]^.WND_W do begin - WindowManager.Windows[DefaultWND]^.buffer[WindowManager.Windows[DefaultWND]^.WND_H-1][x].Character:= ' '; - WindowManager.Windows[DefaultWND]^.buffer[WindowManager.Windows[DefaultWND]^.WND_H-1][x].Attributes:= $FFFF0000; - //Console_Matrix[63][x].Character:= ' '; - //Console_Matrix[63][x].Attributes:= $FFFF0000; - end; - //for y:=0 to 63 do begin - // for x:=0 to 159 do begin - // OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); - // end; - //end; - console._update_cursor; - end; -end; - -{ WND Specific Console Draw Functions } - -procedure clearWND(WND : uint32); -var - x,y: Byte; - -begin - if WindowManager.Windows[WND] <> nil then begin - for y:=0 to Console_Properties.MAX_CELL_Y do begin - for x:=0 to Console_Properties.MAX_CELL_X do begin - WindowManager.Windows[WND]^.Buffer[y][x].Character:= ' '; - WindowManager.Windows[WND]^.Buffer[y][x].Attributes:= Console_Properties.Default_Attribute; - WindowManager.Windows[WND]^.row_dirty[y]:= true; - //Console_Matrix[y][x].Character:= ' '; - //Console_Matrix[y][x].Attributes:= Console_Properties.Default_Attribute; - //OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); - end; - end; - WindowManager.Windows[WND]^.Cursor.X:= 0; - WindowManager.Windows[WND]^.Cursor.Y:= 0; - //redrawWindows; - end; - //Console_Cursor.X:= 0; - //Console_Cursor.Y:= 0; -end; - -procedure clearWNDEx(WND : uint32; attributes : uint32); -var - x,y: Byte; - -begin - if WindowManager.Windows[WND] <> nil then begin - for y:=0 to Console_Properties.MAX_CELL_Y do begin - for x:=0 to Console_Properties.MAX_CELL_X do begin - WindowManager.Windows[WND]^.Buffer[y][x].Character:= ' '; - WindowManager.Windows[WND]^.Buffer[y][x].Attributes:= attributes; - WindowManager.Windows[WND]^.row_dirty[y]:= true; - end; - end; - WindowManager.Windows[WND]^.Cursor.X:= 0; - WindowManager.Windows[WND]^.Cursor.Y:= 0; - end; -end; - -procedure writebin8exWND(b : uint8; attributes: uint32; WND : uint32); -var - Mask : PMask; - i : uint8; - -begin - Mask:= PMask(@b); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharexWND('1', attributes, WND) else writecharexWND('0', attributes, WND); - end; -end; - -procedure writebin16exWND(b : uint16; attributes: uint32; WND : uint32); -var - Mask : PMask; - i,j : uint8; - -begin - for j:=1 downto 0 do begin - Mask:= PMask(uint32(@b) + (1 * j)); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharexWND('1', attributes, WND) else writecharexWND('0', attributes, WND); - end; - end; -end; - -procedure writebin32exWND(b : uint32; attributes: uint32; WND : uint32); -var - Mask : PMask; - i,j : uint8; - -begin - for j:=3 downto 0 do begin - Mask:= PMask(uint32(@b) + (1 * j)); - for i:=0 to 7 do begin - If Mask^[7-i] then writecharexWND('1', attributes, WND) else writecharexWND('0', attributes, WND); - end; - end; -end; - -procedure writebin8WND(b : uint8; WND : uint32); -begin - writebin8exWND(b, Console_Properties.Default_Attribute, WND); -end; - -procedure writebin16WND(b : uint16; WND : uint32); -begin - writebin16exWND(b, Console_Properties.Default_Attribute, WND); -end; - -procedure writebin32WND(b : uint32; WND : uint32); -begin - writebin32exWND(b, Console_Properties.Default_Attribute, WND); -end; - -procedure writebin8lnexWND(b : uint8; attributes: uint32; WND : uint32); -begin - writebin8exWND(b, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writebin16lnexWND(b : uint16; attributes: uint32; WND : uint32); -begin - writebin16exWND(b, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writebin32lnexWND(b : uint32; attributes: uint32; WND : uint32); -begin - writebin32exWND(b, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writebin8lnWND(b : uint8; WND : uint32); -begin - writebin8lnexWND(b, Console_Properties.Default_Attribute, WND); -end; - -procedure writebin16lnWND(b : uint16; WND : uint32); -begin - writebin16lnexWND(b, Console_Properties.Default_Attribute, WND); -end; - -procedure writebin32lnWND(b : uint32; WND : uint32); -begin - writebin32lnexWND(b, Console_Properties.Default_Attribute, WND); -end; - -{procedure setdefaultattribute(attribute: uint32); [public, alias: 'console_setdefaultattribute']; -begin - Console_Properties.Default_Attribute:= attribute; -end;} - -procedure writecharWND(character: char; WND : uint32); -begin - console.writecharexWND(character, Console_Properties.Default_Attribute, WND); -end; - -procedure writestringWND(str: PChar; WND : uint32); -begin - console.writestringexWND(str, Console_Properties.Default_Attribute, WND); -end; - -procedure writeintWND(i: Integer; WND : uint32); -begin - console.writeintexWND(i, Console_Properties.Default_Attribute, WND); -end; - -procedure writecharlnWND(character: char; WND : uint32); -begin - console.writecharlnexWND(character, Console_Properties.Default_Attribute, WND); -end; - -procedure writestringlnWND(str: PChar; WND : uint32); -begin - console.writestringlnexWND(str, Console_Properties.Default_Attribute, WND); -end; - -procedure writeintlnWND(i: Integer; WND : uint32); -begin - console.writeintlnexWND(i, Console_Properties.Default_Attribute, WND); -end; - -procedure writecharexWND(character: char; attributes: uint32; WND : uint32); -begin - if WindowManager.Windows[WND] <> nil then begin - WindowManager.Windows[WND]^.Buffer[WindowManager.Windows[WND]^.Cursor.Y][WindowManager.Windows[WND]^.Cursor.X].Character:= character; - WindowManager.Windows[WND]^.Buffer[WindowManager.Windows[WND]^.Cursor.Y][WindowManager.Windows[WND]^.Cursor.X].Attributes:= attributes; - //outputChar(character, Console_Cursor.X, Console_Cursor.Y, attributes SHR 16, attributes AND $FFFF); - //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Character:= character; - //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Attributes:= attributes; - WindowManager.Windows[WND]^.row_dirty[WindowManager.Windows[WND]^.Cursor.Y]:= true; - console._safeincrement_x_WND(WND); - end; -end; - -procedure writehexpairWND(b : uint8; WND : uint32); -begin - writehexpairExWND(b, Console_Properties.Default_Attribute, WND); -end; - -procedure writehexpairExWND(b : uint8; Attributes : uint32; WND : uint32); -var - bn : Array[0..1] of uint8; - i : uint8; - -begin - bn[0]:= b SHR 4; - bn[1]:= b AND $0F; - for i:=0 to 1 do begin - case bn[i] of - 0 :writestringExWND('0', Attributes, WND); - 1 :writestringExWND('1', Attributes, WND); - 2 :writestringExWND('2', Attributes, WND); - 3 :writestringExWND('3', Attributes, WND); - 4 :writestringExWND('4', Attributes, WND); - 5 :writestringExWND('5', Attributes, WND); - 6 :writestringExWND('6', Attributes, WND); - 7 :writestringExWND('7', Attributes, WND); - 8 :writestringExWND('8', Attributes, WND); - 9 :writestringExWND('9', Attributes, WND); - 10:writestringExWND('A', Attributes, WND); - 11:writestringExWND('B', Attributes, WND); - 12:writestringExWND('C', Attributes, WND); - 13:writestringExWND('D', Attributes, WND); - 14:writestringExWND('E', Attributes, WND); - 15:writestringExWND('F', Attributes, WND); - end; - end; -end; - -procedure writehexexWND(i : dword; attributes: uint32; WND : uint32); -var - Hex : Array[0..7] of Byte; - Res : DWORD; - Rem : DWORD; - c : Integer; - -begin - for c:=0 to 7 do begin - Hex[c]:= 0; - end; - c:=0; - Res:= i; - Rem:= Res mod 16; - while Res > 0 do begin - Hex[c]:= Rem; - Res:= Res div 16; - Rem:= Res mod 16; - c:=c+1; - end; - writestringexWND('0x', attributes, WND); - for c:=7 downto 0 do begin - if Hex[c] <> 255 then begin - case Hex[c] of - 0:writecharexWND('0', attributes, WND); - 1:writecharexWND('1', attributes, WND); - 2:writecharexWND('2', attributes, WND); - 3:writecharexWND('3', attributes, WND); - 4:writecharexWND('4', attributes, WND); - 5:writecharexWND('5', attributes, WND); - 6:writecharexWND('6', attributes, WND); - 7:writecharexWND('7', attributes, WND); - 8:writecharexWND('8', attributes, WND); - 9:writecharexWND('9', attributes, WND); - 10:writecharexWND('A', attributes, WND); - 11:writecharexWND('B', attributes, WND); - 12:writecharexWND('C', attributes, WND); - 13:writecharexWND('D', attributes, WND); - 14:writecharexWND('E', attributes, WND); - 15:writecharexWND('F', attributes, WND); - else writecharexWND('?', attributes, WND); - end; - end; - end; -end; - -procedure writehexWND(i : dword; WND : uint32); -begin - console.writehexexWND(i, Console_Properties.Default_Attribute, WND); -end; - -procedure writehexlnexWND(i : dword; attributes: uint32; WND : uint32); -begin - console.writehexexWND(i, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writehexlnWND(i : dword; WND : uint32); -begin - writehexlnexWND(i, Console_Properties.Default_Attribute, WND); -end; - -procedure OutputWND(identifier : PChar; str : PChar; WND : uint32); -begin - writestringWND('[', WND); - writestringWND(identifier, WND); - writestringWND('] ', WND); - writestringWND(str, WND); -end; - -procedure OutputlnWND(identifier : PChar; str : PChar; WND : uint32); -begin - OutputWND(identifier, str, WND); - writestringlnWND(' ', WND); -end; - -procedure writestringexWND(str: PChar; attributes: uint32; WND : uint32); -var - i : integer; - -begin - i:= 0; - while (str[i] <> #0) do begin - console.writecharexWND(str[i], attributes, WND); - i:=i+1; - end; -end; - -procedure writeintexWND(i: Integer; attributes: uint32; WND : uint32); -var - buffer: array [0..11] of Char; - str: PChar; - digit: DWORD; - minus: Boolean; -begin - str := @buffer[11]; - str^ := #0; - if (i < 0) then begin - digit := -i; - minus := True; - end else begin - digit := i; - minus := False; - end; - repeat - Dec(str); - str^ := Char((digit mod 10) + Byte('0')); - digit := digit div 10; - until (digit = 0); - if (minus) then begin - Dec(str); - str^ := '-'; - end; - console.writestringexWND(str, attributes, WND); -end; - -procedure writecharlnexWND(character: char; attributes: uint32; WND : uint32); -begin - console.writecharexWND(character, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writestringlnexWND(str: PChar; attributes: uint32; WND : uint32); -begin - console.writestringexWND(str, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure writeintlnexWND(i: Integer; attributes: uint32; WND : uint32); -begin - console.writeintexWND(i, attributes, WND); - console._safeincrement_y_WND(WND); -end; - -procedure backspaceWND(WND : uint32); -begin - if WindowManager.Windows[WND] <> nil then begin - Dec(WindowManager.Windows[WND]^.Cursor.X); - writecharWND(' ', WND); - Dec(WindowManager.Windows[WND]^.Cursor.X); - _update_cursor(); - end; -end; - -procedure _increment_x_WND(WND : uint32); -begin - if WindowManager.Windows[WND] <> nil then begin - WindowManager.Windows[WND]^.Cursor.X:= WindowManager.Windows[WND]^.Cursor.X+1; - If WindowManager.Windows[WND]^.Cursor.X > WindowManager.Windows[WND]^.WND_W-1 then WindowManager.Windows[WND]^.Cursor.X:= 0; - console._update_cursor; - end; - //Console_Cursor.X:= Console_Cursor.X+1; - //If Console_Cursor.X > 159 then Console_Cursor.X:= 0; - //console._update_cursor; -end; - -procedure _increment_y_WND(WND : uint32); -begin - if WindowManager.Windows[WND] <> nil then begin - WindowManager.Windows[WND]^.Cursor.Y:= WindowManager.Windows[WND]^.Cursor.Y+1; - If WindowManager.Windows[WND]^.Cursor.Y > WindowManager.Windows[WND]^.WND_H-1 then begin - console._newlineWND(WND); - WindowManager.Windows[WND]^.Cursor.Y:= WindowManager.Windows[WND]^.WND_H-1; - end; - console._update_cursor; - end; - //Console_Cursor.Y:= Console_Cursor.Y+1; - //If Console_Cursor.Y > 63 then begin - // console._newline(); - // Console_Cursor.Y:= 63; - //end; - //console._update_cursor; -end; - -procedure _safeincrement_x_WND(WND : uint32); -begin - if WindowManager.Windows[WND] <> nil then begin - WindowManager.Windows[WND]^.Cursor.X:= WindowManager.Windows[WND]^.Cursor.X+1; - if WindowManager.Windows[WND]^.Cursor.X > WindowManager.Windows[WND]^.WND_W-1 then begin - console._safeincrement_y_WND(WND); - end; - console._update_cursor; - end; - //Console_Cursor.X:= Console_Cursor.X+1; - //If Console_Cursor.X > 159 then begin - // console._safeincrement_y(); - //end; - //console._update_cursor; -end; - -procedure _safeincrement_y_WND(WND : uint32); -begin - if WindowManager.Windows[WND] <> nil then begin - WindowManager.Windows[WND]^.Cursor.Y:= WindowManager.Windows[WND]^.Cursor.Y+1; - if WindowManager.Windows[WND]^.Cursor.Y > WindowManager.Windows[WND]^.WND_H-1 then begin - console._newlineWND(WND); - WindowManager.Windows[WND]^.Cursor.Y:= WindowManager.Windows[WND]^.WND_H-1; - end; - WindowManager.Windows[WND]^.Cursor.X:= 0; - console._update_cursor; - end; - //Console_Cursor.Y:= Console_Cursor.Y+1; - //If Console_Cursor.Y > 63 then begin - // console._newline(); - // Console_Cursor.Y:= 63; - //end; - //Console_Cursor.X:= 0; - //console._update_cursor; -end; - -procedure _newlineWND(WND : uint32); -var - x, y : byte; - -begin - if WindowManager.Windows[WND] <> nil then begin - if WindowManager.Windows[WND]^.WND_W = 0 then exit; - if WindowManager.Windows[WND]^.WND_H = 0 then exit; - for x:=0 to WindowManager.Windows[WND]^.WND_W do begin - for y:=0 to WindowManager.Windows[WND]^.WND_H-1 do begin - WindowManager.Windows[WND]^.buffer[y][x]:= WindowManager.Windows[WND]^.buffer[y+1][x]; - WindowManager.Windows[WND]^.row_dirty[y]:= true; - //Console_Matrix[y][x]:= Console_Matrix[y+1][x]; - end; - end; - for x:=0 to WindowManager.Windows[WND]^.WND_W do begin - WindowManager.Windows[WND]^.buffer[WindowManager.Windows[WND]^.WND_H-1][x].Character:= ' '; - WindowManager.Windows[WND]^.buffer[WindowManager.Windows[WND]^.WND_H-1][x].Attributes:= $FFFF0000; - //Console_Matrix[63][x].Character:= ' '; - //Console_Matrix[63][x].Attributes:= $FFFF0000; - end; - //for y:=0 to 63 do begin - // for x:=0 to 159 do begin - // OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); - // end; - //end; - console._update_cursor; - end; -end; - -end. +// Copyright 2021 Kieron Morris +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +{ + Console - Provides Screen/Window management & drawing. + + @author(Kieron Morris ) +} +unit console; + +interface + +uses + util, + bios_data_area, + multiboot, + fonts, + tracer; + +type + { 4-bit nibble representing a color. } + TColor = ( Black = $0, + Blue = $1, + Green = $2, + Aqua = $3, + Red = $4, + Purple = $5, + Yellow = $6, + White = $7, + Gray = $8, + lBlue = $9, + lGreen = $A, + lAqua = $B, + lRed = $C, + lPurple = $D, + lYellow = $E, + lWhite = $F ); + + { Window Manager Events. } + TEventType = ( EVENT_DRAW, + EVENT_MOUSE_CLICK, + EVENT_MOUSE_MOVE, + EVENT_MOUSE_DOWN, + EVENT_MOUSE_UP, + EVENT_KEY_PRESSED, + EVENT_CLOSE, + EVENT_MINIMIZE, + EVENT_FOCUS, + EVENT_LOSE_FOCUS ); + + { Properties pertaining to the raw screen matrix. } + TConsoleProperties = record + Default_Attribute : uint32; //< Attribute (Colors) to use when no override defined. + Width : uint32; + Height : uint32; + BitsPerPixel : uint8; + MAX_CELL_X : uint32; + MAX_CELL_Y : uint32; + end; + PConsoleProperties = ^TConsoleProperties; + +{! Default Buffer Specific } + +{ + Initialize the Frame Buffer & Window Manager ready for use. +} +procedure init(); + +{ + Clear the Frame Buffer. +} +procedure clear(); + +{ + Set the default set of attributes to be used when drawing to the screen. + @param(attribute A 32-bit value representing the Foreground & Background colors.) +} +procedure setdefaultattribute(attribute : uint32); + +{ + @bold(Text mode only!) - Disable the cursor/text-caret. + @deprecated +} +procedure disable_cursor; + +{ + Write a single 8-bit character to the screen. + @param(character An 8-bit value representing an ASCII character.) +} +procedure writechar(character : char); + +{ + Write a single 8-bit character to the screen, followed by starting a new line. + @param(character An 8-bit value representing an ASCII character.) +} +procedure writecharln(character : char); + +{ + Write a single 8-bit character to the screen, specifying custom color attributes. + @param(character An 8-bit value representing an ASCII character.) + @param(attributes A 32-bit value representing the colors for the background and foreground.) +} +procedure writecharex(character : char; attributes: uint32); + +{ + Write a single 8-bit character to the screen, followed by starting a new line, specifying custom color attributes. + @param(character An 8-bit value representing an ASCII character.) + @param(attributes A 32-bit value representing the colors for the background and foreground.) +} +procedure writecharlnex(character : char; attributes: uint32); + +{ + Simple console write for debugging. + @param(identifier A NULL terminated string with the name of the module printing the output.) + @param(str A NULL terminated string with the debug message.) +} +procedure Output(identifier : PChar; str : PChar); + +{ + Simple console writeln for debugging. + @param(identifier A NULL terminated string with the name of the module printing the output.) + @param(str A NULL terminated string with the debug message.) +} +procedure Outputln(identifier : PChar; str : PChar); + +{ + Write a NULL terminated string to the console. + @param(str A NULL terminated string with the debug message.) +} +procedure writestring(str: PChar); + +{ + Write a NULL terminated string to the console, followed by a new-line. + @param(str A NULL terminated string with the debug message.) +} +procedure writestringln(str: PChar); + +{ + Write a NULL terminated string to the console, with the specified attributes. + @param(str A NULL terminated string with the debug message.) + @param(attributes A 32-bit representation of the background/foreground colors.) +} +procedure writestringex(str: PChar; attributes: uint32); + +{ + Write a NULL terminated string + new-line to the console, with the specified attributes. + @param(str A NULL terminated string with the debug message.) + @param(attributes A 32-bit representation of the background/foreground colors.) +} +procedure writestringlnex(str: PChar; attributes: uint32); + +{ + Write a 32-bit value to the console. + @param(i A 32-bit value.) +} +procedure writeint(i: Integer); + +{ + Write a 32-bit value to the console followed by a new-line. + @param(i A 32-bit value.) +} +procedure writeintln(i: Integer); + +{ + Write a 32-bit value to the console, with the specified attributes. + @param(i A 32-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) +} +procedure writeintex(i: Integer; attributes: uint32); + +{ + Write a 32-bit value + new-line to the console, with the specified attributes. + @param(i A 32-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) +} +procedure writeintlnex(i: Integer; attributes: uint32); + +{ + Write an 8-bit Hex Pair to the console. + @param(b An 8-bit value.) +} +procedure writehexpair(b : uint8); + +{ + Write a 32-bit value as Hex Pairs to the console. + @param(i A 32-bit value.) +} +procedure writehex(i: DWORD); + +{ + Write a 32-bit value as Hex Pairs to the console, followed by a new-line. + @param(i A 32-bit value.) +} +procedure writehexln(i: DWORD); + +{ + Write a 32-bit value as Hex Pairs to the console, with the specified attributes. + @param(b A 32-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) +} +procedure writehexex(i : DWORD; attributes: uint32); + +{ + Write a 32-bit value as Hex Pairs + new-line to the console, with the specified attributes. + @param(b A 32-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) +} +procedure writehexlnex(i: DWORD; attributes: uint32); + +{ + Write an 8-bit value as binary to the console. + @param(b An 8-bit value.) +} +procedure writebin8(b : uint8); + +{ + Write an 8-bit value as binary to the console, followed by a new-line. + @param(b An 8-bit value.) +} +procedure writebin8ln(b : uint8); + +{ + Write an 8-bit value as binary to the console, with the specified attributes. + @param(b An 8-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) +} +procedure writebin8ex(b : uint8; attributes: uint32); + +{ + Write an 8-bit value as binary + new-line to the console, with the specified attributes. + @param(b An 8-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) +} +procedure writebin8lnex(b : uint8; attributes: uint32); + +{ + Write a 16-bit value as binary to the console. + @param(b A 16-bit value.) +} +procedure writebin16(b : uint16); + +{ + Write an 16-bit value as binary to the console, followed by a new-line. + @param(b A 16-bit value.) +} +procedure writebin16ln(b : uint16); + +{ + Write a 16-bit value as binary to the console, with the specified attributes. + @param(b A 16-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) +} +procedure writebin16ex(b : uint16; attributes: uint32); + +{ + Write a 16-bit value as binary + new-line to the console, with the specified attributes. + @param(b A 16-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) +} +procedure writebin16lnex(b : uint16; attributes: uint32); + +{ + Write a 32-bit value as binary to the console. + @param(b A 32-bit value.) +} +procedure writebin32(b : uint32); + +{ + Write an 32-bit value as binary to the console, followed by a new-line. + @param(b A 32-bit value.) +} +procedure writebin32ln(b : uint32); + +{ + Write a 32-bit value as binary to the console, with the specified attributes. + @param(b A 32-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) +} +procedure writebin32ex(b : uint32; attributes: uint32); + +{ + Write a 32-bit value as binary + new-line to the console, with the specified attributes. + @param(b A 32-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) +} +procedure writebin32lnex(b : uint32; attributes: uint32); + +{ + Move the caret back 1 position and remove the character within the cell the caret occupies. +} +procedure backspace; + +{ + Combine two 16-bit values representing Foreground and Background respectively, into a 32-bit value representing an attribute. + @param(Foreground A 16-bit value representing the foreground color.) + @param(Background A 16-bit value representing the background color.) + @returns(A 32-bit value representing an attribute set. (uint32) ) +} +function combinecolors(Foreground, Background : uint16) : uint32; + +{ Increment the cursor one cell to the right (x+1). } +procedure _increment_x(); + +{ Increment the cursor one cell down (y+1). } +procedure _increment_y(); + +{ Increment the cursor one cell to the right (x+1), wrapping to the next line and performing a Y-Axis scroll when when needed. } +procedure _safeincrement_x(); + +{ Increment the cursor one cell down (y+1), performing a Y-Axis roll when when needed. } +procedure _safeincrement_y(); + +{ Increment the cursor one cell down and reposition it at the first X Cell (y+1, x=0),performing a Y-Axis scroll when needed. } +procedure _newline(); + + + + +{! Window Specific } + +{ + Clear a Window Canvas. + @param(WND A Window Handle.) +} +procedure clearWND(WND : uint32); + +{ + Clear a Window Canvas, with the specified attributes. + @param(WND A Window Handle.) + @param(Attributes A 32-bit value representing an attribute set.) +} +procedure clearWNDEx(WND : uint32; attributes : uint32); + +{ + Write an ASCII character to a specified Window. + @param(Character An 8-bit value representing an ASCII character.) + @param(WND A 32-bit handle to a Window.) +} +procedure writecharWND(character : char; WND : uint32); + +{ + Write a single 8-bit character to a Window, followed by starting a new line. + @param(character An 8-bit value representing an ASCII character.) + @param(WND A 32-bit handle to a Window.) +} +procedure writecharlnWND(character : char; WND : uint32); + +{ + Write a single 8-bit character to a Window, specifying custom color attributes. + @param(character An 8-bit value representing an ASCII character.) + @param(attributes A 32-bit value representing the colors for the background and foreground.) + @param(WND A 32-bit handle to a Window.) +} +procedure writecharexWND(character : char; attributes: uint32; WND : uint32); + +{ + Write a single 8-bit character to a Window, followed by starting a new line, specifying custom color attributes. + @param(character An 8-bit value representing an ASCII character.) + @param(attributes A 32-bit value representing the colors for the background and foreground.) + @param(WND A 32-bit handle to a Window.) +} +procedure writecharlnexWND(character : char; attributes: uint32; WND : uint32); + +{ + Simple console write for debugging to a Window. + @param(identifier A NULL terminated string with the name of the module printing the output.) + @param(str A NULL terminated string with the debug message.) + @param(WND A 32-bit handle to a Window.) +} +procedure OutputWND(identifier : PChar; str : PChar; WND : uint32); + +{ + Simple console writeln for debugging to a Window. + @param(identifier A NULL terminated string with the name of the module printing the output.) + @param(str A NULL terminated string with the debug message.) + @param(WND A 32-bit handle to a Window.) +} +procedure OutputlnWND(identifier : PChar; str : PChar; WND : uint32); + +{ + Write a NULL terminated string to a Window. + @param(str A NULL terminated string with the debug message.) + @param(WND A 32-bit handle to a Window.) +} +procedure writestringWND(str: PChar; WND : uint32); + +{ + Write a NULL terminated string to a Window, followed by a new-line. + @param(str A NULL terminated string with the debug message.) + @param(WND A 32-bit handle to a Window.) +} +procedure writestringlnWND(str: PChar; WND : uint32); + +{ + Write a NULL terminated string to a Window, with the specified attributes. + @param(str A NULL terminated string with the debug message.) + @param(attributes A 32-bit representation of the background/foreground colors.) + @param(WND A 32-bit handle to a Window.) +} +procedure writestringexWND(str: PChar; attributes: uint32; WND : uint32); + +{ + Write a NULL terminated string + new-line to a Window, with the specified attributes. + @param(str A NULL terminated string with the debug message.) + @param(attributes A 32-bit representation of the background/foreground colors.) + @param(WND A 32-bit handle to a Window.) +} +procedure writestringlnexWND(str: PChar; attributes: uint32; WND : uint32); + +{ + Write a 32-bit value to a Window. + @param(i A 32-bit value.) + @param(WND A 32-bit handle to a Window.) +} +procedure writeintWND(i: Integer; WND : uint32); + +{ + Write a 32-bit value to a Window followed by a new-line. + @param(i A 32-bit value.) + @param(WND A 32-bit handle to a Window.) +} +procedure writeintlnWND(i: Integer; WND : uint32); + +{ + Write a 32-bit value to a Window, with the specified attributes. + @param(i A 32-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) + @param(WND A 32-bit handle to a Window.) +} +procedure writeintexWND(i: Integer; attributes: uint32; WND : uint32); + +{ + Write a 32-bit value + new-line to a Window, with the specified attributes. + @param(i A 32-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) + @param(WND A 32-bit handle to a Window.) +} +procedure writeintlnexWND(i: Integer; attributes: uint32; WND : uint32); + +{ + Write an 8-bit Hex Pair to a Window. + @param(b An 8-bit value.) + @param(WND A 32-bit handle to a Window.) +} +procedure writehexpairWND(b : uint8; WND : uint32); + +{ + Write an 8-bit Hex Pair to a Window, with the specified attributes. + @param(b An 8-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) + @param(WND A 32-bit handle to a Window.) +} +procedure writehexpairExWND(b : uint8; Attributes : uint32; WND : uint32); + +{ + Write a 32-bit value as Hex Pairs to a Window. + @param(i A 32-bit value.) + @param(WND A 32-bit handle to a Window.) +} +procedure writehexWND(i: DWORD; WND : uint32); + +{ + Write a 32-bit value as Hex Pairs to a Window, followed by a new-line. + @param(i A 32-bit value.) + @param(WND A 32-bit handle to a Window.) +} +procedure writehexlnWND(i: DWORD; WND : uint32); + +{ + Write a 32-bit value as Hex Pairs to a Window, with the specified attributes. + @param(b A 32-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) + @param(WND A 32-bit handle to a Window.) +} +procedure writehexexWND(i : DWORD; attributes: uint32; WND : uint32); + +{ + Write a 32-bit value as Hex Pairs + new-line to a Window, with the specified attributes. + @param(b A 32-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) + @param(WND A 32-bit handle to a Window.) +} +procedure writehexlnexWND(i: DWORD; attributes: uint32; WND : uint32); + +{ + Write an 8-bit value as binary to a Window. + @param(b An 8-bit value.) + @param(WND A 32-bit handle to a Window.) +} +procedure writebin8WND(b : uint8; WND : uint32); + +{ + Write an 8-bit value as binary to a Window, followed by a new-line. + @param(b An 8-bit value.) + @param(WND A 32-bit handle to a Window.) +} +procedure writebin8lnWND(b : uint8; WND : uint32); + +{ + Write an 8-bit value as binary to a Window, with the specified attributes. + @param(b An 8-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) + @param(WND A 32-bit handle to a Window.) +} +procedure writebin8exWND(b : uint8; attributes: uint32; WND : uint32); + +{ + Write an 8-bit value as binary + new-line to a Window, with the specified attributes. + @param(b An 8-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) + @param(WND A 32-bit handle to a Window.) +} +procedure writebin8lnexWND(b : uint8; attributes: uint32; WND : uint32); + +{ + Write a 16-bit value as binary to a Window. + @param(b A 16-bit value.) + @param(WND A 32-bit handle to a Window.) +} +procedure writebin16WND(b : uint16; WND : uint32); + +{ + Write an 16-bit value as binary to a Window, followed by a new-line. + @param(b A 16-bit value.) + @param(WND A 32-bit handle to a Window.) +} +procedure writebin16lnWND(b : uint16; WND : uint32); + +{ + Write a 16-bit value as binary to a Window, with the specified attributes. + @param(b A 16-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) + @param(WND A 32-bit handle to a Window.) +} +procedure writebin16exWND(b : uint16; attributes: uint32; WND : uint32); + +{ + Write a 16-bit value as binary + new-line to a Window, with the specified attributes. + @param(b A 16-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) + @param(WND A 32-bit handle to a Window.) +} +procedure writebin16lnexWND(b : uint16; attributes: uint32; WND : uint32); + +{ + Write a 32-bit value as binary to a Window. + @param(b A 32-bit value.) + @param(WND A 32-bit handle to a Window.) +} +procedure writebin32WND(b : uint32; WND : uint32); + +{ + Write an 32-bit value as binary to a Window, followed by a new-line. + @param(b A 32-bit value.) + @param(WND A 32-bit handle to a Window.) +} +procedure writebin32lnWND(b : uint32; WND : uint32); + +{ + Write a 32-bit value as binary to a Window, with the specified attributes. + @param(b A 32-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) + @param(WND A 32-bit handle to a Window.) +} +procedure writebin32exWND(b : uint32; attributes: uint32; WND : uint32); + +{ + Write a 32-bit value as binary + new-line to a Window, with the specified attributes. + @param(b A 32-bit value.) + @param(attributes A 32-bit representation of the background/foreground colors.) + @param(WND A 32-bit handle to a Window.) +} +procedure writebin32lnexWND(b : uint32; attributes: uint32; WND : uint32); + +{ + Move a caret belonging to a Window back 1 position and remove the character within the cell the caret occupies. + @param(WND A 32-bit handle to a Window.) +} +procedure backspaceWND(WND : uint32); + +{ + Set the caret belonging to a Window to a specified position. + @param(X The new Horizontal position.) + @param(Y The new Vertical postion.) + @param(WND A 32-bit handle to a Window.) +} +procedure setCursorPosWND(x : uint32; y : uint32; WND : HWND); + +{ + Increment the cursor within a Window one cell to the right (x+1). + @param(WND A 32-bit handle to a Window.) +} +procedure _increment_x_WND(WND : uint32); + +{ + Increment the cursor within a Window one cell down (y+1). + @param(WND A 32-bit handle to a Window.) +} +procedure _increment_y_WND(WND : uint32); + +{ + Increment the cursor one cell down (y+1), performing a Y-Axis roll when when needed. + @param(WND A 32-bit handle to a Window.) +} +procedure _safeincrement_y_WND(WND : uint32); + +{ + Increment the cursor within a Window one cell to the right (x+1), wrapping to the next line and performing a Y-Axis scroll when when needed. + @param(WND A 32-bit handle to a Window.) +} +procedure _safeincrement_x_WND(WND : uint32); + +{ + Increment the cursor within a Window one cell down and reposition it at the first X Cell (y+1, x=0),performing a Y-Axis scroll when needed. + @param(WND A 32-bit handle to a Window.) +} +procedure _newlineWND(WND : uint32); + + + + +{! Drawing } + +{ + Draw an ASCII char to raw screen space conforming to cell constraints. + @param(C An 8-bit ASCII Character.) + @param(X An 8-bit Horizontal Cell position.) + @param(Y An 8-bit Vertical Cell Position.) + @param(fgcolor The 16-bit color of the Character.) + @param(bgcolor The 16-bit background color of the cell.) +} +procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16); + +{ + Draw an ASCII char to raw screen space. + @param(C An 8-bit ASCII Character.) + @param(X A 32-bit Horizontal Screen position.) + @param(Y A 32-bit Vertical Screen Position.) + @param(fgcolor The 16-bit color of the Character.) + @param(bgcolor The 16-bit background color of the cell.) +} +procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16); + +{ + Draw an ASCII char without a background to raw screen space conforming to cell constraints. + @param(C An 8-bit ASCII Character.) + @param(X An 8-bit Horizontal Cell position.) + @param(Y An 8-bit Vertical Cell Position.) + @param(fgcolor The 16-bit color of the Character.) +} +procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16); + +{ + Get 16-bits of pixel information from the screen position(x,y). + @param(X A 32-bit Horizontal Screen position.) + @param(Y A 32-bit Vertical Screen Position.) + @returns(16-bits of Pixel Information) +} +function getPixel(x : uint32; y : uint32) : uint16; + +{ + Draw 16-bits of pixel information at the screen position(x,y). + @param(X A 32-bit Horizontal Screen position.) + @param(Y A 32-bit Vertical Screen Position.) + @param(color 16-bits of Pixel Information) +} +procedure drawPixel(x : uint32; y : uint32; color : uint16); + +{ + Get 32-bits of pixel information from the screen position(x,y). + @param(X A 32-bit Horizontal Screen position.) + @param(Y A 32-bit Vertical Screen Position.) + @returns(32-bits of Pixel Information) +} +function getPixel32(x : uint32; y : uint32) : uint32; + +{ + Draw 32-bits of pixel information at the screen position(x,y). + @param(X A 32-bit Horizontal Screen position.) + @param(Y A 32-bit Vertical Screen Position.) + @param(color 32-bits of Pixel Information) +} +procedure drawPixel32(x : uint32; y : uint32; pixel : uint32); + +{ + Get 64-bits of pixel information from the screen position(x,y). + @param(X A 32-bit Horizontal Screen position.) + @param(Y A 32-bit Vertical Screen Position.) + @returns(64-bits of Pixel Information) +} +function getPixel64(x : uint32; y : uint32) : uint64; + +{ + Draw 64-bits of pixel information at the screen position(x,y). + @param(X A 32-bit Horizontal Screen position.) + @param(Y A 32-bit Vertical Screen Position.) + @param(color 64-bits of Pixel Information) +} +procedure drawPixel64(x : uint32; y : uint32; pixel : uint64); + + + + +{! Windows Methods } + +{ + Set the position of the mouse cursor relative to screen space. + @param(X A 32-bit Horizontal Screen Position.) + @param(Y A 32-bit Vertical Screen Position.) +} +procedure setMousePosition(x : uint32; y : uint32); + +{ + Redraw all of the Window adhearing to Z-Order. +} +procedure redrawWindows; + +{ + Toggle the visibility of a Window. + @param(WND A 32-bit handle to a Window.) +} +procedure toggleWNDVisible(WND : uint32); + +{ + Change a Windows visibility. + @param(WND A 32-bit handle to a Window.) + @param(Visible @true or @false.) +} +procedure setWNDVisible(WND : uint32; visible : boolean); + +{ + Close all open Windows and release handles. +} +procedure closeAllWindows; + +{ + Spawn a new Window at cell(x,y) with specified Width, Height and Title. + @param(X 32-bit Horizontal Cell for the top-left corner of the Window.) + @param(Y 32-bit Vertical Cell for the top-left corner of the Window.) + @param(Width 32-bit Width of the Window in Cells.) + @param(Height 32-bit Height of the Window in Cells.) + @param(Title NULL Terminated String used as the Title for the Window.) + @retruns(A 32-bit Handle for the new Window.) +} +function newWindow(x : uint32; y : uint32; Width : uint32; Height : uint32; Title : PChar) : HWND; + +{ + Register an Event Handler to a Window + @param(WND Handle for the Window the event should be registered against.) + @param(Event Type of event to register.) + @param(Handler Procedure to be called upon the event firing.) + @returns(@true for success @false for failure.) +} +function registerEventHandler(WND : HWND; Event : TEventType; Handler : void) : boolean; + +{ + Forcefully close all Windows +} +procedure forceQuitAll; + +{ + Close a Window specified by its Handle + @param(WND The handle to the target Window.) +} +procedure closeWindow(WND : HWND); + +{ + Enable or disable the drawing of the borders surrounding a Window. + @param(WND A 32-bit Handle to the target Window.) + @param(Enabled @true for borders to be shown, @false for borders to be hidden.) +} +procedure bordersEnabled(WND : HWND; enabled : boolean); + +{ + Set a specified Window as a Shell Window (Window cannot be moved or closed). + @param(WND 32-bit Handle for the target Window.) + @param(b @true to set Target as a Shell Window, @false to set Target as a normal Window.) +} +procedure SetShellWindow(WND : HWND; b : boolean); + +{ + Get the title of a specified Window. + @param(WND 32-bit Handle for the target Window.) + @returns(NULL Terminated PChar.) +} +function getWindowName(WND : HWND) : pchar; + +{ + Enable or disable the mouse. + @param(b @true for mouse enabled, @false for mouse disabled.) +} +procedure mouseEnabled(b : boolean); + +{ + Callback for a MouseDown event. +} +procedure _MouseDown(); + +{ + Callback for a MouseUp event. +} +procedure _MouseUp(); + +{ + Callback for a MouseClick event. + @param(Left @true for a Left-Click, @false for a Right-Click.) +} +procedure _MouseClick(left : boolean); + +{ + Set the attributes used for drawing the border around Windows. + @param(Colors A 32-bit value representing the attributes (background/foreground).) +} +procedure setWindowColors(colors : uint32); + +{ + Get a Pointer to the attribute used for Window Borders. + @returns(A 32-bit pointer to the Borders Attribute.) +} +function getWindowColorPtr : puint32; + +function getMaxCellW : uint32; +function getMaxCellH : uint32; +function getConsoleProperties : PConsoleProperties; + +const + MAX_WINDOWS = 255; //< Maximum number of Windows open. + DefaultWND = 0; //< The Window assigned for output when no Window is specified. (Default). + +implementation + +uses + lmemorymanager, strings, keyboard, serial, terminal; + +type + { Unrasterized representation of a character. } + TCharacter = bitpacked record + Character : Char; //< ASCII Character + attributes : uint32; //< 32-bit Representation of Background/Foreground Colors. + visible : boolean; //< Character is visible when rasterized. @true or @false. + end; + { Pointer to an Unrasterized Character. } + PCharacter = ^TCharacter; + + { Unrasterized screen matrix. } + TVideoMemory = Array[0..1999] of TCharacter; + { Pointer to the Unrasterized screen matrix. } + PVideoMemory = ^TVideoMemory; + + { Font Mask } + TMask = Array[0..63] of Array[0..159] of uint32; + + { 2D Unrasterized Matrix } + T2DVideoMemory = Array[0..63] of Array[0..159] of TCharacter; + { Pointer to 2D Unrasterized Matrix } + P2DVideoMemory = ^T2DVideoMemory; + + TMouseCoord = record + X : sint32; + Y : sint32; + end; + + TCoord = record + X : Byte; + Y : Byte; + end; + + TDrawHook = procedure(); + TMouseClickHook = procedure(x : uint32; y : uint32; left : boolean); + TMouseMoveHook = procedure(x : uint32; y : uint32); + TMouseDownHook = procedure(x : uint32; y : uint32); + TMouseUpHook = procedure(x : uint32; y : uint32); + TKeyPressedHook = procedure(info : TKeyInfo); + TCloseHook = procedure(); + TMinimizeHook = procedure(); + TFocusHook = procedure(); + TLoseFocusHook = procedure(); + + THooks = record + OnDraw : TDrawHook; //Implemented + OnMouseClick : TMouseClickHook; //Implemented + OnMouseMove : TMouseMoveHook; + OnMouseDown : TMouseDownHook; + OnMouseUp : TMouseUpHook; + OnKeyPressed : TKeyPressedHook; //Implemented + OnClose : TCloseHook; //Implemented + OnMinimize : TMinimizeHook; + OnFocus : TFocusHook; //Implemented + OnLoseFocus : TLoseFocusHook; //Implemented + end; + + TWindow = record + visible : boolean; + buffer : T2DVideoMemory; + row_dirty : Array[0..63] of Boolean; + WND_X : uint32; + WND_Y : uint32; + WND_W : uint32; + WND_H : uint32; + Cursor : TCoord; + WND_NAME : PChar; + Hooks : THooks; + Closed : boolean; + Border : boolean; + ShellWND : boolean; + end; + PWindow = ^TWindow; + + TWindows = Array[0..MAX_WINDOWS-1] of PWindow; + TZOrder = Array[0..MAX_WINDOWS-1] of uint32; + TBackOrder = Array[0..MAX_WINDOWS-1] of uint32; + TFrontOrder = Array[0..MAX_WINDOWS-1] of uint32; + + TWindowManager = record + Windows : TWindows; + Z_Order : TZOrder; + Back_Order : TBackOrder; + Front_Order : TFrontOrder; + MousePos : TMouseCoord; + MousePrev : TMouseCoord; + end; + + TMouseDirt = record + TopLeft : TMouseCoord; + BottomRight : TMouseCoord; + end; + +var + Console_Properties : TConsoleProperties; //Generic Properties + Console_Real : T2DVideoMemory; //The real state of the Console/TUI + Console_Matrix : T2DVideoMemory; //The next buffer to be written + Console_Cursor : TCoord; //The text cursor position + WindowManager : TWindowManager; //Window Manager + Ready : Boolean = false; //Is the unit ready for use? + MouseDrawActive : Boolean = false; //Is the Mouse currently being updated? + mouse_dirt : TMouseDirt; //Character Cell(s) the mouse occupies, these need to be rewritten on mouse move. + Window_Border : TCharacter; + Default_Char : TCharacter; + WindowTitleMask : TMask; + WindowMask : TMask; + ExitMask : TMask; + MouseDown : Boolean; + WindowMovePos : TMouseCoord; + MovingWindow : uint32; + UnhandledClick : Boolean = false; + UnhandledClickLeft : Boolean = false; + MouseCursorEnabled : Boolean = true; + OpenTerminal : Boolean = false; + +function getMaxCellW : uint32; +begin + getMaxCellW:= Console_Properties.MAX_CELL_X; +end; + +function getMaxCellH : uint32; +begin + getMaxCellH:= Console_Properties.MAX_CELL_Y; +end; + +function getConsoleProperties : PConsoleProperties; +begin + getConsoleProperties:= PConsoleProperties(@Console_Properties); +end; + +function getWindowColorPtr : puint32; +begin + getWindowColorPtr:= @Window_Border.Attributes; +end; + +procedure setWindowColors(colors : uint32); +begin + Window_Border.Attributes:= colors; +end; + +procedure mouseEnabled(b : boolean); +begin + MouseCursorEnabled:= b; +end; + +procedure _MouseDown(); +begin + MouseDown:= true; +end; + +procedure _MouseUp(); +begin + MouseDown:= false; +end; + +procedure _MouseClick(left : boolean); +begin + if not UnhandledClick then begin + UnhandledClick:= true; + UnhandledClickLeft:= left; + end; +end; + +procedure AddToZOrder(WND : HWND); +var + idx : uint32; + i : uint32; + Window : PWindow; + +begin + idx:= MAX_WINDOWS; + for i:=0 to MAX_WINDOWS-1 do begin + if WindowManager.Z_Order[i] = WND then begin + break; + end; + if WindowManager.Z_Order[i] = MAX_WINDOWS then begin + idx:= i; + break; + end; + end; + if idx <> MAX_WINDOWS then begin + WindowManager.Z_Order[idx]:= WND; + end; +end; + +procedure RemoveFromZOrder(WND : HWND); +var + i : uint32; + idx : uint32; + +begin + idx:= MAX_WINDOWS; + for i:=0 to MAX_WINDOWS-1 do begin + if WindowManager.Z_Order[i] = WND then begin + WindowManager.Z_Order[i]:= MAX_WINDOWS; + idx:= i; + break; + end; + end; + if idx <> MAX_WINDOWS then begin + for i:=idx to MAX_WINDOWS-2 do begin + WindowManager.Z_Order[i]:= WindowManager.Z_Order[i+1]; + end; + WindowManager.Z_Order[MAX_WINDOWS-1]:= MAX_WINDOWS; + end; +end; + +procedure FocusZOrder(WND : HWND); +var + i : uint32; + idx : uint32; + old, new : HWND; + wold, wnew : PWindow; + +begin + idx:= MAX_WINDOWS; + for i:=0 to MAX_WINDOWS-1 do begin + if WindowManager.Z_Order[i] = WND then begin + idx:= i; + break; + end; + end; + if idx <> MAX_WINDOWS then begin + old:= WindowManager.Z_Order[0]; + new:= WND; + for i:=idx downto 1 do begin + WindowManager.Z_Order[i]:= WindowManager.Z_Order[i-1]; + end; + WindowManager.Z_Order[0]:= WND; + if old <> new then begin + wold:= WindowManager.Windows[old]; + wnew:= WindowManager.Windows[new]; + if wold <> nil then begin + if wold^.Hooks.OnLoseFocus <> nil then wold^.Hooks.OnLoseFocus(); + end; + if wnew <> nil then begin + if wnew^.Hooks.OnFocus <> nil then wnew^.Hooks.OnFocus(); + end; + end; + end; +end; + +function getWindowName(WND : HWND) : pchar; +var + Window : PWindow; + +begin + getWindowName:= nil; + Window:= WindowManager.Windows[WND]; + if Window <> nil then begin + if Window^.ShellWND then begin + getWindowName:= Window^.WND_NAME; + end; + end; +end; + +procedure SetShellWindow(WND : HWND; b : boolean); +var + Window : PWindow; + +begin + Window:= WindowManager.Windows[WND]; + if Window <> nil then begin + Window^.ShellWND:= b; + end; +end; + +procedure bordersEnabled(WND : HWND; enabled : boolean); +var + Window : PWindow; + +begin + Window:= WindowManager.Windows[WND]; + if Window <> nil then begin + Window^.Border:= enabled; + end; +end; + +procedure setCursorPosWND(x : uint32; y : uint32; WND : HWND); +var + Window : PWindow; + +begin + Window:= WindowManager.Windows[WND]; + if Window <> nil then begin + while x > Console_Properties.MAX_CELL_X-1 do dec(x); + while y > Console_Properties.MAX_CELL_Y-1 do dec(y); + Window^.Cursor.x:= x; + Window^.Cursor.y:= y; + end; +end; + +procedure setWindowPosition(WND : HWND; x, y : sint32); +var + Window : PWindow; + nx, ny : sint32; + +begin + Window:= WindowManager.Windows[WND]; + If Window <> nil then begin + nx:= x; + ny:= y; + if Window^.Border then begin + if nx < 2 then nx:= 2; + if ny < 1 then ny:= 1; + while (nx + Window^.WND_W + 2) > Console_Properties.MAX_CELL_X do begin + dec(nx); + end; + while (ny + Window^.WND_H + 1) > Console_Properties.MAX_CELL_Y do begin + dec(ny); + end; + end else begin + if nx < 0 then nx:= 0; + if ny < 0 then ny:= 0; + while (nx + Window^.WND_W) > Console_Properties.MAX_CELL_X do begin + dec(nx); + end; + while (ny + Window^.WND_H) > Console_Properties.MAX_CELL_Y do begin + dec(ny); + end; + end; + Window^.WND_X:= nx; + Window^.WND_Y:= ny; + end; +end; + +function registerEventHandler(WND : HWND; Event : TEventType; Handler : void) : boolean; +begin + registerEventHandler:= true; + if WindowManager.Windows[WND] <> nil then begin + case Event of + EVENT_DRAW : WindowManager.Windows[WND]^.Hooks.OnDraw:= TDrawHook(Handler); + EVENT_MOUSE_CLICK : WindowManager.Windows[WND]^.Hooks.OnMouseClick:= TMouseClickHook(Handler); + EVENT_MOUSE_MOVE : WindowManager.Windows[WND]^.Hooks.OnMouseMove:= TMouseMoveHook(Handler); + EVENT_MOUSE_DOWN : WindowManager.Windows[WND]^.Hooks.OnMouseDown:= TMouseDownHook(Handler); + EVENT_MOUSE_UP : WindowManager.Windows[WND]^.Hooks.OnMouseUp:= TMouseUpHook(Handler); + EVENT_KEY_PRESSED : WindowManager.Windows[WND]^.Hooks.OnKeyPressed:= TKeyPressedHook(Handler); + EVENT_CLOSE : WindowManager.Windows[WND]^.Hooks.OnClose:= TCloseHook(Handler); + EVENT_MINIMIZE : WindowManager.Windows[WND]^.Hooks.OnMinimize:= TMinimizeHook(Handler); + EVENT_FOCUS : WindowManager.Windows[WND]^.Hooks.OnFocus:= TFocusHook(Handler); + EVENT_LOSE_FOCUS : WindowManager.Windows[WND]^.Hooks.OnLoseFocus:= TLoseFocusHook(Handler); + else registerEventHandler:= false; + end; + end else begin + registerEventHandler:= false; + end; +end; + +function newWindow(x : uint32; y : uint32; Width : uint32; Height : uint32; Title : PChar) : HWND; +var + idx : uint32; + WND : PWindow; + +begin + tracer.push_trace('console.newWindow'); + newWindow:= 0; + for idx:=1 to MAX_WINDOWS-1 do begin + if WindowManager.Windows[idx] = nil then begin + newWindow:= idx; + break; + end; + end; + if newWindow <> 0 then begin + WND:= PWindow(kalloc(sizeof(TWindow))); + WND^.WND_NAME:= StringCopy(Title); + WND^.WND_X:= x; + WND^.WND_Y:= y; + WND^.WND_W:= Width; + WND^.WND_H:= Height; + WND^.Cursor.x:= 0; + WND^.Cursor.y:= 0; + WND^.visible:= true; + WND^.Closed:= false; + WND^.Border:= true; + WND^.ShellWND:= true; + WND^.Hooks.OnDraw := nil; + WND^.Hooks.OnMouseClick := nil; + WND^.Hooks.OnMouseMove := nil; + WND^.Hooks.OnMouseDown := nil; + WND^.Hooks.OnMouseUp := nil; + WND^.Hooks.OnKeyPressed := nil; + WND^.Hooks.OnClose := nil; + WND^.Hooks.OnMinimize := nil; + WND^.Hooks.OnFocus := nil; + WND^.Hooks.OnLoseFocus := nil; + WindowManager.Windows[newWindow]:= WND; + AddToZOrder(newWindow); + FocusZOrder(newWindow); + end; +end; + +//If Packet.x_sign then Packet.x_movement:= sint16(Packet.x_movement OR $FF00); + //If Packet.y_sign then Packet.y_movement:= sint16(Packet.y_movement OR $FF00); + +procedure forceQuitAll; +var + i : uint32; + WND : PWindow; + +begin + for i:=1 to MAX_WINDOWS-1 do begin + if WindowManager.Windows[i] <> nil then begin + WND:= WindowManager.Windows[i]; + WindowManager.Windows[i]:= nil; + kfree(void(WND^.WND_NAME)); + kfree(void(WND)); + end; + end; +end; + + +procedure _closeWindow(WND : HWND); +var + WNDCopy : PWindow; + +begin + if WindowManager.Windows[WND] <> nil then begin + RemoveFromZOrder(WND); + WNDCopy:= WindowManager.Windows[WND]; + WindowManager.Windows[WND]:= nil; + if WNDCopy^.Hooks.OnClose <> nil then WNDCopy^.Hooks.OnClose(); + kfree(void(WNDCopy^.WND_NAME)); + kfree(void(WNDCopy)); + end; +end; + +procedure closeWindow(WND : HWND); +begin + if WindowManager.Windows[WND] <> nil then begin + WindowManager.Windows[WND]^.Closed:= True; + end; +end; + +procedure closeAllWindows; +var + i : uint32; + +begin + for i:=1 to MAX_WINDOWS-1 do begin + setWNDVisible(i, false); + end; +end; + +procedure setWNDVisible(WND : uint32; visible : boolean); +begin + if WindowManager.Windows[WND] <> nil then begin + WindowManager.Windows[WND]^.visible:= visible; + end; +end; + +procedure toggleWNDVisible(WND : uint32); +begin + if WindowManager.Windows[DefaultWND] <> nil then begin + WindowManager.Windows[WND]^.visible:= not WindowManager.Windows[WND]^.visible; + end; +end; + +function MouseYToTile(Y : uint32) : uint32; +begin + MouseYToTile:= Y div 16; +end; + +function MouseXToTile(X : uint32) : uint32; +begin + MouseXToTile:= X div 8; +end; + +procedure drawMouse; +var + x, y : uint32; + MX, MY : uint32; + +begin + MouseDrawActive:= true; + MX:= WindowManager.MousePos.X; + MY:= WindowManager.MousePos.Y; + WindowManager.MousePrev.x:= MX; + WindowManager.MousePrev.y:= MY; + mouse_dirt.TopLeft.x:= (MX div 8) - 2; + mouse_dirt.TopLeft.y:= (MY div 16) - 2; + mouse_dirt.BottomRight.x:= (MX div 8) + 2; + mouse_dirt.BottomRight.y:= (MY div 16) + 2; + if mouse_dirt.TopLeft.x < 0 then mouse_dirt.TopLeft.x:= 0; + if mouse_dirt.TopLeft.y < 0 then mouse_dirt.TopLeft.y:= 0; + if mouse_dirt.BottomRight.x > Console_Properties.MAX_CELL_X then mouse_dirt.BottomRight.x:= Console_Properties.MAX_CELL_X; + if mouse_dirt.BottomRight.y > Console_Properties.MAX_CELL_Y then mouse_dirt.BottomRight.y:= Console_Properties.MAX_CELL_Y; + MouseDrawActive:= false; +end; + +procedure redrawMatrix; +var + x, y, w: uint32; + +begin + if (WindowManager.MousePos.x <> WindowManager.MousePrev.x) OR (WindowManager.MousePos.y <> WindowManager.MousePrev.y) then begin + for y:=mouse_dirt.TopLeft.y to mouse_dirt.BottomRight.y do begin + for x:=mouse_dirt.TopLeft.x to mouse_dirt.BottomRight.x do begin + Console_Real[y][x].character:= char(1); + end; + end; + drawMouse; + end; + for y:=0 to Console_Properties.MAX_CELL_Y do begin + for x:=0 to Console_Properties.MAX_CELL_X do begin + if (Console_Matrix[y][x].character <> Console_Real[y][x].character) or (Console_Matrix[y][x].attributes <> Console_Real[y][x].attributes) then begin + OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); + Console_Real[y][x]:= Console_Matrix[y][x]; + end; + end; + end; + if MouseCursorEnabled then outputCharToScreenSpace(char(0), WindowManager.MousePrev.x, WindowManager.MousePrev.y, $FFFF); +end; + +procedure setMousePosition(x : uint32; y : uint32); +begin + if MouseDrawActive then exit; + WindowManager.MousePos.X:= x; + WindowManager.MousePos.Y:= y; +end; + +procedure redrawWindows; +var + x, y, w : uint32; + WXL, WYL : sint32; + WXR, WYR : sint32; + STRC : uint32; + MIDP, STARTP : uint32; + deltax, deltay : sint32; + SelectedWindow : uint32; + +begin + if OpenTerminal then begin + terminal.run; + OpenTerminal:= false; + end; + + { Clear the Console_Matrix } + for y:=0 to Console_Properties.MAX_CELL_Y do begin + for x:=0 to Console_Properties.MAX_CELL_X do begin + Console_Matrix[y][x]:= Default_Char; + end; + end; + + { Redraw all of the Windows to the Matrix taking into account Z_Order and borders } + for w:=MAX_WINDOWS-1 downto 0 do begin + if WindowManager.Z_Order[w] = MAX_WINDOWS then continue; + if WindowManager.Windows[WindowManager.Z_Order[w]] <> nil then begin + if WindowManager.Windows[WindowManager.Z_Order[w]]^.Hooks.OnDraw <> nil then WindowManager.Windows[WindowManager.Z_Order[w]]^.Hooks.OnDraw(); + If WindowManager.Windows[WindowManager.Z_Order[w]]^.visible then begin + if WindowManager.Windows[WindowManager.Z_Order[w]]^.Border then begin + WXL:= WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_X - 1; + WYL:= WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_Y - 1; + WXR:= WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_X + WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_W + 1; + WYR:= WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_Y + WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_H + 1; + for y:=WYL to WYR do begin + Console_Matrix[y][WXL]:= Window_Border; + Console_Matrix[y][WXL-1]:= Window_Border; + Console_Matrix[y][WXR]:= Window_Border; + Console_Matrix[y][WXR+1]:= Window_Border; + Console_Real[y][WXL].Character:= char(3); + Console_Real[y][WXL-1].Character:= char(3); + Console_Real[y][WXR].Character:= char(3); + Console_Real[y][WXR+1].Character:= char(3); + end; + STRC:= 0; + MIDP:= (WXR + WXL) div 2; + STARTP:= MIDP - (StringSize(WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_NAME) div 2) - 1; + for x:=WXL to WXR do begin + Console_Matrix[WYL][x]:= Window_Border; + WindowTitleMask[WYL][x]:= WindowManager.Z_Order[w]; + if (STRC = StringSize(WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_NAME)) and (w = 0) then begin + console_Matrix[WYL][x].character:= '*'; + inc(STRC); + end; + if (x >= STARTP) and (STRC < StringSize(WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_NAME)) then begin + Console_Matrix[WYL][x].character:= WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_NAME[STRC]; + inc(STRC); + end; + if x = WXR then begin + Console_Matrix[WYL][x].character:= 'x'; + ExitMask[WYL][x]:= WindowManager.Z_Order[w]; + end; + Console_Matrix[WYR][x]:= Window_Border; + Console_Real[WYL][x].Character:= char(3); + Console_Real[WYR][x].Character:= char(3); + end; + end; + for y:=WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_Y to WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_Y + WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_H do begin + if y > Console_Properties.MAX_CELL_Y then break; + for x:=WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_X to WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_X + WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_W do begin + if x > Console_Properties.MAX_CELL_X then break; + Console_Matrix[y][x]:= WindowManager.Windows[WindowManager.Z_Order[w]]^.buffer[y - WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_Y][x - WindowManager.Windows[WindowManager.Z_Order[w]]^.WND_X]; + WindowTitleMask[y][x]:= 0; + WindowMask[y][x]:= WindowManager.Z_Order[w]; + ExitMask[y][x]:= 0; + end; + end; + end; + end; + end; + + { Handle any Clicks that have happened since last redraw } + if UnhandledClick then begin + if UnhandledClickLeft then begin + + SelectedWindow:= ExitMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; + if SelectedWindow <> 0 then begin + closeWindow(SelectedWindow); + end else begin + SelectedWindow:= WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; + if SelectedWindow <> 0 then begin + if WindowManager.Windows[SelectedWindow] <> nil then begin + if WindowManager.Windows[SelectedWindow]^.ShellWND then FocusZOrder(SelectedWindow); + end; + end else begin + SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; + if (SelectedWindow <> 0) and (WindowManager.Windows[SelectedWindow] <> nil) then begin + if (WindowManager.Z_Order[0] = SelectedWindow) or (WindowManager.Windows[SelectedWindow]^.ShellWND = false) then begin + if WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick <> nil then begin + deltax:= MouseXToTile(WindowManager.MousePrev.X) - WindowManager.Windows[SelectedWindow]^.WND_X; + deltay:= MouseYToTile(WindowManager.MousePrev.Y) - WindowManager.Windows[SelectedWindow]^.WND_Y; + WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick(deltax, deltay, true); + end; + end; + if (WindowManager.Z_Order[0] <> SelectedWindow) and (WindowManager.Windows[SelectedWindow]^.ShellWND) then begin + FocusZOrder(SelectedWindow); + end; + end; + end; + end; + + {SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; + if (SelectedWindow <> 0) and (WindowManager.Windows[SelectedWindow] <> nil) then begin + //OnClickHandler(Left) + if (WindowManager.Z_Order[0] = SelectedWindow) or (WindowManager.Windows[SelectedWindow]^.ShellWND = false) then begin + if WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick <> nil then begin + deltax:= MouseXToTile(WindowManager.MousePrev.X) - WindowManager.Windows[SelectedWindow]^.WND_X; + deltay:= MouseYToTile(WindowManager.MousePrev.Y) - WindowManager.Windows[SelectedWindow]^.WND_Y; + WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick(deltax, deltay, true); + end; + end; + if (WindowManager.Z_Order[0] <> SelectedWindow) and (WindowManager.Windows[SelectedWindow]^.ShellWND) then begin + FocusZOrder(SelectedWindow); + end; + end else begin + SelectedWindow:= WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; + if SelectedWindow <> 0 then begin + if WindowManager.Windows[SelectedWindow] <> nil then begin + if WindowManager.Windows[SelectedWindow]^.ShellWND then FocusZOrder(SelectedWindow); + end; + end; + SelectedWindow:= ExitMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; + if SelectedWindow <> 0 then begin + closeWindow(SelectedWindow); + end; + end;} + + + end; + if not UnhandledClickLeft then begin + SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; + if (SelectedWindow <> 0) and (WindowManager.Windows[SelectedWindow] <> nil) then begin + if (WindowManager.Z_Order[0] = SelectedWindow) or (WindowManager.Windows[SelectedWindow]^.ShellWND = false) then begin + if WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick <> nil then begin + deltax:= MouseXToTile(WindowManager.MousePrev.X) - WindowManager.Windows[SelectedWindow]^.WND_X; + deltay:= MouseYToTile(WindowManager.MousePrev.Y) - WindowManager.Windows[SelectedWindow]^.WND_Y; + WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick(deltax, deltay, false); + end; + end; + end; + end; + UnhandledClick:= false; + end; + + { Handle Moving Windows using MouseDown and Delta positions } + if MouseDown then begin + if MovingWindow = 0 then begin + MovingWindow:= WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; + if MovingWindow <> 0 then begin + WindowMovePos.x:= MouseXToTile(WindowManager.MousePrev.X); + WindowMovePos.y:= MouseYToTile(WindowManager.MousePrev.Y); + end else begin + MovingWindow:= MAX_WINDOWS; + end; + end; + if MovingWindow <> MAX_WINDOWS then begin + if WindowManager.Windows[MovingWindow] <> nil then begin + deltax:= WindowMovePos.x - MouseXToTile(WindowManager.MousePrev.X); + deltay:= WindowMovePos.y - MouseYToTile(WindowManager.MousePrev.Y); + WindowMovePos.x:= MouseXToTile(WindowManager.MousePrev.X); + WindowMovePos.y:= MouseYToTile(WindowManager.MousePrev.Y); + setWindowPosition(MovingWindow, WindowManager.Windows[MovingWindow]^.WND_X - deltax, WindowManager.Windows[MovingWindow]^.WND_Y - deltay); + FocusZOrder(MovingWindow); + end; + end; + end else begin + MovingWindow:= 0; + end; + + { Console_Matrix -> Actual Screen Buffer } + redrawMatrix; + + { Handle any closed Windows ready for next redraw } + for w:=0 to MAX_WINDOWS-1 do begin + if WindowManager.Windows[w] <> nil then begin + if WindowManager.Windows[w]^.Closed then _closeWindow(w); + end; + end; +end; + +procedure initWindows; +var + x, y, w : uint32; + WND : PWindow; + +begin + Default_Char.Character:= ' '; + Default_Char.attributes:= Console_Properties.Default_Attribute; + Default_Char.visible:= true; + + Window_Border.Character:= ' '; + Window_Border.Attributes:= console.combinecolors($01C3, $07EE); + Window_Border.visible:= true; + + For w:=0 to MAX_WINDOWS-1 do begin + WindowManager.Windows[w]:= nil; + WindowManager.Z_Order[w]:= MAX_WINDOWS; + end; + + WND:= PWindow(kalloc(sizeof(TWindow))); + WND^.WND_NAME:= 'Asuro'; + WND^.WND_X:= 0; + WND^.WND_Y:= 0; + WND^.WND_W:= Console_Properties.MAX_CELL_X; + WND^.WND_H:= Console_Properties.MAX_CELL_Y; + WND^.Cursor.x:= 0; + WND^.Cursor.y:= 0; + WND^.visible:= true; + WND^.Closed:= false; + WND^.Border:= false; + WND^.ShellWND:= false; + WND^.Hooks.OnDraw:= nil; + WND^.Hooks.OnMouseClick:= nil; + WND^.Hooks.OnMouseMove:= nil; + WND^.Hooks.OnMouseDown:= nil; + WND^.Hooks.OnMouseUp:= nil; + WND^.Hooks.OnKeyPressed:= nil; + WND^.Hooks.OnClose:= nil; + WND^.Hooks.OnMinimize:= nil; + WND^.Hooks.OnFocus:= nil; + WND^.Hooks.OnLoseFocus:= nil; + WindowManager.Windows[0]:= WND; + AddToZOrder(0); + FocusZOrder(0); +end; + +function getPixel(x : uint32; y : uint32) : uint16; +var + dest : puint16; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * Console_Properties.Width) + x; + getPixel:= dest^; +end; + +procedure drawPixel(x : uint32; y : uint32; color : uint16); +var + dest : puint16; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * Console_Properties.Width) + x; + dest^:= color; +end; + +function getPixel32(x : uint32; y : uint32) : uint32; +var + dest : puint16; + dest32 : puint32; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * Console_Properties.Width) + x; + dest32:= puint32(dest); + getPixel32:= dest32[0]; +end; + +procedure drawPixel32(x : uint32; y : uint32; pixel : uint32); +var + dest : puint16; + dest32 : puint32; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * Console_Properties.Width) + x; + dest32:= puint32(dest); + dest32[0]:= pixel; +end; + +function getPixel64(x : uint32; y : uint32) : uint64; +var + dest : puint16; + dest64 : puint64; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * Console_Properties.Width) + x; + dest64:= puint64(dest); + getPixel64:= dest64^; +end; + +procedure drawPixel64(x : uint32; y : uint32; pixel : uint64); +var + dest : puint16; + dest64 : puint64; + +begin + if not ready then exit; + dest:= puint16(multibootinfo^.framebuffer_addr); + dest:= dest + (y * Console_Properties.Width) + x; + dest64:= puint64(dest); + dest64^:= pixel; +end; + +procedure outputCharToScreenSpace(c : char; x : uint32; y : uint32; fgcolor : uint16); +var + dest : puint16; + dest32 : puint32; + fgcolor32, bgcolor32 : uint32; + mask : puint32; + i : uint32; + +begin + if not ready then exit; + fgcolor32:= fgcolor OR (fgcolor SHL 16); + mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); + dest:= puint16(multibootinfo^.framebuffer_addr); + //dest:= puint16(windowmanager.getBuffer(0)); + dest:= dest + (y * Console_Properties.Width) + x; + dest32:= puint32(dest); + for i:=0 to 15 do begin + dest32[(i*(Console_Properties.Width div 2))+0]:= (dest32[(i*(Console_Properties.Width div 2))+0] AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); + dest32[(i*(Console_Properties.Width div 2))+1]:= (dest32[(i*(Console_Properties.Width div 2))+1] AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); + dest32[(i*(Console_Properties.Width div 2))+2]:= (dest32[(i*(Console_Properties.Width div 2))+2] AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); + dest32[(i*(Console_Properties.Width div 2))+3]:= (dest32[(i*(Console_Properties.Width div 2))+3] AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); + end; + //windowmanager.redraw; +end; + +procedure outputCharTransparent(c : char; x : uint8; y : uint8; fgcolor : uint16); +var + dest : puint16; + dest32 : puint32; + fgcolor32, bgcolor32 : uint32; + mask : puint32; + i : uint32; + +begin + if not ready then exit; + fgcolor32:= fgcolor OR (fgcolor SHL 16); + mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); + dest:= puint16(multibootinfo^.framebuffer_addr); + //dest:= puint16(windowmanager.getBuffer(0)); + dest:= dest + (y*(Console_Properties.Width * 16)) + (x * 8); + dest32:= puint32(dest); + for i:=0 to 15 do begin + dest32[(i*(Console_Properties.Width div 2))+0]:= (dest32[(i*(Console_Properties.Width div 2))+0] AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); + dest32[(i*(Console_Properties.Width div 2))+1]:= (dest32[(i*(Console_Properties.Width div 2))+1] AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); + dest32[(i*(Console_Properties.Width div 2))+2]:= (dest32[(i*(Console_Properties.Width div 2))+2] AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); + dest32[(i*(Console_Properties.Width div 2))+3]:= (dest32[(i*(Console_Properties.Width div 2))+3] AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); + end; + //windowmanager.redraw; +end; + +procedure outputChar(c : char; x : uint8; y : uint8; fgcolor : uint16; bgcolor : uint16); +var + dest : puint16; + dest32 : puint32; + fgcolor32, bgcolor32 : uint32; + mask : puint32; + i : uint32; + +begin + if not ready then exit; + fgcolor32:= fgcolor OR (fgcolor SHL 16); + bgcolor32:= bgcolor OR (bgcolor SHL 16); + mask:= puint32(@Std_Mask[uint32(c) * (16 * 8)]); + dest:= puint16(multibootinfo^.framebuffer_addr); + //dest:= puint16(windowmanager.getBuffer(0)); + dest:= dest + (y*(Console_Properties.Width * 16)) + (x * 8); + dest32:= puint32(dest); + for i:=0 to 15 do begin + dest32[(i*(Console_Properties.Width div 2))+0]:= (bgcolor32 AND NOT(mask[(i*4)+0])) OR (fgcolor32 AND mask[(i*4)+0]); + dest32[(i*(Console_Properties.Width div 2))+1]:= (bgcolor32 AND NOT(mask[(i*4)+1])) OR (fgcolor32 AND mask[(i*4)+1]); + dest32[(i*(Console_Properties.Width div 2))+2]:= (bgcolor32 AND NOT(mask[(i*4)+2])) OR (fgcolor32 AND mask[(i*4)+2]); + dest32[(i*(Console_Properties.Width div 2))+3]:= (bgcolor32 AND NOT(mask[(i*4)+3])) OR (fgcolor32 AND mask[(i*4)+3]); + end; + //windowmanager.redraw; +end; + +procedure disable_cursor; +begin + outb($3D4, $0A); + outb($3D5, $20); +end; + +procedure keyhook(key_info : TKeyInfo); +begin + if (key_info.CTRL_DOWN) and (key_info.ALT_DOWN) then begin + case key_info.key_code of + uint8('c'):OpenTerminal:=true; + uint8('r'):resetSystem; + end; + end else begin + if WindowManager.Z_Order[0] <> MAX_WINDOWS then begin + if WindowManager.Windows[WindowManager.Z_Order[0]] <> nil then begin + if WindowManager.Windows[WindowManager.Z_Order[0]]^.Hooks.OnKeyPressed <> nil then WindowManager.Windows[WindowManager.Z_Order[0]]^.Hooks.OnKeyPressed(key_info); + end; + end; + end; +end; + +procedure init(); [public, alias: 'console_init']; +var + fb: puint32; + +Begin + fb:= puint32(uint32(multibootinfo^.framebuffer_addr)); + Console_Properties.Width:= multibootinfo^.framebuffer_width; + Console_Properties.Height:= multibootinfo^.framebuffer_height; + Console_Properties.BitsPerPixel:= multibootinfo^.framebuffer_bpp; + Console_Properties.MAX_CELL_X:= (Console_Properties.Width div 8) - 1; + Console_Properties.MAX_CELL_Y:= (Console_Properties.Height div 16) - 1; + If Console_Properties.BitsPerPixel <> 16 then while true do begin + + end; + kpalloc(uint32(fb)); + keyboard.hook(@keyhook); + initWindows; + Console_Properties.Default_Attribute:= console.combinecolors($FFFF, $0000); + console.clear(); + Ready:= True; +end; + +{ Default Console Write Functions } + +procedure clear(); [public, alias: 'console_clear']; +var + x,y: Byte; + +begin + if WindowManager.Windows[DefaultWND] <> nil then begin + for y:=0 to Console_Properties.MAX_CELL_Y do begin + for x:=0 to Console_Properties.MAX_CELL_X do begin + WindowManager.Windows[DefaultWND]^.Buffer[y][x].Character:= ' '; + WindowManager.Windows[DefaultWND]^.Buffer[y][x].Attributes:= Console_Properties.Default_Attribute; + WindowManager.Windows[DefaultWND]^.row_dirty[y]:= true; + //Console_Matrix[y][x].Character:= ' '; + //Console_Matrix[y][x].Attributes:= Console_Properties.Default_Attribute; + //OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); + end; + end; + WindowManager.Windows[DefaultWND]^.Cursor.X:= 0; + WindowManager.Windows[DefaultWND]^.Cursor.Y:= 0; + //redrawWindows; + end; + //Console_Cursor.X:= 0; + //Console_Cursor.Y:= 0; +end; + +procedure writebin8ex(b : uint8; attributes: uint32); +var + Mask : PMask; + i : uint8; + +begin + Mask:= PMask(@b); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); + end; +end; + +procedure writebin16ex(b : uint16; attributes: uint32); +var + Mask : PMask; + i,j : uint8; + +begin + for j:=1 downto 0 do begin + Mask:= PMask(uint32(@b) + (1 * j)); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); + end; + end; +end; + +procedure writebin32ex(b : uint32; attributes: uint32); +var + Mask : PMask; + i,j : uint8; + +begin + for j:=3 downto 0 do begin + Mask:= PMask(uint32(@b) + (1 * j)); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharex('1', attributes) else writecharex('0', attributes); + end; + end; +end; + +procedure writebin8(b : uint8); +begin + writebin8ex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin16(b : uint16); +begin + writebin16ex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin32(b : uint32); +begin + writebin32ex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin8lnex(b : uint8; attributes: uint32); +begin + writebin8ex(b, attributes); + console._safeincrement_y(); +end; + +procedure writebin16lnex(b : uint16; attributes: uint32); +begin + writebin16ex(b, attributes); + console._safeincrement_y(); +end; + +procedure writebin32lnex(b : uint32; attributes: uint32); +begin + writebin32ex(b, attributes); + console._safeincrement_y(); +end; + +procedure writebin8ln(b : uint8); +begin + writebin8lnex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin16ln(b : uint16); +begin + writebin16lnex(b, Console_Properties.Default_Attribute); +end; + +procedure writebin32ln(b : uint32); +begin + writebin32lnex(b, Console_Properties.Default_Attribute); +end; + +procedure setdefaultattribute(attribute: uint32); [public, alias: 'console_setdefaultattribute']; +begin + Console_Properties.Default_Attribute:= attribute; +end; + +procedure writechar(character: char); [public, alias: 'console_writechar']; +begin + console.writecharex(character, Console_Properties.Default_Attribute); +end; + +procedure writestring(str: PChar); [public, alias: 'console_writestring']; +begin + console.writestringex(str, Console_Properties.Default_Attribute); +end; + +procedure writeint(i: Integer); [public, alias: 'console_writeint']; +begin + console.writeintex(i, Console_Properties.Default_Attribute); +end; + +procedure writecharln(character: char); [public, alias: 'console_writecharln']; +begin + console.writecharlnex(character, Console_Properties.Default_Attribute); +end; + +procedure writestringln(str: PChar); [public, alias: 'console_writestringln']; +begin + console.writestringlnex(str, Console_Properties.Default_Attribute); +end; + +procedure writeintln(i: Integer); [public, alias: 'console_writeintln']; +begin + console.writeintlnex(i, Console_Properties.Default_Attribute); +end; + +procedure writecharex(character: char; attributes: uint32); [public, alias: 'console_writecharex']; +begin + serial.send(COM1, uint8(character), 10000); + if WindowManager.Windows[DefaultWND] <> nil then begin + WindowManager.Windows[DefaultWND]^.Buffer[WindowManager.Windows[DefaultWND]^.Cursor.Y][WindowManager.Windows[DefaultWND]^.Cursor.X].Character:= character; + WindowManager.Windows[DefaultWND]^.Buffer[WindowManager.Windows[DefaultWND]^.Cursor.Y][WindowManager.Windows[DefaultWND]^.Cursor.X].Attributes:= attributes; + //outputChar(character, Console_Cursor.X, Console_Cursor.Y, attributes SHR 16, attributes AND $FFFF); + //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Character:= character; + //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Attributes:= attributes; + WindowManager.Windows[DefaultWND]^.row_dirty[WindowManager.Windows[DefaultWND]^.Cursor.Y]:= true; + console._safeincrement_x(); + end; +end; + +procedure writehexpair(b : uint8); +var + bn : Array[0..1] of uint8; + i : uint8; + +begin + bn[0]:= b SHR 4; + bn[1]:= b AND $0F; + for i:=0 to 1 do begin + case bn[i] of + 0:writestring('0'); + 1:writestring('1'); + 2:writestring('2'); + 3:writestring('3'); + 4:writestring('4'); + 5:writestring('5'); + 6:writestring('6'); + 7:writestring('7'); + 8:writestring('8'); + 9:writestring('9'); + 10:writestring('A'); + 11:writestring('B'); + 12:writestring('C'); + 13:writestring('D'); + 14:writestring('E'); + 15:writestring('F'); + end; + end; +end; + +procedure writehexex(i : dword; attributes: uint32); [public, alias: 'console_writehexex']; +var + Hex : Array[0..7] of Byte; + Res : DWORD; + Rem : DWORD; + c : Integer; + +begin + for c:=0 to 7 do begin + Hex[c]:= 0; + end; + c:=0; + Res:= i; + Rem:= Res mod 16; + while Res > 0 do begin + Hex[c]:= Rem; + Res:= Res div 16; + Rem:= Res mod 16; + c:=c+1; + end; + writestringex('0x', attributes); + for c:=7 downto 0 do begin + if Hex[c] <> 255 then begin + case Hex[c] of + 0:writecharex('0', attributes); + 1:writecharex('1', attributes); + 2:writecharex('2', attributes); + 3:writecharex('3', attributes); + 4:writecharex('4', attributes); + 5:writecharex('5', attributes); + 6:writecharex('6', attributes); + 7:writecharex('7', attributes); + 8:writecharex('8', attributes); + 9:writecharex('9', attributes); + 10:writecharex('A', attributes); + 11:writecharex('B', attributes); + 12:writecharex('C', attributes); + 13:writecharex('D', attributes); + 14:writecharex('E', attributes); + 15:writecharex('F', attributes); + else writecharex('?', attributes); + end; + end; + end; +end; + +procedure writehex(i : dword); [public, alias: 'console_writehex']; +begin + console.writehexex(i, Console_Properties.Default_Attribute); +end; + +procedure writehexlnex(i : dword; attributes: uint32); +begin + console.writehexex(i, attributes); + console._safeincrement_y(); +end; + +procedure writehexln(i : dword); +begin + writehexlnex(i, Console_Properties.Default_Attribute); +end; + +procedure Output(identifier : PChar; str : PChar); +begin + writestring('['); + writestring(identifier); + writestring('] '); + writestring(str); + redrawWindows; +end; + +procedure Outputln(identifier : PChar; str : PChar); +begin + Output(identifier, str); + writestringln(' '); +end; + +procedure writestringex(str: PChar; attributes: uint32); [public, alias: 'console_writestringex']; +var + i : integer; + +begin + i:= 0; + while (str[i] <> #0) do begin + console.writecharex(str[i], attributes); + i:=i+1; + end; +end; + +procedure writeintex(i: Integer; attributes: uint32); [public, alias: 'console_writeintex']; +var + buffer: array [0..11] of Char; + str: PChar; + digit: DWORD; + minus: Boolean; +begin + str := @buffer[11]; + str^ := #0; + if (i < 0) then begin + digit := -i; + minus := True; + end else begin + digit := i; + minus := False; + end; + repeat + Dec(str); + str^ := Char((digit mod 10) + Byte('0')); + digit := digit div 10; + until (digit = 0); + if (minus) then begin + Dec(str); + str^ := '-'; + end; + console.writestringex(str, attributes); +end; + +procedure writecharlnex(character: char; attributes: uint32); [public, alias: 'console_writecharlnex']; +begin + console.writecharex(character, attributes); + console._safeincrement_y(); +end; + +procedure writestringlnex(str: PChar; attributes: uint32); [public, alias: 'console_writestringlnex']; +begin + console.writestringex(str, attributes); + console._safeincrement_y(); +end; + +procedure writeintlnex(i: Integer; attributes: uint32); [public, alias: 'console_writeintlnex']; +begin + console.writeintex(i, attributes); + console._safeincrement_y(); +end; + +function combinecolors(Foreground, Background: uint16): uint32; +begin + combinecolors:= (uint32(Foreground) SHL 16) OR Background; +end; + +procedure _update_cursor(); [public, alias: '_console_update_cursor']; +var + pos : word; + b : byte; + +begin + //pos:= (Console_Cursor.Y * 80) + Console_Cursor.X; + //outb($3D4, $0F); + //b:= pos and $00FF; + //outb($3D5, b); + //outb($3D4, $0E); + //b:= pos shr 8; + //outb($3D5, b); + if CONSOLE_SLOW_REDRAW then redrawWindows; + //sleep(1); +end; + +procedure backspace; +begin + if WindowManager.Windows[DefaultWND] <> nil then begin + Dec(WindowManager.Windows[DefaultWND]^.Cursor.X); + writechar(' '); + Dec(WindowManager.Windows[DefaultWND]^.Cursor.X); + _update_cursor(); + end; +end; + +procedure _increment_x(); [public, alias: '_console_increment_x']; +begin + if WindowManager.Windows[DefaultWND] <> nil then begin + WindowManager.Windows[DefaultWND]^.Cursor.X:= WindowManager.Windows[DefaultWND]^.Cursor.X+1; + If WindowManager.Windows[DefaultWND]^.Cursor.X > WindowManager.Windows[DefaultWND]^.WND_W-1 then WindowManager.Windows[DefaultWND]^.Cursor.X:= 0; + console._update_cursor; + end; + //Console_Cursor.X:= Console_Cursor.X+1; + //If Console_Cursor.X > 159 then Console_Cursor.X:= 0; + //console._update_cursor; +end; + +procedure _increment_y(); [public, alias: '_console_increment_y']; +begin + if WindowManager.Windows[DefaultWND] <> nil then begin + WindowManager.Windows[DefaultWND]^.Cursor.Y:= WindowManager.Windows[DefaultWND]^.Cursor.Y+1; + If WindowManager.Windows[DefaultWND]^.Cursor.Y > WindowManager.Windows[DefaultWND]^.WND_H-1 then begin + console._newline(); + WindowManager.Windows[DefaultWND]^.Cursor.Y:= WindowManager.Windows[DefaultWND]^.WND_H-1; + end; + console._update_cursor; + end; + //Console_Cursor.Y:= Console_Cursor.Y+1; + //If Console_Cursor.Y > 63 then begin + // console._newline(); + // Console_Cursor.Y:= 63; + //end; + //console._update_cursor; +end; + +procedure _safeincrement_x(); [public, alias: '_console_safeincrement_x']; +begin + if WindowManager.Windows[DefaultWND] <> nil then begin + WindowManager.Windows[DefaultWND]^.Cursor.X:= WindowManager.Windows[DefaultWND]^.Cursor.X+1; + if WindowManager.Windows[DefaultWND]^.Cursor.X > WindowManager.Windows[DefaultWND]^.WND_W-1 then begin + console._safeincrement_y(); + end; + console._update_cursor; + end; + //Console_Cursor.X:= Console_Cursor.X+1; + //If Console_Cursor.X > 159 then begin + // console._safeincrement_y(); + //end; + //console._update_cursor; +end; + +procedure _safeincrement_y(); [public, alias: '_console_safeincrement_y']; +begin + serial.send(COM1, uint8(13), 10000); + serial.send(COM1, uint8(10), 10000); + if WindowManager.Windows[DefaultWND] <> nil then begin + WindowManager.Windows[DefaultWND]^.Cursor.Y:= WindowManager.Windows[DefaultWND]^.Cursor.Y+1; + if WindowManager.Windows[DefaultWND]^.Cursor.Y > WindowManager.Windows[DefaultWND]^.WND_H-1 then begin + console._newline(); + WindowManager.Windows[DefaultWND]^.Cursor.Y:= WindowManager.Windows[DefaultWND]^.WND_H-1; + end; + WindowManager.Windows[DefaultWND]^.Cursor.X:= 0; + console._update_cursor; + end; + //Console_Cursor.Y:= Console_Cursor.Y+1; + //If Console_Cursor.Y > 63 then begin + // console._newline(); + // Console_Cursor.Y:= 63; + //end; + //Console_Cursor.X:= 0; + //console._update_cursor; +end; + +procedure _newline(); [public, alias: '_console_newline']; +var + x, y : byte; + +begin + if WindowManager.Windows[DefaultWND] <> nil then begin + if WindowManager.Windows[DefaultWND]^.WND_W = 0 then exit; + if WindowManager.Windows[DefaultWND]^.WND_H = 0 then exit; + for x:=0 to WindowManager.Windows[DefaultWND]^.WND_W do begin + for y:=0 to WindowManager.Windows[DefaultWND]^.WND_H-1 do begin + WindowManager.Windows[DefaultWND]^.buffer[y][x]:= WindowManager.Windows[DefaultWND]^.buffer[y+1][x]; + WindowManager.Windows[DefaultWND]^.row_dirty[y]:= true; + //Console_Matrix[y][x]:= Console_Matrix[y+1][x]; + end; + end; + for x:=0 to WindowManager.Windows[DefaultWND]^.WND_W do begin + WindowManager.Windows[DefaultWND]^.buffer[WindowManager.Windows[DefaultWND]^.WND_H-1][x].Character:= ' '; + WindowManager.Windows[DefaultWND]^.buffer[WindowManager.Windows[DefaultWND]^.WND_H-1][x].Attributes:= $FFFF0000; + //Console_Matrix[63][x].Character:= ' '; + //Console_Matrix[63][x].Attributes:= $FFFF0000; + end; + //for y:=0 to 63 do begin + // for x:=0 to 159 do begin + // OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); + // end; + //end; + console._update_cursor; + end; +end; + +{ WND Specific Console Draw Functions } + +procedure clearWND(WND : uint32); +var + x,y: Byte; + +begin + if WindowManager.Windows[WND] <> nil then begin + for y:=0 to Console_Properties.MAX_CELL_Y do begin + for x:=0 to Console_Properties.MAX_CELL_X do begin + WindowManager.Windows[WND]^.Buffer[y][x].Character:= ' '; + WindowManager.Windows[WND]^.Buffer[y][x].Attributes:= Console_Properties.Default_Attribute; + WindowManager.Windows[WND]^.row_dirty[y]:= true; + //Console_Matrix[y][x].Character:= ' '; + //Console_Matrix[y][x].Attributes:= Console_Properties.Default_Attribute; + //OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); + end; + end; + WindowManager.Windows[WND]^.Cursor.X:= 0; + WindowManager.Windows[WND]^.Cursor.Y:= 0; + //redrawWindows; + end; + //Console_Cursor.X:= 0; + //Console_Cursor.Y:= 0; +end; + +procedure clearWNDEx(WND : uint32; attributes : uint32); +var + x,y: Byte; + +begin + if WindowManager.Windows[WND] <> nil then begin + for y:=0 to Console_Properties.MAX_CELL_Y do begin + for x:=0 to Console_Properties.MAX_CELL_X do begin + WindowManager.Windows[WND]^.Buffer[y][x].Character:= ' '; + WindowManager.Windows[WND]^.Buffer[y][x].Attributes:= attributes; + WindowManager.Windows[WND]^.row_dirty[y]:= true; + end; + end; + WindowManager.Windows[WND]^.Cursor.X:= 0; + WindowManager.Windows[WND]^.Cursor.Y:= 0; + end; +end; + +procedure writebin8exWND(b : uint8; attributes: uint32; WND : uint32); +var + Mask : PMask; + i : uint8; + +begin + Mask:= PMask(@b); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharexWND('1', attributes, WND) else writecharexWND('0', attributes, WND); + end; +end; + +procedure writebin16exWND(b : uint16; attributes: uint32; WND : uint32); +var + Mask : PMask; + i,j : uint8; + +begin + for j:=1 downto 0 do begin + Mask:= PMask(uint32(@b) + (1 * j)); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharexWND('1', attributes, WND) else writecharexWND('0', attributes, WND); + end; + end; +end; + +procedure writebin32exWND(b : uint32; attributes: uint32; WND : uint32); +var + Mask : PMask; + i,j : uint8; + +begin + for j:=3 downto 0 do begin + Mask:= PMask(uint32(@b) + (1 * j)); + for i:=0 to 7 do begin + If Mask^[7-i] then writecharexWND('1', attributes, WND) else writecharexWND('0', attributes, WND); + end; + end; +end; + +procedure writebin8WND(b : uint8; WND : uint32); +begin + writebin8exWND(b, Console_Properties.Default_Attribute, WND); +end; + +procedure writebin16WND(b : uint16; WND : uint32); +begin + writebin16exWND(b, Console_Properties.Default_Attribute, WND); +end; + +procedure writebin32WND(b : uint32; WND : uint32); +begin + writebin32exWND(b, Console_Properties.Default_Attribute, WND); +end; + +procedure writebin8lnexWND(b : uint8; attributes: uint32; WND : uint32); +begin + writebin8exWND(b, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writebin16lnexWND(b : uint16; attributes: uint32; WND : uint32); +begin + writebin16exWND(b, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writebin32lnexWND(b : uint32; attributes: uint32; WND : uint32); +begin + writebin32exWND(b, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writebin8lnWND(b : uint8; WND : uint32); +begin + writebin8lnexWND(b, Console_Properties.Default_Attribute, WND); +end; + +procedure writebin16lnWND(b : uint16; WND : uint32); +begin + writebin16lnexWND(b, Console_Properties.Default_Attribute, WND); +end; + +procedure writebin32lnWND(b : uint32; WND : uint32); +begin + writebin32lnexWND(b, Console_Properties.Default_Attribute, WND); +end; + +{procedure setdefaultattribute(attribute: uint32); [public, alias: 'console_setdefaultattribute']; +begin + Console_Properties.Default_Attribute:= attribute; +end;} + +procedure writecharWND(character: char; WND : uint32); +begin + console.writecharexWND(character, Console_Properties.Default_Attribute, WND); +end; + +procedure writestringWND(str: PChar; WND : uint32); +begin + console.writestringexWND(str, Console_Properties.Default_Attribute, WND); +end; + +procedure writeintWND(i: Integer; WND : uint32); +begin + console.writeintexWND(i, Console_Properties.Default_Attribute, WND); +end; + +procedure writecharlnWND(character: char; WND : uint32); +begin + console.writecharlnexWND(character, Console_Properties.Default_Attribute, WND); +end; + +procedure writestringlnWND(str: PChar; WND : uint32); +begin + console.writestringlnexWND(str, Console_Properties.Default_Attribute, WND); +end; + +procedure writeintlnWND(i: Integer; WND : uint32); +begin + console.writeintlnexWND(i, Console_Properties.Default_Attribute, WND); +end; + +procedure writecharexWND(character: char; attributes: uint32; WND : uint32); +begin + if WindowManager.Windows[WND] <> nil then begin + WindowManager.Windows[WND]^.Buffer[WindowManager.Windows[WND]^.Cursor.Y][WindowManager.Windows[WND]^.Cursor.X].Character:= character; + WindowManager.Windows[WND]^.Buffer[WindowManager.Windows[WND]^.Cursor.Y][WindowManager.Windows[WND]^.Cursor.X].Attributes:= attributes; + //outputChar(character, Console_Cursor.X, Console_Cursor.Y, attributes SHR 16, attributes AND $FFFF); + //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Character:= character; + //Console_Matrix[Console_Cursor.Y][Console_Cursor.X].Attributes:= attributes; + WindowManager.Windows[WND]^.row_dirty[WindowManager.Windows[WND]^.Cursor.Y]:= true; + console._safeincrement_x_WND(WND); + end; +end; + +procedure writehexpairWND(b : uint8; WND : uint32); +begin + writehexpairExWND(b, Console_Properties.Default_Attribute, WND); +end; + +procedure writehexpairExWND(b : uint8; Attributes : uint32; WND : uint32); +var + bn : Array[0..1] of uint8; + i : uint8; + +begin + bn[0]:= b SHR 4; + bn[1]:= b AND $0F; + for i:=0 to 1 do begin + case bn[i] of + 0 :writestringExWND('0', Attributes, WND); + 1 :writestringExWND('1', Attributes, WND); + 2 :writestringExWND('2', Attributes, WND); + 3 :writestringExWND('3', Attributes, WND); + 4 :writestringExWND('4', Attributes, WND); + 5 :writestringExWND('5', Attributes, WND); + 6 :writestringExWND('6', Attributes, WND); + 7 :writestringExWND('7', Attributes, WND); + 8 :writestringExWND('8', Attributes, WND); + 9 :writestringExWND('9', Attributes, WND); + 10:writestringExWND('A', Attributes, WND); + 11:writestringExWND('B', Attributes, WND); + 12:writestringExWND('C', Attributes, WND); + 13:writestringExWND('D', Attributes, WND); + 14:writestringExWND('E', Attributes, WND); + 15:writestringExWND('F', Attributes, WND); + end; + end; +end; + +procedure writehexexWND(i : dword; attributes: uint32; WND : uint32); +var + Hex : Array[0..7] of Byte; + Res : DWORD; + Rem : DWORD; + c : Integer; + +begin + for c:=0 to 7 do begin + Hex[c]:= 0; + end; + c:=0; + Res:= i; + Rem:= Res mod 16; + while Res > 0 do begin + Hex[c]:= Rem; + Res:= Res div 16; + Rem:= Res mod 16; + c:=c+1; + end; + writestringexWND('0x', attributes, WND); + for c:=7 downto 0 do begin + if Hex[c] <> 255 then begin + case Hex[c] of + 0:writecharexWND('0', attributes, WND); + 1:writecharexWND('1', attributes, WND); + 2:writecharexWND('2', attributes, WND); + 3:writecharexWND('3', attributes, WND); + 4:writecharexWND('4', attributes, WND); + 5:writecharexWND('5', attributes, WND); + 6:writecharexWND('6', attributes, WND); + 7:writecharexWND('7', attributes, WND); + 8:writecharexWND('8', attributes, WND); + 9:writecharexWND('9', attributes, WND); + 10:writecharexWND('A', attributes, WND); + 11:writecharexWND('B', attributes, WND); + 12:writecharexWND('C', attributes, WND); + 13:writecharexWND('D', attributes, WND); + 14:writecharexWND('E', attributes, WND); + 15:writecharexWND('F', attributes, WND); + else writecharexWND('?', attributes, WND); + end; + end; + end; +end; + +procedure writehexWND(i : dword; WND : uint32); +begin + console.writehexexWND(i, Console_Properties.Default_Attribute, WND); +end; + +procedure writehexlnexWND(i : dword; attributes: uint32; WND : uint32); +begin + console.writehexexWND(i, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writehexlnWND(i : dword; WND : uint32); +begin + writehexlnexWND(i, Console_Properties.Default_Attribute, WND); +end; + +procedure OutputWND(identifier : PChar; str : PChar; WND : uint32); +begin + writestringWND('[', WND); + writestringWND(identifier, WND); + writestringWND('] ', WND); + writestringWND(str, WND); +end; + +procedure OutputlnWND(identifier : PChar; str : PChar; WND : uint32); +begin + OutputWND(identifier, str, WND); + writestringlnWND(' ', WND); +end; + +procedure writestringexWND(str: PChar; attributes: uint32; WND : uint32); +var + i : integer; + +begin + i:= 0; + while (str[i] <> #0) do begin + console.writecharexWND(str[i], attributes, WND); + i:=i+1; + end; +end; + +procedure writeintexWND(i: Integer; attributes: uint32; WND : uint32); +var + buffer: array [0..11] of Char; + str: PChar; + digit: DWORD; + minus: Boolean; +begin + str := @buffer[11]; + str^ := #0; + if (i < 0) then begin + digit := -i; + minus := True; + end else begin + digit := i; + minus := False; + end; + repeat + Dec(str); + str^ := Char((digit mod 10) + Byte('0')); + digit := digit div 10; + until (digit = 0); + if (minus) then begin + Dec(str); + str^ := '-'; + end; + console.writestringexWND(str, attributes, WND); +end; + +procedure writecharlnexWND(character: char; attributes: uint32; WND : uint32); +begin + console.writecharexWND(character, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writestringlnexWND(str: PChar; attributes: uint32; WND : uint32); +begin + console.writestringexWND(str, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure writeintlnexWND(i: Integer; attributes: uint32; WND : uint32); +begin + console.writeintexWND(i, attributes, WND); + console._safeincrement_y_WND(WND); +end; + +procedure backspaceWND(WND : uint32); +begin + if WindowManager.Windows[WND] <> nil then begin + Dec(WindowManager.Windows[WND]^.Cursor.X); + writecharWND(' ', WND); + Dec(WindowManager.Windows[WND]^.Cursor.X); + _update_cursor(); + end; +end; + +procedure _increment_x_WND(WND : uint32); +begin + if WindowManager.Windows[WND] <> nil then begin + WindowManager.Windows[WND]^.Cursor.X:= WindowManager.Windows[WND]^.Cursor.X+1; + If WindowManager.Windows[WND]^.Cursor.X > WindowManager.Windows[WND]^.WND_W-1 then WindowManager.Windows[WND]^.Cursor.X:= 0; + console._update_cursor; + end; + //Console_Cursor.X:= Console_Cursor.X+1; + //If Console_Cursor.X > 159 then Console_Cursor.X:= 0; + //console._update_cursor; +end; + +procedure _increment_y_WND(WND : uint32); +begin + if WindowManager.Windows[WND] <> nil then begin + WindowManager.Windows[WND]^.Cursor.Y:= WindowManager.Windows[WND]^.Cursor.Y+1; + If WindowManager.Windows[WND]^.Cursor.Y > WindowManager.Windows[WND]^.WND_H-1 then begin + console._newlineWND(WND); + WindowManager.Windows[WND]^.Cursor.Y:= WindowManager.Windows[WND]^.WND_H-1; + end; + console._update_cursor; + end; + //Console_Cursor.Y:= Console_Cursor.Y+1; + //If Console_Cursor.Y > 63 then begin + // console._newline(); + // Console_Cursor.Y:= 63; + //end; + //console._update_cursor; +end; + +procedure _safeincrement_x_WND(WND : uint32); +begin + if WindowManager.Windows[WND] <> nil then begin + WindowManager.Windows[WND]^.Cursor.X:= WindowManager.Windows[WND]^.Cursor.X+1; + if WindowManager.Windows[WND]^.Cursor.X > WindowManager.Windows[WND]^.WND_W-1 then begin + console._safeincrement_y_WND(WND); + end; + console._update_cursor; + end; + //Console_Cursor.X:= Console_Cursor.X+1; + //If Console_Cursor.X > 159 then begin + // console._safeincrement_y(); + //end; + //console._update_cursor; +end; + +procedure _safeincrement_y_WND(WND : uint32); +begin + if WindowManager.Windows[WND] <> nil then begin + WindowManager.Windows[WND]^.Cursor.Y:= WindowManager.Windows[WND]^.Cursor.Y+1; + if WindowManager.Windows[WND]^.Cursor.Y > WindowManager.Windows[WND]^.WND_H-1 then begin + console._newlineWND(WND); + WindowManager.Windows[WND]^.Cursor.Y:= WindowManager.Windows[WND]^.WND_H-1; + end; + WindowManager.Windows[WND]^.Cursor.X:= 0; + console._update_cursor; + end; + //Console_Cursor.Y:= Console_Cursor.Y+1; + //If Console_Cursor.Y > 63 then begin + // console._newline(); + // Console_Cursor.Y:= 63; + //end; + //Console_Cursor.X:= 0; + //console._update_cursor; +end; + +procedure _newlineWND(WND : uint32); +var + x, y : byte; + +begin + if WindowManager.Windows[WND] <> nil then begin + if WindowManager.Windows[WND]^.WND_W = 0 then exit; + if WindowManager.Windows[WND]^.WND_H = 0 then exit; + for x:=0 to WindowManager.Windows[WND]^.WND_W do begin + for y:=0 to WindowManager.Windows[WND]^.WND_H-1 do begin + WindowManager.Windows[WND]^.buffer[y][x]:= WindowManager.Windows[WND]^.buffer[y+1][x]; + WindowManager.Windows[WND]^.row_dirty[y]:= true; + //Console_Matrix[y][x]:= Console_Matrix[y+1][x]; + end; + end; + for x:=0 to WindowManager.Windows[WND]^.WND_W do begin + WindowManager.Windows[WND]^.buffer[WindowManager.Windows[WND]^.WND_H-1][x].Character:= ' '; + WindowManager.Windows[WND]^.buffer[WindowManager.Windows[WND]^.WND_H-1][x].Attributes:= $FFFF0000; + //Console_Matrix[63][x].Character:= ' '; + //Console_Matrix[63][x].Attributes:= $FFFF0000; + end; + //for y:=0 to 63 do begin + // for x:=0 to 159 do begin + // OutputChar(Console_Matrix[y][x].Character, x, y, Console_Matrix[y][x].Attributes SHR 16, Console_Matrix[y][x].Attributes AND $FFFF); + // end; + //end; + console._update_cursor; + end; +end; + +end. diff --git a/src/include/multiboot.pas b/src/include/multiboot.pas index 3b065a9c..d00d0f4f 100644 --- a/src/include/multiboot.pas +++ b/src/include/multiboot.pas @@ -1,89 +1,89 @@ -// Copyright 2021 Kieron Morris -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -{ - Include->Multiboot - Multiboot Structures & Access. - - @author(Kieron Morris ) -} -unit multiboot; - -interface - -const - KERNEL_STACKSIZE = $4000; - MULTIBOOT_BOOTLOADER_MAGIC = $2BADB002; - -type - Pelf_section_header_table_t = ^elf_section_header_table_t; - elf_section_header_table_t = packed record - num: uint32; - size: uint32; - addr: uint32; - shndx: uint32; - end; - - Pmultiboot_info_t = ^multiboot_info_t; - multiboot_info_t = packed record - flags: uint32; - mem_lower: uint32; - mem_upper: uint32; - boot_device: uint32; - cmdline: uint32; - mods_count: uint32; - mods_addr: uint32; - elf_sec: elf_section_header_table_t; - mmap_length: uint32; - mmap_addr: uint32; - drives_legnth : uint32; - drives_addr: uint32; - config_table : uint32; - boot_loader_name : uint32; - apm_table: uint32; - vbe_control_info : uint32; - vbe_mode_info : uint32; - vbe_mode : uint16; - vbe_interface_seg : uint16; - vbe_interface_off : uint16; - vbe_interface_len : uint16; - framebuffer_addr : uint64; - framebuffer_pitch : uint32; - framebuffer_width : uint32; - framebuffer_height: uint32; - framebuffer_bpp : uint8; - end; - - Pmodule_t = ^module_t; - module_t = packed record - mod_start: uint32; - mod_end: uint32; - name: uint32; - reserved: uint32; - end; - - Pmemory_map_t = ^memory_map_t; - memory_map_t = packed record - size: uint32; - base_addr : uint64; - length : uint64; - mtype: uint32; - end; - -var - multibootinfo : Pmultiboot_info_t = nil; - multibootmagic : uint32; - -implementation - -end. +// Copyright 2021 Kieron Morris +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +{ + Include->Multiboot - Multiboot Structures & Access. + + @author(Kieron Morris ) +} +unit multiboot; + +interface + +const + KERNEL_STACKSIZE = $4000; + MULTIBOOT_BOOTLOADER_MAGIC = $2BADB002; + +type + Pelf_section_header_table_t = ^elf_section_header_table_t; + elf_section_header_table_t = packed record + num: uint32; + size: uint32; + addr: uint32; + shndx: uint32; + end; + + Pmultiboot_info_t = ^multiboot_info_t; + multiboot_info_t = packed record + flags: uint32; + mem_lower: uint32; + mem_upper: uint32; + boot_device: uint32; + cmdline: uint32; + mods_count: uint32; + mods_addr: uint32; + elf_sec: elf_section_header_table_t; + mmap_length: uint32; + mmap_addr: uint32; + drives_legnth : uint32; + drives_addr: uint32; + config_table : uint32; + boot_loader_name : uint32; + apm_table: uint32; + vbe_control_info : uint32; + vbe_mode_info : uint32; + vbe_mode : uint16; + vbe_interface_seg : uint16; + vbe_interface_off : uint16; + vbe_interface_len : uint16; + framebuffer_addr : uint64; + framebuffer_pitch : uint32; + framebuffer_width : uint32; + framebuffer_height: uint32; + framebuffer_bpp : uint8; + end; + + Pmodule_t = ^module_t; + module_t = packed record + mod_start: uint32; + mod_end: uint32; + name: uint32; + reserved: uint32; + end; + + Pmemory_map_t = ^memory_map_t; + memory_map_t = packed record + size: uint32; + base_addr : uint64; + length : uint64; + mtype: uint32; + end; + +var + multibootinfo : Pmultiboot_info_t = nil; + multibootmagic : uint32; + +implementation + +end. diff --git a/src/kernel.pas b/src/kernel.pas index b3ee49c5..9b40accc 100644 --- a/src/kernel.pas +++ b/src/kernel.pas @@ -1,270 +1,270 @@ -// Copyright 2021 Kieron Morris & Aaron Hance -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -{ - Kernel Main - Main Kernel Entry Point. - - @author(Kieron Morris ) - @author(Aaron Hance ) -} -unit kernel; - -interface - -uses - multiboot, bios_data_area, - util, - gdt, idt, isr, irq, tss, - TMR_0_ISR, - console, - keyboard, mouse, - vmemorymanager, pmemorymanager, lmemorymanager, - tracer, - drivermanagement, - scheduler, - progmanager, - PCI, - strings, - USB, - testdriver, - E1000, - IDE, - storagemanagement, - lists, - net, - fat32, - isrmanager, - faults, - fonts, - RTC, - serial, - cpu, - md5, - base64, - rand, - terminal, - hashmap, vfs; - -procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall; - -implementation - -procedure terminal_command_meminfo(params : PParamList); -begin - push_trace('kernel.terminal_command_meminfo'); - - console.writestringWND('Lower Memory = ', getTerminalHWND); - console.writeintWND(multibootinfo^.mem_lower, getTerminalHWND); - console.writestringlnWND('KB', getTerminalHWND); - console.writestringWND('Higher Memory = ', getTerminalHWND); - console.writeintWND(multibootinfo^.mem_upper, getTerminalHWND); - console.writestringlnWND('KB', getTerminalHWND); - console.writestringWND('Total Memory = ', getTerminalHWND); - console.writeintWND(((multibootinfo^.mem_upper + 1000) div 1024) + 1, getTerminalHWND); - console.writestringlnWND('MB', getTerminalHWND); - - pop_trace; -end; - -procedure terminal_command_bsod(params : PParamList); -begin - push_trace('kernel.terminal_command_bsod'); - - if ParamCount(params) > 1 then begin - bsod(getparam(0, params), getparam(1, params)); - end else begin - console.writestringlnWND('Invalid number of params.', getTerminalHWND); - console.writestringlnWND('Usage: bsod ', getTerminalHWND); - end; - - pop_trace; -end; - -procedure myUserLandFunction; -var - i : uint32; - -begin - i:=0; - while true do begin - i:=i+1; - asm - MOV EAX, i - end; - end; -end; - -procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall; [public, alias: 'kmain']; -var - c : uint8; - z : uint32; - dds : uint32; - pint : puint32; - pint2 : puint32; - keyboard_layout : array [0..1] of TKeyInfo; - i : uint32; - cEIP : uint32; - temp : uint32; - atmp : puint32; - test : puint8; - fb : puint16; - l : PLinkedListBase; - ulf : pointer; - - HM : PHashMap; - -begin - { Serial Init } - serial.init(); - - { Store Multiboot info } - multibootinfo:= mbinfo; - multibootmagic:= mbmagic; - - { Ensure tracer is frozen } - tracer.freeze(); - - { Terminal Init } - terminal.init(); - terminal.registerCommand('MEMINFO', @terminal_command_meminfo, 'Print Simple Memory Information.'); - terminal.registerCommand('BSOD', @terminal_command_bsod, 'Force a Panic Screen.'); - - console.writestringln('Booting Asuro...'); - - console.writestringln('Checking for Multiboot Compliance'); - { Check for Multiboot } - if (multibootmagic <> MULTIBOOT_BOOTLOADER_MAGIC) then begin - console.setdefaultattribute(console.combinecolors($F800, $0000)); - console.outputln('KERNEL', 'Multiboot Compliant Boot-Loader Needed!'); - console.outputln('KERNEL', 'HALTING.'); - BSOD('Multiboot Error', 'Multiboot Compliant Boot-Loader Needed!'); - util.halt_and_catch_fire; - end; - - { GDT Init } - gdt.init(); - asm - MOV dds, CS - end; - if dds = $08 then begin - console.outputln('KERNEL', 'GDT: LOAD SUCCESS.'); - end else begin - console.outputln('KERNEL', 'GDT: LOAD FAIL.'); - console.outputln('KERNEL', 'HALTING.'); - BSOD('GDT', 'Failed to load the GDT correctly.'); - end; - - console.output('MULTIBOOT', 'Assigned Framebuffer: '); - console.writehexln(multibootinfo^.framebuffer_addr); - console.output('MULTIBOOT', 'Assigned Framebuffer Metrics: '); - console.writeint(multibootinfo^.framebuffer_width); - console.writestring('x'); - console.writeint(multibootinfo^.framebuffer_height); - console.writestring('x'); - console.writeintln(multibootinfo^.framebuffer_bpp); - - { Memory/CPU Init } - idt.init(); - irq.init(); - isrmanager.init(); - faults.init(); - RTC.init(); - - pmemorymanager.init(); - vmemorymanager.init(); - lmemorymanager.init(); - tss.init(); - scheduler.init(); - - { Console Init } - console.init(); - - { CPUID } - console.outputln('CPU', 'Init begin'); - cpu.init(); - console.outputln('CPU', 'Init end'); - - { Call Tracer } - tracer.init(); - - { VFS Init } - vfs.init(); - - { Management Interfaces } - tracer.push_trace('kmain.DRVMGMT'); - drivermanagement.init(); - tracer.push_trace('kmain.STRMGMT'); - storagemanagement.init(); - - { Hook Timer for Ticks } - tracer.push_trace('kmain.TMR'); - STI; - TMR_0_ISR.hook(uint32(@bios_data_area.tick_update)); - - { Filsystems } - fat32.init(); - - { Device Drivers } - tracer.push_trace('kmain.DEVDRV'); - console.outputln('KERNEL', 'DEVICE DRIVERS: INIT BEGIN.'); - keyboard.init(keyboard_layout); - mouse.init(); - testdriver.init(); - E1000.init(); - IDE.init(); - console.outputln('KERNEL', 'DEVICE DRIVERS: INIT END.'); - - { Bus Drivers } - tracer.push_trace('kmain.BUSDRV'); - console.outputln('KERNEL', 'BUS DRIVERS: INIT BEGIN.'); - USB.init(); - pci.init(); - console.outputln('KERNEL', 'BUS DRIVERS: INIT END.'); - - { Network Stack } - tracer.push_trace('kmain.NETDRV'); - net.init; - - tracer.push_trace('kmain.VMINIT'); - //vm.init(); - - { Init Progs } - progmanager.init(); - - { Init Splash } - //tracer.push_trace('kmain.SPLASHINIT'); - //splash.init(); - - { End of Boot } - tracer.push_trace('kmain.EOB'); - - console.writestringln(''); - console.setdefaultattribute(console.combinecolors($17E0, $0000)); - console.writestringln('Asuro Booted Correctly!'); - console.setdefaultattribute(console.combinecolors($FFFF, $0000)); - writestringln(' '); - - tracer.push_trace('kmain.END'); - rand.srand((getDateTime.Seconds SHL 24) OR (getDateTime.Minutes SHL 16) OR (getDateTime.Hours SHL 8) OR (getDateTime.Day)); - - tracer.push_trace('kmain.TICK'); - - while true do begin - tracer.push_trace('kmain.RedrawWindows'); - console.redrawWindows; - end; - -end; - -end. +// Copyright 2021 Kieron Morris & Aaron Hance +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +{ + Kernel Main - Main Kernel Entry Point. + + @author(Kieron Morris ) + @author(Aaron Hance ) +} +unit kernel; + +interface + +uses + multiboot, bios_data_area, + util, + gdt, idt, isr, irq, tss, + TMR_0_ISR, + console, + keyboard, mouse, + vmemorymanager, pmemorymanager, lmemorymanager, + tracer, + drivermanagement, + scheduler, + progmanager, + PCI, + strings, + USB, + testdriver, + E1000, + IDE, + storagemanagement, + lists, + net, + fat32, + isrmanager, + faults, + fonts, + RTC, + serial, + cpu, + md5, + base64, + rand, + terminal, + hashmap, vfs; + +procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall; + +implementation + +procedure terminal_command_meminfo(params : PParamList); +begin + push_trace('kernel.terminal_command_meminfo'); + + console.writestringWND('Lower Memory = ', getTerminalHWND); + console.writeintWND(multibootinfo^.mem_lower, getTerminalHWND); + console.writestringlnWND('KB', getTerminalHWND); + console.writestringWND('Higher Memory = ', getTerminalHWND); + console.writeintWND(multibootinfo^.mem_upper, getTerminalHWND); + console.writestringlnWND('KB', getTerminalHWND); + console.writestringWND('Total Memory = ', getTerminalHWND); + console.writeintWND(((multibootinfo^.mem_upper + 1000) div 1024) + 1, getTerminalHWND); + console.writestringlnWND('MB', getTerminalHWND); + + pop_trace; +end; + +procedure terminal_command_bsod(params : PParamList); +begin + push_trace('kernel.terminal_command_bsod'); + + if ParamCount(params) > 1 then begin + bsod(getparam(0, params), getparam(1, params)); + end else begin + console.writestringlnWND('Invalid number of params.', getTerminalHWND); + console.writestringlnWND('Usage: bsod ', getTerminalHWND); + end; + + pop_trace; +end; + +procedure myUserLandFunction; +var + i : uint32; + +begin + i:=0; + while true do begin + i:=i+1; + asm + MOV EAX, i + end; + end; +end; + +procedure kmain(mbinfo: Pmultiboot_info_t; mbmagic: uint32); stdcall; [public, alias: 'kmain']; +var + c : uint8; + z : uint32; + dds : uint32; + pint : puint32; + pint2 : puint32; + keyboard_layout : array [0..1] of TKeyInfo; + i : uint32; + cEIP : uint32; + temp : uint32; + atmp : puint32; + test : puint8; + fb : puint16; + l : PLinkedListBase; + ulf : pointer; + + HM : PHashMap; + +begin + { Serial Init } + serial.init(); + + { Store Multiboot info } + multibootinfo:= mbinfo; + multibootmagic:= mbmagic; + + { Ensure tracer is frozen } + tracer.freeze(); + + { Terminal Init } + terminal.init(); + terminal.registerCommand('MEMINFO', @terminal_command_meminfo, 'Print Simple Memory Information.'); + terminal.registerCommand('BSOD', @terminal_command_bsod, 'Force a Panic Screen.'); + + console.writestringln('Booting Asuro...'); + + console.writestringln('Checking for Multiboot Compliance'); + { Check for Multiboot } + if (multibootmagic <> MULTIBOOT_BOOTLOADER_MAGIC) then begin + console.setdefaultattribute(console.combinecolors($F800, $0000)); + console.outputln('KERNEL', 'Multiboot Compliant Boot-Loader Needed!'); + console.outputln('KERNEL', 'HALTING.'); + BSOD('Multiboot Error', 'Multiboot Compliant Boot-Loader Needed!'); + util.halt_and_catch_fire; + end; + + { GDT Init } + gdt.init(); + asm + MOV dds, CS + end; + if dds = $08 then begin + console.outputln('KERNEL', 'GDT: LOAD SUCCESS.'); + end else begin + console.outputln('KERNEL', 'GDT: LOAD FAIL.'); + console.outputln('KERNEL', 'HALTING.'); + BSOD('GDT', 'Failed to load the GDT correctly.'); + end; + + console.output('MULTIBOOT', 'Assigned Framebuffer: '); + console.writehexln(multibootinfo^.framebuffer_addr); + console.output('MULTIBOOT', 'Assigned Framebuffer Metrics: '); + console.writeint(multibootinfo^.framebuffer_width); + console.writestring('x'); + console.writeint(multibootinfo^.framebuffer_height); + console.writestring('x'); + console.writeintln(multibootinfo^.framebuffer_bpp); + + { Memory/CPU Init } + idt.init(); + irq.init(); + isrmanager.init(); + faults.init(); + RTC.init(); + + pmemorymanager.init(); + vmemorymanager.init(); + lmemorymanager.init(); + tss.init(); + scheduler.init(); + + { Console Init } + console.init(); + + { CPUID } + console.outputln('CPU', 'Init begin'); + cpu.init(); + console.outputln('CPU', 'Init end'); + + { Call Tracer } + tracer.init(); + + { VFS Init } + vfs.init(); + + { Management Interfaces } + tracer.push_trace('kmain.DRVMGMT'); + drivermanagement.init(); + tracer.push_trace('kmain.STRMGMT'); + storagemanagement.init(); + + { Hook Timer for Ticks } + tracer.push_trace('kmain.TMR'); + STI; + TMR_0_ISR.hook(uint32(@bios_data_area.tick_update)); + + { Filsystems } + fat32.init(); + + { Device Drivers } + tracer.push_trace('kmain.DEVDRV'); + console.outputln('KERNEL', 'DEVICE DRIVERS: INIT BEGIN.'); + keyboard.init(keyboard_layout); + mouse.init(); + testdriver.init(); + E1000.init(); + IDE.init(); + console.outputln('KERNEL', 'DEVICE DRIVERS: INIT END.'); + + { Bus Drivers } + tracer.push_trace('kmain.BUSDRV'); + console.outputln('KERNEL', 'BUS DRIVERS: INIT BEGIN.'); + USB.init(); + pci.init(); + console.outputln('KERNEL', 'BUS DRIVERS: INIT END.'); + + { Network Stack } + tracer.push_trace('kmain.NETDRV'); + net.init; + + tracer.push_trace('kmain.VMINIT'); + //vm.init(); + + { Init Progs } + progmanager.init(); + + { Init Splash } + //tracer.push_trace('kmain.SPLASHINIT'); + //splash.init(); + + { End of Boot } + tracer.push_trace('kmain.EOB'); + + console.writestringln(''); + console.setdefaultattribute(console.combinecolors($17E0, $0000)); + console.writestringln('Asuro Booted Correctly!'); + console.setdefaultattribute(console.combinecolors($FFFF, $0000)); + writestringln(' '); + + tracer.push_trace('kmain.END'); + rand.srand((getDateTime.Seconds SHL 24) OR (getDateTime.Minutes SHL 16) OR (getDateTime.Hours SHL 8) OR (getDateTime.Day)); + + tracer.push_trace('kmain.TICK'); + + while true do begin + tracer.push_trace('kmain.RedrawWindows'); + console.redrawWindows; + end; + +end; + +end. diff --git a/src/stub/stub.asm b/src/stub/stub.asm index e8c69dd8..31f879d7 100644 --- a/src/stub/stub.asm +++ b/src/stub/stub.asm @@ -1,125 +1,125 @@ -; Copyright 2021 Kieron Morris -; -; Licensed under the Apache License, Version 2.0 (the "License"); -; you may not use this file except in compliance with the License. -; You may obtain a copy of the License at -; -; http://www.apache.org/licenses/LICENSE-2.0 -; -; Unless required by applicable law or agreed to in writing, software -; distributed under the License is distributed on an "AS IS" BASIS, -; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -; See the License for the specific language governing permissions and -; limitations under the License. - -; -; Kernel stub -; - -; -; We are in 32bits protected mode -; -[bits 32] - -; -; Export entrypoint -; -global _loader - -; -; Import kernel entrypoint -; -extern kmain - -; -; Posible multiboot header flags -; -MULTIBOOT_MODULE_ALIGN equ 1<<0 -MULTIBOOT_MEMORY_MAP equ 1<<1 -MULTIBOOT_GRAPHICS_FIELDS equ 1<<2 -MULTIBOOT_ADDRESS_FIELDS equ 1<<16 - -; -; Multiboot header defines -; -MULTIBOOT_HEADER_MAGIC equ 0x1BADB002 -MULTIBOOT_HEADER_FLAGS equ MULTIBOOT_MODULE_ALIGN | MULTIBOOT_MEMORY_MAP | MULTIBOOT_GRAPHICS_FIELDS -MULTIBOOT_HEADER_CHECKSUM equ -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS) - -; -; Kernel stack size -; -KERNEL_STACKSIZE equ 0x4000 -KERNEL_VIRTUAL_BASE equ 0xC0000000 -KERNEL_PAGE_NUMBER equ (KERNEL_VIRTUAL_BASE >> 22) - -section .data -align 0x1000 -_PageDirectory equ BootPageDirectory -global _PageDirectory -BootPageDirectory: - dd 0x00000083 - times (KERNEL_PAGE_NUMBER - 1) dd 0 - dd 0x00000083 - times (1024 - KERNEL_PAGE_NUMBER - 1) dd 0 - -section .text -; -; Multiboot header -; -align 4 -dd MULTIBOOT_HEADER_MAGIC -dd MULTIBOOT_HEADER_FLAGS -dd MULTIBOOT_HEADER_CHECKSUM -dd 0 -dd 0 -dd 0 -dd 0 -dd 0 -dd 0 -dd 1280 -dd 1024 -dd 16 - -; -; Entrypoint -; -loader equ _loader -;loader equ (_loader - 0xC0000000) -global loader - -_loader: - mov ecx, (BootPageDirectory - KERNEL_VIRTUAL_BASE) - mov cr3, ecx - - mov ecx, cr4 - or ecx, 0x00000010 - mov cr4, ecx - - mov ecx, cr0 - or ecx, 0x80000000 - mov cr0, ecx - - lea ecx, [kstart] - jmp ecx - -kstart: - mov dword [BootPageDirectory], 0 - invlpg [0] - mov esp, KERNEL_STACK+KERNEL_STACKSIZE ;Create kernel stack - push eax ;Multiboot magic number - add ebx, KERNEL_VIRTUAL_BASE - push ebx ;Multiboot info - call kmain ;Call kernel entrypoint - cli ;Clear interrupts - hlt ;Halt machine - -section .bss - -; -; Kernel stack location -; -align 32 -global KERNEL_STACK -KERNEL_STACK: - resb KERNEL_STACKSIZE +; Copyright 2021 Kieron Morris +; +; Licensed under the Apache License, Version 2.0 (the "License"); +; you may not use this file except in compliance with the License. +; You may obtain a copy of the License at +; +; http://www.apache.org/licenses/LICENSE-2.0 +; +; Unless required by applicable law or agreed to in writing, software +; distributed under the License is distributed on an "AS IS" BASIS, +; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +; See the License for the specific language governing permissions and +; limitations under the License. + +; +; Kernel stub +; + +; +; We are in 32bits protected mode +; +[bits 32] + +; +; Export entrypoint +; +global _loader + +; +; Import kernel entrypoint +; +extern kmain + +; +; Posible multiboot header flags +; +MULTIBOOT_MODULE_ALIGN equ 1<<0 +MULTIBOOT_MEMORY_MAP equ 1<<1 +MULTIBOOT_GRAPHICS_FIELDS equ 1<<2 +MULTIBOOT_ADDRESS_FIELDS equ 1<<16 + +; +; Multiboot header defines +; +MULTIBOOT_HEADER_MAGIC equ 0x1BADB002 +MULTIBOOT_HEADER_FLAGS equ MULTIBOOT_MODULE_ALIGN | MULTIBOOT_MEMORY_MAP | MULTIBOOT_GRAPHICS_FIELDS +MULTIBOOT_HEADER_CHECKSUM equ -(MULTIBOOT_HEADER_MAGIC + MULTIBOOT_HEADER_FLAGS) + +; +; Kernel stack size +; +KERNEL_STACKSIZE equ 0x4000 +KERNEL_VIRTUAL_BASE equ 0xC0000000 +KERNEL_PAGE_NUMBER equ (KERNEL_VIRTUAL_BASE >> 22) + +section .data +align 0x1000 +_PageDirectory equ BootPageDirectory +global _PageDirectory +BootPageDirectory: + dd 0x00000083 + times (KERNEL_PAGE_NUMBER - 1) dd 0 + dd 0x00000083 + times (1024 - KERNEL_PAGE_NUMBER - 1) dd 0 + +section .text +; +; Multiboot header +; +align 4 +dd MULTIBOOT_HEADER_MAGIC +dd MULTIBOOT_HEADER_FLAGS +dd MULTIBOOT_HEADER_CHECKSUM +dd 0 +dd 0 +dd 0 +dd 0 +dd 0 +dd 0 +dd 1280 +dd 1024 +dd 16 + +; +; Entrypoint +; +loader equ _loader +;loader equ (_loader - 0xC0000000) +global loader + +_loader: + mov ecx, (BootPageDirectory - KERNEL_VIRTUAL_BASE) + mov cr3, ecx + + mov ecx, cr4 + or ecx, 0x00000010 + mov cr4, ecx + + mov ecx, cr0 + or ecx, 0x80000000 + mov cr0, ecx + + lea ecx, [kstart] + jmp ecx + +kstart: + mov dword [BootPageDirectory], 0 + invlpg [0] + mov esp, KERNEL_STACK+KERNEL_STACKSIZE ;Create kernel stack + push eax ;Multiboot magic number + add ebx, KERNEL_VIRTUAL_BASE + push ebx ;Multiboot info + call kmain ;Call kernel entrypoint + cli ;Clear interrupts + hlt ;Halt machine + +section .bss + +; +; Kernel stack location +; +align 32 +global KERNEL_STACK +KERNEL_STACK: + resb KERNEL_STACKSIZE