Developer's Notes
@ED∙PC was written to answer the need for an industrial-strength, programmable macro editor. It is written to be as backward-compatable as possible while taking advantage of features in the PC environment.
New Commands and Features
- The command history. F7 (like in DOSKEY) shows you what your last 50 commands were, F8 retrieves via mask, and F9 retrieves by command number (again all just like DOSKEY).
- On-screen cutting, copying and pasting, using the @ED∙PC screen clipboard buffer.
- The @@LINES command. If your screen size is less than 50 lines try @@LINES 50 to see a lot more of what you're working on.
- HELP. I can't always remember every command or what their parameters are. In @ED∙PC, help is context-sensitive and interactive - press F1 anytime, anywhere. Or, just enter HELP at the SOE. Each help topic has hypertext links to related topics.
- JOIN and WRAP. WRAP chops one line into two, and JOIN combines two adjacent lines together into one. They can be used in word processing macros because they honor margins, which can be set with LIMIT WRAP.
- The DOS command (also callable as SPAWN and @@SPAWN). This command allows DOS (or CMD.EXE) commands to be submitted to the operating system for execution, or allows temporary access to a command-line shell session or DOS prompt (the user decides to quit the DOS prompt by typing - what else - EXIT). Since you can LPSUB right into the DOS command parameters, you have complete control of the command that is submitted to your operating system. The DOS command can also SET environment variables which can be tested after @ED is done.
- The EN function, which retrieves an environment variable from the operating system. Using the EN function and the DOS SET command, @ED∙PC becomes a powerful batch language extender.
- The AL, SF, MP and other "parsing" functions for picking at a macro's parameter.
- The MO (Month) and WD (Weekday) functions and the D2 (formatted date) function.
- File name functions NM, EX and NE; path function P; line preview function NX.
- "Update discretion". @ED∙PC won't write out a new copy of your file if you've made no changes. You can always force an update if you want, but now you don't have to update your time/date stamp if all you're doing is looking (and you forgot ,R or OMIT).
- The line at the bottom of the screen shows the edited file's name and current status. If you've changed the file since you've started working on it, an asterisk shows there; if you're creating the file, it displays an I. This status line also displays the current cursor position, time, and other information.
- Extended status information is visible with the STA! command.
- Hex arithmetic. 0xFF=255=0377, try com.255 , com*0xFF , com!0xFF
- It handles text lines up to 10,000 bytes long, and files up to 2.1GB in size.
- And you can edit the last line in the file immediately after using the LAST command.
What's NOT in @ED∙PC
- The CPU command. It reports how many cards you've punched in this run (CPU is short for CPUNCH$). I haven't punched many lately, so I left it out.
- Autorecovery (/A switch). "It'll be in a future version." (However, @ED∙PC's work files are preserved in the event of a program failure - an infrequent event - so most edits are saved.)
- The /B switch (for batch) doesn't alter the way prompts look to the user.
- CSF commands beyond CSF @ASG,A . There was need for a test of file existence, and there was already syntax for it, so here it is. But I was building a text editor, not emulating an operating system, so I refrained from putting too much in here. CSF @ASG,A works. CSF @ASG,UP or anything else won't.
- Two of the documented obsolete commands, H(EAD) and SAVE.
- Many XPC functions. There are some for page size and header, but again, I wasn't writing device drivers, just a text editor. Some functions aren't implemented at all, others only partially.
- File cycle support.
- LPTST OLD. OS/1100 program file elements are maintaned in multiple versions by an element cycle number. This cycle number makes possible the OLD function, which tells you if a line was changed this session. I had written a macro, NEW, which used this feature to show me the lines I'd edited; it was a handy way to review my work. Alas, @ED∙PC cannot do that, for PC's have no analogue of element cycling. The loss is somewhat lessened by the command history (see above), which at least tells me what I've done even if it doesn't show the final product.
- For the above two reasons, the TIM command just gives a dummy cycle spec: (0,1) for any update, and (,0) for any file create.
- CPT. Shows SUPS. Not a PC feature.
- GI. Goes to a line based on its initial number, again an element cycling-related feature.
- MAIL. But email support in a future Windows release is possible.
- OPR. No "operator" interface is implemented.
- PCC. May be in a future release.
- SHCHAR. Most PCs support upper and lower case with no trouble, so this command was considered not critical.
- SP function. May be in a future release. Please see note for SSP below.
- SSP. Embedded spacing control is a feature of symbiont files, which won't be found on a PC.
- IL and NI prefixes. Initial line numbers, a part of element cycling, aren't supported.
- ESC / EM Uniscope sequence support. The user interface doesn't do any special handling of output text except to throw away nulls.
- Fieldata. There hasn't been any clamor for support of Fieldata. The K option isn't implemented, nor does the P actually produce FD output (P DOES change everything to uppercase on output).
Thanks for reading.