Skip to content

Instantly share code, notes, and snippets.

@ssg
Created September 6, 2024 20:53
Show Gist options
  • Save ssg/302f4cccaaec4f52b8d5f6d1fa71754e to your computer and use it in GitHub Desktop.
Save ssg/302f4cccaaec4f52b8d5f6d1fa71754e to your computer and use it in GitHub Desktop.
some random coding notes from 1990's
{
topic = Objects in resources
problem = Realizing object
store is easy but the most diffucult part is to load it...
How will I know the object's type I read from stream...
and how will I call the proper object's load constructor????
}
{
topic = Objects in resources
problem = Realizing object
date = 22nd Mar 94
Borland performs it via stream links. It stores object types in records
linked in memory. Every view has a view type and borland recognizes the
view in that way. But I think vmt comparison can quickly solve it????
No.. no.. because vmt changes according to PSP of program.
}
{
topic = Fancy ASCII chars
problem = none (only documentation)
date = 22nd Mar 94
:) , :( , :P , :t , :u , :i
}
{
topic = To Do's
problem = What will I do?
date = 02nd May 94
Sorted by importance and self-motivation ratio
----------------------------------------------
+ Kasa defteri for GenDis
- Finish AXE
- Finish surface handler
+ Finish help texts
}
{
topic = VOC format
problem = what the hell is this voc?
date = 10th Jul 94
Size Description
====== ========================
14 bytes Description ('Creative Voice File',1ah)
word First data block offset
word VOC Version
word Version-1234h (for integrity check)
byte block-type (1=voice)
3-bytes block-length
byte 256-1000000/khz
byte pack flag (0=unpacked)
... voice data
}
{
topic = EGA/VGA registers from PC/Intern
problem = none
date = 27th Jul 94
MISCELLANEOUS REGISTER (W:3CC / R:3C2)
bit 0 : mono/color
1 : VRAM locked/unlocked
2-3 : Horizontal resolution
0 = 640
1 = 720
2 = external dot clock rate
3 = reserved (0 mhz)
4 : reserved
5 : page bit for odd/even mode
6-7 : scan lines
0 = reserved (you're wrong - it's not 200 - because no 200 in VGA)
1 = 350
2 = 400
3 = 480
INPUT STATUS REGISTER (R:3DA)
bit 0 : retrace activity (any of horiz or vert retrace is active)
1 : unused
2 : unused
3 : vertical retrace activity
4-5 : diagnostics bits
6-7 : unused
CRT CONTROLLER (SELECT:3D4 / ACCESS:3D5)
Reg# Description (first eight functions are r/o default)
---- ------------------------------------------
00 Horiz Total Characters - 5
01 Horiz Total Characters - 1
02 Start horiz blanking signal
03 End horiz blanking
bit 0-4 : End horiz blanking
5-6 : Time delay for display (unused)
7 : reserved , always 0
04 H-Hold (voila!)
05 End horiz retrace
bit 0-4 : End horiz retrace
5-6 : Time delay for retrace (unused)
7 : last bit of end horiz blanking (03)
06 Total vert scan lines-2
07 Overflow register
bit 0 : 8th bit of total vert
1 : 8th bit of vert display end
2 : 8th bit of vert retrace start
3 : 8th bit of vert blank
4 : 8th bit of line compare
5 : 9th bit of total vert
6 : 9th bit of vert display end
7 : 9th bit of vert retrace start
08 Vertical PEL panning
bit 0-4 : Vertical shift value
5-7 : 0
09 Character height
bit 0-4 : Height of a char-1
5 : 9th bit of start vert blanking
6 : 9th bit of line compare
7 : 200 line doubling !!! (COOL)
0A Vertical cursor start
bit 0-4 : Starting line of cursor
5 : cursor visibility
6-7 : 0
0B Vertical cursor end
bit 0-4 : Ending line of cursor
5-7 : 0
0C VRAM start address (HI)
0D VRAM start address (LO)
0E Cursor pos (HI) (offset in VRAM)
0F Cursor pos (LO)
10 Vert retrace start line
11 Vert retrace end line
bit 0-3 : end of vert retrace
5 : IRQ during retrace (IRQ 2)
6 : Refresh cycles per line (3/5)
7 : Register PROTECTION (registers 0-7)
12 End vert display-1
13 Line length in VRAM
14 Underline location
bit 0-4 : pixel line for underline
5 : four count mode
6 : dword mode
7 : 0
15 Start vert blanking (last displayed pixel line+1)
16 End vert blanking (first displayed pixe line-1)
17 bit 0 : CGA compatibility
1 : Hercules compatibility
2 : 0
3 : two count mode
4 : 0
5 : address wrap (64K / 256K)
6 : access mode (16bit / 8bit)
7 : something about retrace
18 Line compare
Here's how Pinball Fantasies does its scrolling in a specified
region of screen without playing with VRAM...
SEQUENCER CONTROLLER (SELECT:3C4 / ACCESS:3C5)
Reg# Description
---- ------------------------------------------
00 Reset
bit 0 : Power On/Off bit (isn't it cool?)
1 : Warm Boot
2-7 : Unused
01 Clocking mode
bit 0 : pixels per clock (8 / 9)
1 : reserved 0
2 : reserved
3 : half dot clock
4 : reserved
5 : Display On/Off
6-7 : unused
02 Bitplane select
bit 0 : bitplane #0
1 : #1
2 : #2
3 : #3
4-7 : unused
03 Char map select
bit 0-1 : first font number
2-3 : second font number
4 : last bit of first font num
5 : last bit of second font num
6-7 : 0
04 Memory mode
bit 0 : 0
1 : VRAM size (64K / 256K)
2 : Odd-Even/Linear mode select
3 : chain4 / odd-even select
ATTRIBUTE CONTROLLER (SELECT:3C0 / ACCESS:3C1)
Reg# Description
---- ------------------------------------------
00-0F Palette register (no need)
10 Mode control
bit 0 : Text / Gfx mode select
1 : 0
2 : Empty / Duplicate 8th Pixel mode
3 : Highlight / Blink select
4 : 0
5 : PEL panning register for line compare
6 : 256 color mode
11 Overscan color index to DAC table
12 Plane enable
13 Horizontal PEL panning (bits 0-3)
14 no need
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment