_____________________________________________________________________ USER DEFINED GRAPHICS _____________________________________________________________________ The character definer can be run from CP/M by first running the UDG.COM program - type in UDG - then loading BASIC - BASIC.COM is on your CP/M System disc. At the ok prompt type in RUN"UDG" After a short introduction the program initialises itself and presents you with a list of options. All the options are explained quite fully and should be easy to understand. The program presents the user with 8 choices (9 if you include QUIT to CPM) these include editing a single character or a group of characters, saving and loading unfinished character sets and finally the piece of resistance; the SAVE AS COM option. For those interested in machine code, basically it writes its own little relocation program and looks a bit like this:- org 256 or 100H if you prefer ld hl,TEMP Start of temp storage area ld de,57900 Where I want it to go, (top memory) ld bc,2100 Length of program and char data ldir Shift the whole lot jp 57900 Now jump to the real program TEMP equ $ The real prog should be at 57900 now along with the char data at 58000 ld hl,(1) Get address of JMP blocks ld bc,87 Offset add hl,bc Calculate address to call ld (CALLAD+1),hl Stick result into callad+1 ld bc,LOCATE The program CALLS BC, kind of anyway CALLAD call 00000 First call above calculation defw 233 ret Will ret to CPM here LOCATE This is called from above routine, The RAM holding the Char data is now paged in ld hl,58000 ld de,47104 Address of CPM char set ld bc,250*8 250 characters, eight bytes each ldir Put the whole lot on top of the CPM set ret Ret to above routine, After the DEFW. John Stevenson. _____________________________________________________________________ [C] ADVANTAGE 1987