Category : Communication (modem) tools and utilities
Archive   : TM_301.ZIP
Filename : TLXMOVE.NTS

 
Output of file : TLXMOVE.NTS contained in archive : TM_301.ZIP
Notes from the programmer...

TLXMOVE v3.00 was programmed in TURBO PASCAL v6.0 to take
advantage of the new in-line assembler commands. It does *NOT* use
any of Turbo-Vision that, while it looks good, looks extremely
complicated to use and set up and adds a lot of size to your .EXEs
(the HELLO WORLD program which does one pull down menu of three
options and a push-button box with 5 push-buttons compiles to almost
50k!). I'd hate to see the size a program that could actually DO
something might get to!
Also, I like something I can customize (like appearance) without
having to pay an extra grand or so for source code. Unfortunately,
most of TV is compiled .TPU files which leaves little room for
customization.
All routines in this program were written from scratch by me
(mostly in TP v5.5 BEFORE 6.0 ever came out).

This is not to brag, but get all those people out there who look
at it and say: 'Hey! He's cheating!' off my back.

I really don't like writing 'shell' code (code that all it seems
to do is run other peoples routines). It's not much fun to write a
program like:

BEGIN PROGRAM
READ TELIX PHONE DIRECTORY
DISPLAY PHONE LIST ON SCREEN
PUT UP SOME FANCY BUTTONS
MOVE RECORDS USING MOUSE
IF USER WANTS TO SAVE THEN SAVE AND EXIT
IF USER WANTS TO EXIT THEN EXIT
OTHERWISE GO BACK TO MOVING RECORDS
END PROGRAM

I mean, where's the challenge in that? I would rather write the
routines that read the phone directory, display the list, move the
records, etc. I get a better sense of accomplishment when I create
something that is all mine.

If you like Turbo Vision, hey! More power to you. It's for some
people but not for others. I don't want to start any arguments about
whether it's great or not, because it probably is for some people.
Just, not for me. (Now watch me learn how to use it and start saying
otherwise!)

I do like that in-line assembler in TP 6.0, though. It helps you
to write routines like:

(**********************************************************************)
(* Function ...... Replicate()
(* Purpose ....... To create a string filled with a certain character.
(* Parameters .... cChar Character to replicate
(* nCount Number of times to replicate cChar
(* Returns ....... A string in length filled with the character
(* .
(* Notes ......... None
(* Author ........ Martin Richardson
(**********************************************************************)
FUNCTION Replicate( cChar: CHAR; nCount: BYTE ): STRING; ASSEMBLER;
ASM
XOR CX, CX { Zero out CX }
MOV AL, cChar { Load character into AL }
MOV CL, nCount { Load count into CX }
LES DI, @Result { Point ES:DI to TP result pointer }
MOV BYTE PTR ES:[DI], CL { Move the length into result }
INC DI { Point DI to true start of result }
CLD { We want to go forwards }
REP STOSB { Copy AL, CX times into result }
END { Replicate };

which you can step through with the Integrated Debugger. This is a
LOT easier than programming .ASM files which work with TP.

Well, gotta run.



  3 Responses to “Category : Communication (modem) tools and utilities
Archive   : TM_301.ZIP
Filename : TLXMOVE.NTS

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/