ducky.devices.svga module¶
SimpleVGA is very basic implementation of VGA-like device, with text and graphic modes.
-
class
ducky.devices.svga.
Char
[source]¶ Bases:
_ctypes.Structure
-
_fields_
= [('codepoint', <class 'ctypes.c_ushort'>, 7), ('unused', <class 'ctypes.c_ushort'>, 1), ('fg', <class 'ctypes.c_ushort'>, 4), ('bg', <class 'ctypes.c_ushort'>, 3), ('blink', <class 'ctypes.c_ushort'>, 1)]¶
-
_pack_
= 0¶
-
bg
¶ Structure/Union member
-
blink
¶ Structure/Union member
-
codepoint
¶ Structure/Union member
-
fg
¶ Structure/Union member
-
unused
¶ Structure/Union member
-
-
ducky.devices.svga.
DEFAULT_BOOT_MODE
= (t, 80, 25, 1)¶ Default boot mode
-
ducky.devices.svga.
DEFAULT_MEMORY_BANKS
= 8¶ Default number of memory banks
-
ducky.devices.svga.
DEFAULT_MEMORY_SIZE
= 65536¶ Default memory size, in bytes
-
ducky.devices.svga.
DEFAULT_MMIO_ADDRESS
= 33024¶ Default MMIO address
-
ducky.devices.svga.
DEFAULT_MODES
= [(g, 320, 200, 1), (t, 80, 25, 2), (t, 80, 25, 1)]¶ Default list of available modes
-
class
ducky.devices.svga.
Display
(machine, name, gpu=None, stream_out=None, *args, **kwargs)[source]¶ Bases:
ducky.devices.Device
-
class
ducky.devices.svga.
Mode
(_type, width, height, depth)[source]¶ Bases:
object
-
class
ducky.devices.svga.
SimpleVGA
(machine, name, memory_size=None, mmio_address=None, memory_address=None, memory_banks=None, modes=None, boot_mode=None, *args, **kwargs)[source]¶ Bases:
ducky.devices.Device
SimpleVGA is very basic implementation of VGA-like device, with text and graphic modes.
It has its own graphic memory (“buffer”), split into several banks of the same size. Always only one bank can be directly accessed, by having it mapped into CPU’s address space.
Parameters: - machine (ducky.machine.Machine) – machine this device belongs to.
- name (string) – name of this device.
- memory_size (int) – size of graphic memory.
- mmio_address (u32_t) – base oddress of MMIO ports.
- memory_address (u24) – address of graphic memory - to this address is graphic buffer mapped. Must be specified, there is no default value.
- memory_banks (int) – number of memory banks.
- modes (list) – list of
ducky.devices.svga.Mode
objects, list of supported modes. - boot_mode (tuple) – this mode will be set when device boots up.
-
class
ducky.devices.svga.
SimpleVGACommands
[source]¶ Bases:
enum.IntEnum
-
COLS
= 33¶
-
DEPTH
= 35¶
-
GRAPHIC
= 32¶
-
MEMORY_BANK_ID
= 48¶
-
REFRESH
= 2¶
-
RESET
= 1¶
-
ROWS
= 34¶
-
_member_map_
= OrderedDict([('RESET', <SimpleVGACommands.RESET: 1>), ('REFRESH', <SimpleVGACommands.REFRESH: 2>), ('GRAPHIC', <SimpleVGACommands.GRAPHIC: 32>), ('COLS', <SimpleVGACommands.COLS: 33>), ('ROWS', <SimpleVGACommands.ROWS: 34>), ('DEPTH', <SimpleVGACommands.DEPTH: 35>), ('MEMORY_BANK_ID', <SimpleVGACommands.MEMORY_BANK_ID: 48>)])¶
-
_member_names_
= ['RESET', 'REFRESH', 'GRAPHIC', 'COLS', 'ROWS', 'DEPTH', 'MEMORY_BANK_ID']¶
-
_member_type_
¶ alias of
int
-
_value2member_map_
= {32: <SimpleVGACommands.GRAPHIC: 32>, 1: <SimpleVGACommands.RESET: 1>, 2: <SimpleVGACommands.REFRESH: 2>, 35: <SimpleVGACommands.DEPTH: 35>, 33: <SimpleVGACommands.COLS: 33>, 34: <SimpleVGACommands.ROWS: 34>, 48: <SimpleVGACommands.MEMORY_BANK_ID: 48>}¶
-
-
class
ducky.devices.svga.
SimpleVGAMMIOMemoryPage
(device, *args, **kwargs)[source]¶ Bases:
ducky.devices.MMIOMemoryPage
-
class
ducky.devices.svga.
SimpleVGAMemoryPage
(dev, *args, **kwargs)[source]¶ Bases:
ducky.mm.ExternalMemoryPage
Memory page handling MMIO of sVGA device.
Parameters: dev (ducky.devices.svga.SimpleVGA) – sVGA device this page belongs to.
-
class
ducky.devices.svga.
SimpleVGAPorts
[source]¶ Bases:
enum.IntEnum
-
CONTROL
= 0¶
-
DATA
= 2¶
-
_member_map_
= OrderedDict([('CONTROL', <SimpleVGAPorts.CONTROL: 0>), ('DATA', <SimpleVGAPorts.DATA: 2>)])¶
-
_member_names_
= ['CONTROL', 'DATA']¶
-
_member_type_
¶ alias of
int
-
_value2member_map_
= {0: <SimpleVGAPorts.CONTROL: 0>, 2: <SimpleVGAPorts.DATA: 2>}¶
-