ScreenWindow: Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
  
		
	
 (New page: thumb|right|450px|Screen shot of Jingle Bell's {{Tech:Win16}} port, which uses ScreenWindow ScreenWindow is a text console and {{Tech:MIDI}} sound librar...)  | 
				No edit summary  | 
				||
| Line 3: | Line 3: | ||
==Download==  | ==Download==  | ||
*'''[https://www.moonlightdesign.org/steve/programs/screenwindow.exe Download ScreenWindow for Win16]''', which includes the documentation  | *'''[https://www.moonlightdesign.org/steve/programs/screenwindow.exe Download ScreenWindow for Win16]''', which includes the documentation  | ||
*'''[https://www.moonlightdesign.org/steve/programs/ezmidi32.exe Download the Win32 EzMIDI32 version]''', which is described in the [[EzMIDI32|EzMIDI32 page]]  | |||
==Documentation==  | ==Documentation==  | ||
Revision as of 22:19, 14 October 2007
Screen shot of Jingle Bell's Win16 port, which uses ScreenWindow
ScreenWindow is a text console and MIDI sound library for Win16 programs that was written to ease the annual December holiday song mid-year project for first-year computer science students at Grapevine High School when the course moved from DOS to Windows 3.1.
Download
- Download ScreenWindow for Win16, which includes the documentation
 - Download the Win32 EzMIDI32 version, which is described in the EzMIDI32 page
 
Documentation
The functions below were written with contracts that resemble their implementations in DOS.
| Function | Description | 
|---|---|
| getch() | Reads the next character; does not wait for an enter; if enter, it reads it as cr; nothing is printed | 
| getchar() | Reads the next character from stdin; waits for an enter; displays entry as it's typed including enter. Enter is read as newline. if newline is entry, it writes cr/nl pair (beginning of next line). First nl entered is not echoed; subsequent ones are. NLs entered are not reflected in memory; only the last cr (the one cvted to nl) is. | 
| fgetchar() | Same as getchar() | 
| getche() | Same as getch(), but echos character. Reads enter as carriage return. If newline is input, it goes to next line without cr on echo. | 
| gets(str) | Echos input including enter. NL behavior is same as getchar(), except enter is not reflected in gets as it is in getchar. | 
| perror(str) | Prints str then ": Error %i", where %i is current error number | 
| puts(str) | Prints string, then a newline. | 
| cgets(str) | str[0] is the max number of chars to get - 1. str[1] is the number of characters read - 1. When NL is entered, it goes to next line without cr first. NLs that are entered are saved in string. Very wild and wacky. | 
| cputs(str) | Like puts, but does not translate NL into CR/NL. | 
| cscanf, cprintf | Exactly like their scanf/printf counterparts, except that cprintf does not translate newlines into cr/nl. | 
| getpass(str) | Asks for a password and returns a pointer to a string that has 8 chars in it, not counting the terminating null. Immediately after the 8th character is entered, the function automatically returns. Pressing enter before the 8th character returns the function. | 
| gettext(x, y, x, y, buffer) | Gets text from the screen, ignoring CRs and NLs. | 
| puttext(x, y, x, y, buffer) | Puts buffer onto the screen. | 
| highvideo, lowvideo, normvideo | Makes fgColor high/low/normal intensity | 
| delline | Moves remaining rows up by 1. | 
| window(x, y, x, y) | Creates a text window. | 
| _setcursortype(type) | Selects no/underscore/block cursor | 
| textattr(attr) | Selects attr text attribute | 
| putch | Writes a character, but does not translate newline to CR/NL. | 
| insline | Inserts a blank line in the current text window. | 
The library included the following MIDI functions:
- midiInitialize
 - midiNoteOn(channel, note, pressure : integer)
 - midiNoteOff(channel, note, velocity : integer)
 - midiInstrument(channel, instrument : integer)
 - midiUninitialize
 - midiHoldPedal(channel : integer; hold : boolean)
 - midiWait(ms : integer)