home *** CD-ROM | disk | FTP | other *** search
- Here is some piece of software I wrote about two years ago. Yesterday, someone
- suggested me to post it to comp.binaries.ibm.pc, and so I herewith give it to
- the public. It's a bios driver for herkules graphics mode, which hooks into
- INT 10h (video) and supports a new video mode #8 with 720x360 dots. As it uses
- characters of 8x8, this means 90x45 characters for those (few) programs that
- use bios for screen access. Any others might get somehow confused! Also, on
- my machine to clear the WHOLE screen on MsDos CLS command, I had to remove
- ANSI.SYS.
- This program uses two different methods of scrolling. First, the usual one:
- copy almost 32kB of waitstatey video memory. This is *SLOW*, but some programs
- require it, so I made it default. Second: Change the CRT controllers display
- start adress. This is *FAST*, but... Use option /F when starting this program
- to activate this mode.
- The source code (assembly) is included. I did it in MASM 4. To build it your-
- self, use:
- MASM HERKULES;
- LINK HERKULES;
- REM ignore warning NO STACK
- DEL HERKULES.OBJ
- EXE2BIN HERKULES.EXE HERKULES.COM
- DEL HERKULES.EXE
- The comments in the source are german :-)
- I did quite some effort on using fastscrolling whenever it might be of
- advantage. For example, if /F is given and the bios is requested to scroll
- let's say a rectangular portion in the middle of the display. Then I will
- change the display start adress, thus scrolling the WHOLE screen up, and then
- scroll/rotate those areas which weren't supposed to be scrolled (those
- surrounding the above rectangular) back using memory copying. Quite smart, eh?
- But it was of no use. I found NO program that scrolls only PORTIONS of the
- screen AND that works with my program. Sigh.
- Something else: I stole the 8x8 characterset from the GRAFTABL command of DOS
- and then included it into this program. This implies two disadvantages:
- I might get sacked by uSoft and it uses 2048 bytes both on disk and in memory.
-
- Hey, I just remembered one other feature: line printer support!
- This program supports text AND graphic hardcopies on various printers.
- There is a patch area at the beginning of the COM file containing pascal
- strings (first byte containing length). Do modify it, use DEBUG or SYMDEB.
- Then at offset 10Fh there will be a byte containing the number of the printer
- to use for hardcopies. 0 means LPT1, 1 = LPT2 etc. Cereal printers :-)
- (RS232) are not supported :-(
- At offset 110h there is a pascal string which is sent BEFORE a text hard-
- copy. This could be a form feed or I don't know what.
- 120h pascal string sent AFTER a text hardcopy
- 130h pascal string sent BEFORE a graphic hardcopy
- 140h pascal string sent AFTER a graphic hardcopy
- 150h pascal string sent BEFORE each line of graphics hardcopy
- This should set the printer into some graphics mode and also
- tell him how much data there will come, that is 720 bytes.
- Each byte will contain eight vertical dots.
- 160h pascal string sent AFTER each line of graphics hardcopy
- This should include the command to move up the paper by
- the appropriate amount required in graphics mode (8/72" ?)
-
-
- Have fun
- Stressi (q81955@pbhrzx)