Discussion
Loading...

Post

Log in
  • About
  • Code of conduct
  • Privacy
  • About Bonfire
gloriouscow
gloriouscow
@gloriouscow@oldbytes.space  ·  activity timestamp 2 days ago

The latest additions to the PC Emulation Book:

A reference for the BIOS Data Area
https://book.martypc.net/appendices/bios-data-area

IO port reference for common PC/XT/AT hardware
https://book.martypc.net/appendices/io-ports

A handy reference for CGA/EGA/VGA palettes

https://book.martypc.net/appendices/video/palettes

I've also started documenting the EGA register file, since I've been all up in the EGA recently.

https://book.martypc.net/appendices/video/ega-registers

An EGA-specific reference will be handy as if you've ever wanted to emulate an EGA you often find yourself sorting through VGA references and removing all the VGA specific bits.

#retrocomputing #emultion

EGA Registers - The PC Emulation BookMiscellaneous Output RegisterFeature Control RegisterInput Status Register 0Attribute Palette EntryAttribute Mode ControlOverscan Color RegisterColor Plane Enable RegisterHorizontal Pel Panning Register

A comprehensive guide to emulating the original IBM PC and its hardware components

Palette References - The PC Emulation Book

A comprehensive guide to emulating the original IBM PC and its hardware components

I/O Port Reference - The PC Emulation Book

A comprehensive guide to emulating the original IBM PC and its hardware components

BIOS Data Area - The PC Emulation BookEquipment List FlagsKeyboard Flag Byte 0Keyboard Flag Byte 1Floppy Recalibration StatusFloppy Motor StatusFloppy Controller StatusVideo Mode Options (EGA+)EGA DIP and Feature SwitchesVideo Display Data (MCGA/VGA)Floppy Media ControlFloppy Media StatusKeyboard Mode/TypeKeyboard LED FlagsRTC Wait Function Flags

A comprehensive guide to emulating the original IBM PC and its hardware components
  • Copy link
  • Flag this post
  • Block
gloriouscow
gloriouscow
@gloriouscow@oldbytes.space replied  ·  activity timestamp 2 days ago

A new feature for my register-diagram-renderer thingie is color overrides - because that makes sense when your register defines colors!

a SVG diagram of the EGA's attribute palette registers, showing the color-coded bits for red green and blue signals.
a SVG diagram of the EGA's attribute palette registers, showing the color-coded bits for red green and blue signals.
a SVG diagram of the EGA's attribute palette registers, showing the color-coded bits for red green and blue signals.
  • Copy link
  • Flag this comment
  • Block
gloriouscow
gloriouscow
@gloriouscow@oldbytes.space replied  ·  activity timestamp 2 days ago

There's very little information out there that is oriented toward emulating the EGA/VGA. Programming it, sure, but a lot of the how does it work bits are sort of left up to you to puzzle out. The existence of 64KB, 128KB and 256KB versions of the EGA really complicate things as well as that affects address handling.

  • Copy link
  • Flag this comment
  • Block
gloriouscow
gloriouscow
@gloriouscow@oldbytes.space replied  ·  activity timestamp 2 days ago

There are two registers on the EGA called the Graphics Position Registers - these are used because there are two identical(?) graphics controller chips - and you need to tell each one of them which two planes of video memory they are assigned to, because they both get the same commands from that point forward and need to know which two bits they need to care about for doing graphicsy stuff.

Most clone EGAs combined these into one chip, and the graphics position registers don't really do anything.

But if you have an original IBM EGA - what happens if you just lie to them?

  • Copy link
  • Flag this comment
  • Block

BT Free Social

BT Free is a non-profit organization founded by @ozoned@btfree.social . It's goal is for digital privacy rights, advocacy and consulting. This goal will be attained by hosting open platforms to allow others to seamlessly join the Fediverse on moderated instances or by helping others join the Fediverse.

BT Free Social: About · Code of conduct · Privacy ·
Bonfire social · 1.0.1 no JS en
Automatic federation enabled
Log in
  • Explore
  • About
  • Code of Conduct