Articol disponibil numai în limba engleză

Note: this is the +3DOS compatible version, not the CP/M version !

This is version 5.1 of the GEN assembler and version 5.2 of the MON disassembler/debugger.

The package contains five files: GENP3 (GEN v5.1, 32 column display), GENP351 (GEN v5.1, 51 column display), GENS451 (GEN v4.1, 51 column display),  MONP3 (MON v5.2) and MONS4 (MON v4.1).

Quick opinion:

GEN v5.1 screenshot
GEN v5.1 with 51 column display;
the editor looks quite similar to version 4.1 with 51 column display

GENP3 (and GENP351) assembler is very similar to GENS4 (and GENS451) assembler.
Its biggest difference and also advantage is the disk access. The source code can be loaded and saved directly from disk and the assembly directive and the generated code can be written directly on disk. Tape operation is also supported, so you can load an old file from tape and save it to disk.

The program still needs the source code to fit the memory. The program cannot handle a source code file that is bigger than the available free memory space. The program is not capable to use the RAM disk area for this purpose (like Tasword 3 for +3 does, for example).

MON v5.2 screenshot
MON v5.2 front panel display;
RAM and ROM pages are quite permanently displayed

MONP3 disassembler/debugger has a similar interface with MONS4 and almost all commands are the same.
However, the program is different in respect with MONS4, in that it resides in RAM disk area and occupies only 160 bytes of the normal memory. It has ROM and RAM memory page switching feature and is able to generate GEN compatible source code directly to disk.

The program performs somewhat slower than MONS4, which is to be expected, as the program runs in RAM disk area and has to make many paging operations.

Although the screen is preserved when MONP3 launches and can be recalled at anytime while under MONP3, a code that may reside possibly in the screen area cannot be seen.

By default, the files on disk are loaded at these addresses:

  • GENP3: address 24700 (code is 10752 bytes length)
  • GENP351: address 24700 (code is 11264 bytes length)
  • GENS451: address 26000 (code is 11392 bytes length)
  • MONP3: address 24700 (code is 8576 bytes length)
  • MONS4: address 40000 (code is 6656 bytes length)

As usual, the code needs to be loaded at address xx, where xx may be the default one (none specified) or user defined (explicitly entered). Then launch the code with RANDOMIZE USR xx.

Tip: make two small BASIC programs, one called M (for MONP3 loading) and the other G (for GENP3 loading):

 1 CLEAR 24575
 2 LOAD "MONP3" CODE 32768

(then SAVE"M"LINE1)

 1 CLEAR 24575
 2 LOAD "GENP3" CODE 26000
 3 GO TO 10

(then SAVE"G"LINE1)

First load the M program; enter 24576 to MONP3 when asked; exit to BASIC.
Merge the G program; enter RUN; exit to BASIC.
Erase lines 1, 2 and 3.
You now have both programs in memory so you can:
a. run the MON program, by entering RUN5;
b. run the GEN program, by entering RUN10.

The HiSoft manual supplied is identical with the Devpac version 4.1 manual. However, there are 2 additional pages at the end of the manual, with +3 specific instructions. You can read these additional instructions here (HTML version).

Note: the manual refers to MON as the version 5.1, whereas the version on disk is version 5.2; I have no idea what is different on version 5.2; perhaps only some bug fix(es) (?)

If you have a source code that was previously written under GENP3 (or GENS; however, the file must resides on +3DOS disk) and you wish that code be available as simple text file, then use this small utility to make the conversion.

I have build it with the purpose of making GENP3 to GEN80 source code conversions (GEN80 is the CP/M version).

You are asked to enter the original filename. The resulted file will have the same filename as the original one.

Caution: the original file will be overwritten !!! Do not forget to make a backup copy if you think you will need the original file at a later time to work with GENP3 (or GENS) again

The program runs under +3BASIC and is disk based only (the disk handling routines are +3DOS compatible); it does not load files directly from tape and in spite of fact that the (included) source code is in GEN80 format, it does not run under CP/M.


Sus de tot