Windows by Shade, Part 5

The failure of the compiled data entry routine to run properly, plus the fact that as of this date I am not yet a machine code programmer, meant that if I wanted to continue to develop the whole package of program units, my only option was to divide the data entry routines into two parts. Part #1 is a block of compiled machine code above RAMTOP. This block of machine code is composed of all the TIMEX BASIC operations of the data entry routines which the ‘TIMACHINE’ compiler did compile correctly and do run properly. Part #2 is composed of all the TIMEX & LKDOS extended BASIC window operations needed by the data entry routines. I added Part #2 of the data entry routine to the Core Routines which start at lines 9800. The program lines provided for Part #2 of the data entry routines in the Core Routines are for the pseudo three window demo lines 9889 to 9904, 16 program lines, and for the true three window demo lines 9889 to 9926, 36 program lines. Because the data entry routine is divided with Part #1 in compiled machine code and Part #2 in TIMEX & LKDOS extended BASIC I had to add POKEs & PEEKs to and from a parameters buffer above RAMTOP so both Part #1 & Part #2 of the data entry routine can share parameters and keep synchronized with each other. The data entry routines are ENTERed from the Implementation Program with a RANDOMIZE USR jump to Part #1 of the data entry routine, Part #1 of the data entry routine sets the parameters for Part#2 of the data entry routine and then Part#1 makes a jump to Part#2 of the data entry routine, in the Core Routines section, which does the LKDOS extended BASIC windows operations. When Part#2 of the data entry routine has completed the LKDOS extended BASIC windows operations Part#2 makes a jump back to Part #1 of the data entry routine or if data entry into that line has been completed Part#2 makes a jump back to the Implementation Program. These POKEing & PEEKing operations cause delays, and would not be needed if the data entry routine were all in one block of machine code as originally planned. It is the POKEing & PEEKing and slower running TIMEX & LKDOS-extended BASIC window operations of Part #2 of the data entry routines which slows down the typing speed, especially for the true three window demo which has 20 more lines of TIMEX & LKDOS extended BASIC to labor through.

The help I seek is, that you put me in touch with a machine code programmer who is capable of putting the LKDOS extended BASIC window functions, Needed by the data entry routines, into one or more relocatable machine code modules.

I would like to have the LKDOS extended-BASIC window functions setup as a stand alone reloc4table machine code module just like the one that Jack Dohany wrote for the LKDOS disk drive functions. I could then locate this machine code module anywhere above RAMTOP. Then using the base address of the module plus several fixed numbers I could calculate the addresses where specific parameters are stored within the module. I could setup Part #1 of the data entry routine to POKE those parameters numbers, needed to control the module’s LKDOS extended BASIC windows operations, directly into the address where the module looks for them. The parameters that would be POKEd into the LKDOS extended BASIC window operations machine code module would be <1> The specific window number (5, 6 and 7 ). <2> Printable characters (“^”, “_” & “”). <3> CHR$ (‘B’). The module could be used to store the current parameters set by Part#1 of the data entry routine instead of POKEing them-to a separate parameters buffer. This would cut out “the PEEKing of the parameters buffer now done by Part#2 of the data entry routine. I would rewrite Part#1, the TIMEX BASIC Partof the data entry routines, to accommodate the use of the LKDOS extended BASIC windows operations machine code module then compile the new version of Part#1 of the data entry routine to machine code with the ‘TIMACHINE’ compiler as before. The details of exactly how to setup the LKDOS extended BASIC window operations machine code module must be worked out between the machine code programmer and myself directly.

I believe the program master plan I have worked out which uses the DELETE/MERGE LOADER, the Implementation Programs & the Core Routines plus the machine code routines above RAMTOP is a sound programming methodology. I believe my demos show great promise with respect to the development of both versatile and sophisticated programs, using the many useful functions provided for these demos as their foundation. I believe that in time I will be able to work out the LKDOS extended BASIC windows operations machine code module on my own in my spare time I do not have much spare time in which to do this kind of work. I also believe that by the time I do get this project completed most everyone will have left the TS-2068 computer behind. I want to complete these demos, with the LKDOS extended BASIC window operations machine code module before the Withdrawal happens. If I get the help I need, the finished programs I have already been working on for some time,-will be done before everyone-else but you and I gives up on the TS-2068 computer. I hope you can find a machine code programmer it this-late date that is capable of getting this job done properly.

If you have any information concerning the use of machine code to access the routines of the LKDOS version 3 firmware’s extended BASIC operations that might help me to complete the development of an LKDOS extended BASIC window operations machine code module on my own please send it to me. If there is a fee for that information please let me know the amount of that fee and I will send you my check in that amount.

Feel free to give out any software or the program listings to anyone who shows an interest. Especially if they happen to be a machine code programmer.

Timex & LKDOS Extended Basic Pseudo Three Windows Demo Programs Excerpted Timex & LKDOS Extended BASIC (Part #2 Of) Data Entry Routine

9889 RANDOMIZE USR RN
9890 LET BG=PEEK 62383: LET CU=PEEK 62385: LET CS=PEEK 62377: LE T A=PEEK 6237!: LET B=PEEK 62380
9891 PRINT #4: POKE 16045,A: PRINT #4: POKE 16046,B
9892 IF BG=1 THEN GO TO 9901
9893 LET F=PEEK 62380: LET H=PEEK 62382: PLOT INK H;A,F: LET DL =PEEK 62384
9894 PRINT #4: DRAW (4*DL),8,0
9896 IF BG=2 THEN LET B=PEEK 62375: PRINT #7;CHR$ B;: GO TO 9901
9897 IF BG=3 THEN LET RN=61872: GO TO 9889
9898 IF BG=5 THEN LET RN=60899: GO TO DR
9899 IF CU=O THEN PRINT #7;NAN: GO TO 9904
9900 IF CU=1 THEN PRINT #7;'.': GO TO 9904
9901 IF CS=O AND CU=0 THEN PRINT #7; "^"
9902 IF CS=O AND CU=1 OR CS=1 THEN PRINT #7;'_"
9903 IF CS=2 THEN PRINT #7; "": GO TO 9904
9904 LET RN=62141: GO TO 9889

Robert Shade
[address omitted]

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.