Write-Hand-Man
it will be activated by the control key [CTRL] ]
.
Now the following commands and tools are available:
A | Notepad | This editor allows the handling of memorandums | ||||||||||
B | Phonebook | This editor allows the handling of phone numbers | ||||||||||
C | Calendar | A calendar valid from January 1978 to December 2000 | ||||||||||
D | Dir | Print a disk directory | ||||||||||
E | View | Display a text file | ||||||||||
F | Calculate | A calculator for the four basic calculating operations | ||||||||||
G | Keys | A macro editor for keyboard assignment | ||||||||||
R | Restore | Restores keyboard assignment | ||||||||||
O | Other | Select an extension.
The following add-on are available:
|
0900
bytes.
Here the files:
• | Binary files containing the required .COM , REL. and DAT. files
| ||
• | Main file | The program activates or deactivates the RSX | |
• | RSX | This RSX must be combined with the main file | |
The applications | |||
---|---|---|---|
• | Notepad | The editor for memorandums | |
• | Phonebook | Editor for phone numbers | |
• | Calendar | A calendar from January 1978 to December 2000 | |
• | Dir | Print a disk directory | |
• | View | Display a text file | |
• | Calculate | The calculator for the four basic calculating operations | |
• | Keys | The macro editor for keyboard assignment | |
• | Restore | Restores keyboard assignment from file KEYS.DAT |
|
• | Diary | Administration of a diary of up to two weeks | |
• | Hex | A calculator for integer numbers | |
• | ASCII | Display possible 256 characters | |
• | Bigphone | The editor allows the handling of phone numbers more than Phonebook does.
(It is the same source as Phonebook but the value big is set to 1)
| |
• | Fkeys | Editor to assign the function keys [f1] up to [f8] |
00
to 100h
) of the application.
BASE+016h
contains the address of the keyboard macro trigger character.
BASE+018h
contains the address of the keyboard macro table.
16 characters are reserved for each keyboard macro.
BASE+01Ah
contains the address of a 48-byte memory area that is not modified by WHM.
Applications may communicate with each other using this area.
The calculator stores its saved value in the first 8 bytes of this area.
WHM provides its application programs with a duplicate of the CP/M environment.
All BDOS calls are allowed except calls that cause major modifications in the disc system (SYSTEM RESET, DISK RESET).
All addresses used by the application must be relative to the location in memory that WHM reserves for its programs.
Thus to call the BDOS, the code is not CALL 5
, but CALL BASE+5
, where BASE
is the origin of the program.
BASE+05Ch
has an FCB filled in for the file name.DAT
where name
is the name of the application.
The DMA address is set to BASE+080h
.
The program is called at location CALL BASE+0100h
.
BASE+0
contains a JMP
instruction to the return point of WHM.
BASE+5
contains a JMP
to the BDOS.
There are two additional JMP
instructions in the first few bytes of the application memory.
BASE+010h
contains a JMP
to a routine that will home the cursor, so a CALL BASE+010h
causes a cursor home.
Finally, BASE+013h
contains a JMP
to a chaining routine.
If an application wishes to chain control to another application it puts the name of the new application in location BASE+05Dh
(the file name portion of the default FCB, with trailing blanks and issues a JMP BASE+013h
.
The new application will be loaded and CALL
ed with the environment set up as described above.
Any assembler that produces Microsoft's .REL
files can be used to assemble the applications such as Digital Research's RMAC 8080 macro assembler.
WHM has a small loader built in which understands a subset of the LINK-80 facilities.
To bear in mind:
Code Segment
addresses.
Therefore do not use werden any ASEG
, DSEG
or COMMON
.
Use only CSEG
(the M80 default) directives.0900
hex bytes (2304 decimal).
org 0 ; base of program base equ $ ; relative BASE for assembler bdos equ base+5 ; BDOS call (R) home equ base+010h ; special HOME routine (R) chain equ base+013h ; chaining return (R) fcb equ base+05ch ; default FCB (R) fcbcr equ fcb+32 fcbr0 equ fcb+33 fcbr2 equ fcb+35 fcbs2 equ fcb+14 bdos equ base+5 buf equ base+080h ; default BUFFER (R) open equ 15 close equ 16 ranread equ 33 ranwrit equ 34 pstring equ 9 setdma equ 26 conio equ 6 ; org 0100h ; standard entry point jmp go ; JUMP to start of the ; code ; this program uses the 256 ; bytes starting at BUF ; (BASE+080h) as an I/O ; buffer org 0180h ; end of second half of ; buffer go: xra a ; first instruction of ; program sta fcbs2 ; the stack is a good one sta fcbr2 ; clear FCB fields lxi d,fcb mvi c,open ; open NOTEBOOK.DAT file call bdos inr a jz base ; return (just like ; traditional ;JMP to 0, ; warm boot) lxi h,0 ; continue with code |