01/17/95 Set up the infrastructure for CU instructions, and tested to make sure illegal d characters are distinguished from valid ones. 01/??/95 Implemented Tape Write. As near as I can tell by looking at the files, everything looks fine. 01/06/95 His handling of the RESET button is a little weird. It has a light in it (the real one did not), and the light lights and *STAYS* lit once any of the console indicator lights (e.g. TAPE, RAMAC, READER...) are lit. The only reset for the RESET lite is to press the reset button. 01/06/95 Implemented Tape Branch Instruction (BEF/BER). Tested them. Created test tape images in TESTS directory. TTxUy.BCD, where x is the test, and y is the unit (usually 0 or 1) 0 = TAPETEST.CDR 1 = TAPET1.CDR 01/05/95 Seems to work with load mode. Can actually load PRP's little program 1401demo.bcd into core at 10300, and it JUST HAPPENS to load as 999 characters, and I JUST HAPPENED to set the buffer to 1000 characters. AMAZING! At first glance, it looks to have gotten into core correctly. 01/05/95 Can now correctly read records in move mode. On to load mode, which requires modifying MLCWA.C in a way similar to MLC.C. 12/29/94 tapedrive structure moved back to tape.h (Just had to fix display.h to include button.h and to get it to compile. Otherwise, it gave bogus errors on tape.h 12/28/94 Tape drive user interface completed and tested. One hack is the name input. Long names will look funny. 12/21/94 "Fixed" Alter Plus one mode. In fact, it was not broken. (In my testing, I failed to select the B Register). But, in the process, I learned how to use Borland C++ Browser, and remembered at how to use the Grep tool in the IDE. The former is really NEAT. (I gotta read the manuals some day. Sigh). 12/20/94 Fixed CE (Diagnostic) panel switch bounce with a call to wait_for_mouse_up() (Bug - other panels had it). 12/20/94 Fixed background color. While I was at it, I also got rid of Some #ifdefs in scdspmsg.c, because Borland C++ now supports _asm. 12/20/94 Fixed colors on virtual printer, more or less. Changed sc_remappalette to use BIOS call. The BORLAND version only works in graphics modes. Changed vprinter.c to use EGA values for colors for VGA. Apparently the BIOS call can't take arbitrary color values. Maybe someday I'll look for a BIOS call especially for VGA. 12/19/94 MILESTONE: Successful Compile, Link and Mini Test Alter++ mode is apparently not working, though. Background color of blue bleeds thru, unlike the original - probably need to preserve and reset it. Colors on virtual printer wrong (unmapped, apparently). When you click on "D", it does not always stay in Diagnostic mode. Almost like switch needs to be debounced. Commented out "#pragma inline" in kbd.c and scdspmsg.c Those were my doing originally (!!), but they trip up the Borland C++ 4.02 compiler by making it look for TASM, which I haven't got. Without them, it uses it's internal BASM, and those modules compile OK. At some point, I ought to look and see if some of the changes I made in those two modules can be removed. 12/18/94 Ran a mini test on a version from 1992. (See McCraken, page 35). It failed with a Process check. So I went about recompiling with Borland C++ V4.02 8/13/94 (Wow, has it really been _THAT_ long?). 8-( Borland C++ 4.0 no longer (apparently) has the project notes facility. I had to copy the .PRJ file to this file, and then throw away the parts of the file before this text and after it. Sheesh. Moved .PRJ files into a directory OLD under SOURCE and PR1401. Moved 1401_org.cfg to org\1401.cfg Created d:\1401org to hold original sources, at least for a while. Originally, pr1401 was under the top 1401 directory. At some point I must have moved it, because it is now under SOURCE. Unzipped TESTS directory (got lots of disk over the last 2.5 yrs!) Noted that each directory in the original has a file called FILES, that contains modification notes. Checked what changes their were, and re-synced the ORG directory in my stuff from the original. AUTOCODE - no changes PR1401 - only change was to add "j" to version in version.c SOURCE - Copied over display.h, scdspmsg.h, pause.c, version.c, poll.c from original sources in ORG. (Must have missed them). Went back and copied over the _real_ originals for 1401.c, prdev.c. (The ones in ORG had been after 1st modifications). 3/16/92 Fixed a bug in (my implementation) sc_settextposition - had coordinates reversed - caused card image to be messed up. Changed pause() in pause.c to use CLK_TCK to get timing correct. Changed instances of scattrb(,,CARD_X+CARD_LENGTH) to be ,,CARD_X+CARD_LENGTH-1 (it was going off the end of the screen! 3/15/92 The BORLAND setrgbpalette routine only works in graphics mode. Have temporarily disabled palette setting. Card image (during initialization) is not showing up correctly. 3/15/92 MILESTONE - Successful LINK! 3/15/92 Updated sc_setvideomode in scdspmsg.c (BORLAND ifdef) to check adapter against desired mode before calling textmode(). Added sc_remappalette to scdspmsg.c. Made some changes to the RGB macros and added an EGA_COLOR macro in color.h along the way. Added sc_outtext to scdspmsg.c Added sc_settextposition to scdspmsg.c Added prototypes for the above functions to scdspmsg.h Added sc_clearscreen to scdspmsg.c Added sc_gettextposition to scdspmsg.c (only called from there) Found instances of (defunct!!) external variable lpt, and pointed them to current_printer->lpt in diag.c NOTE: pr.h and printers.h should be combined into one file Developed mouse() clone using software interrupts. Had to copy and recopy arguments - was too lazy to figure out how to deal with the far * pointers in assembler. 3/9/92 Created routine sc_getvideoconfig in scdspmsg.c Created routine sc_init_graphics in scdspmsg.c. Modified 1401.c to call it. (For MicroSoft, it does nothing). 3/8/92 MILESTONE: All modules compile. (Linking clean is quite another matter, however. 3/8/92 Changed name of (static, i.e. private) function line() in print.c (it conflicts with a BORLAND routine) 3/8/92 Deduced structure for "rccoord" (xy text coordinates). Now defined in SCDSPMSG.H. scdspmsg.c now includes scdspmsg.h (and btypes.h) to get this structure and all of the other screeny-type things I put in scdspmsg.h Defined text modes in SCDSPMSG.H: SC_C80 and SC_BW80 Changed _TEXTC80 and _TEXTBW80 in 1401.c to SC_C80 and SC_BW80 changed _ to RGB_ to use my compiler independent macro names. 3/8/92 Developed an analog of MicroSoft "videoconfig" structure for use with this program. Has same fields - info from MicroSoft doc. This and video adapter constant info put int SCDSPMSG.H Change constants for adapter type in several modules to make them compiler independent. _EGA -> SC_EGA: 1401.c, prdev.c, vprinter.c _VGA -> SC_VGA: 1401.c, prdev.c, vprinter.c _CGA -> SC_CGA: vprinter.c _HGC -> SC_HGC: vprinter.c 3/8/92 Moved contents of SCR.H into COLOR.H. I will be using COLOR.H and SCDSPMSG.H to define interface objects for source file SCDSPMSG.C (I won't need to make an scr.c, scdspmsg.c will do) Moved RGB() macro from vprinter.c into color.h. Used it to define RGB_ stuff as for BORLAND as a LONG that looks just like MicroSofts. Also created RGB_R, RGB_G, RGB_B macros to extract pieces. 3/8/92 Changed name of routine _setnocursor (in scdspmsg.c) to sc_setnocursor. (leading _ must be reserved for system routines) Changed references in scdspmsg.h, 1401.c and dead.c as well 3/8/92 Found all references to _GCLEARSCREEN. They were *all* inside calls to _clearscreen. Changed all references to this routine to be sc_clearscreen, and will (eventually) put it in scdspmsg.c Updated scdspmsg.h with function prototype for sc_clearscreen. 3/8/92 Changed name of routine _setnormalcursor (in scdspmsg.c) to sc_setnormalcursor. (Same reason as above). Changed references in scdspmsg.h, 1401.c, and dead.c also. 3/6/92 Commented out include of in: 1401.c, addr.c, display.c, iocheck.c, lamp.c, logic.c, mode.c, periph.c, periph2.c, poll.c, prdev.c, scan.c, scdspmsg.c, select.c, vprinter.c, alert.c, button.c, card.c, cdp.c, cdr.c, ddiag.c, dead.c, diag.c, length.c - left it in but commented out to help find other calls later. 3/6/92 button.c has (incorrect) re-declarations of I_addr, A_addr, B_addr, so I commented them out. 3/2/92 Created "scr.h" which will act as an interface definition for the screen oriented routines (dare I say "object"). 3/2/92 Modified "color.h" to use color index names COLOR_xxxxxx in place of the name xxxxxx. Also, removed the (attrib) cast on these names. I figure it is safe, because it is an integer type. 3/2/92 Discovered BORLAND GREP. It puts stuff in the message window, making it easy to pop to the affected file. Began modifying the usages of the aforementioned color indexes. Have done: BLACK: addr.c alert.c button.c card.c cdp.c cdr.c data.c ddiag.c dead.c diag.c display.c enter.c length.c logic.c mode.c periph.c print.c select.c switches.c vprinter.c BLUE: card.c enter.c mode.c (tcolor.c is for testing) (includes LTBLUE) GREEN: (tcolor.c for testing), button.c cdp.c, cdr.c, print.c _LIGHTGREEN: vprinter.c (to RGB_GREEN) CYAN: 1401.c, vprinter.c RED addr.c, button.c, cdp.c, cdr.c, alert.c, data.c, ddiag.c, dead.c, diag.c, length.c, select.c (includes LTRED) MAGENTA: select.c, vprinter.c BROWN: dead.c, select.c, button.c, 1401.c WHITE: alter.c, data.c, ddiag.c, diag.c, enter.c, length.c, print.c, vprinter.c, addr.c, cdp.c, cdr.c, display.c, logic.c, periph.c, switches.c GRAY: 1401.c, vprinter.c YELLOW: button.c, card.c, cdp.c, cdr.c, print.c, select.c, 1401.c