★ APPLICATIONS ★ PROGRAMMATION ★ HISOFT DEVPAC / ENSAMBLADOR DESENSAMBLADOR DEVPAC ★ |
Hisoft Devpac (Personal Computer News) | Devpac (Cahier de l'Amstrad) |
BRUSH UP YOUR CODES Simon Williams gets to grips with a new version of the Devpac assembler/ disassembler for the Amstrad CPC 464 When a new computer appears programming enthusiasts look for two things. The first is the quality of the high level languages available for it, and the second is the quality of the low level programming aids. In the case of the Amstrad CPC 464, which uses a Z80A processor, the Assembler/Disassembler offered by Amsoft is a version of the well-received Devpac package from Hi Soft (Spectrum version reviewed in PCN issue 43). Features Devpac comes as two separate programs, Gena to handle assembly of Z80 source code and Mona, a machine code monitor and disassembler. These can be loaded at any point within the memory map of the computer and work independently of each other. The assembler is a full two-pass program which supports a number of assembler directives to define bytes, words and strings and the entry point for calling routines from other languages. The monitor offers the usual 'front panel' display together with a breakdown of code in memory, and the ability to perform hex dumps to screen or printer. It is also possible to disassemble existing machine code to edit it and then reassemble it through Gena. Presentation Devpac comes on cassette with a copy of Gena on one side and Mona on the other. The manual advises you to load Mona first ifyou want to have both programs in the machine at once. Perhaps it would have been useful if this program was on side one of the tape. The manual meets the high standard of Amsoft documentation and has 52 loose leaf pages bound in a ring-file. The text includes details of all the commands for both programs and worked examples of their use in programming. But, alas, there's no index. In addition to the documentation, Gena has a Help screen briefly indicating what all the single letter commands do, but not showing their syntax. The screens in both programs only display in the standard Amstrad livery of yellow on blue. This is a pity, since Mode 1. which is used throughout the package, allows up to four different colours. As lines of text and code on the Amstrad screen sit with only one pixel between them vertically, use of colour highlights could have made the displays much more readable. In use Both programs are preceded on the tape by a loader which requests the load addresses for the code. Suggested defaults are given in the manual and on entering these the programs loaded without trouble. The assembler signs on with a display of its Help screen and the normal '>' prompt. To enter source code, you have to enter the I command, with optional parameters for startline number and step — they are numbered automatically. Standard Z80 mnemonics are used, but no error checking is carried out until you try to assemble the code, using the a command. The code is pretty thoroughly checked at this stage and errors or warnings ar issued appropriately. It's worth mer tioning that all entry must be done wit Caps Lock selected on the keyboard, a Devpac will not recognise the sourc otherwise. Having assembled the code you cai run it from within the Assembler. Othe facilities include searches, block moves relocations and printing or saving o both source and object code to tape. Yoi can jump from Gena to Mona and back butonlyiftheotherprogramhasalread] been used at least once . The front panel display ofMona showi details of the CPU registers, a break down of 32 bytes of memory and the stacl (at least this is what I believe it to be — ] could find no details in the documenta tion). From this display it's possible tc produce a disassembly or hex dump ol any section of memory, to single step through a section of code or to inserl breakpoints and run through the code tc these. Memory may be updated from the keyboard, and this includes the direct entry of strings of ASCII codes. Decimal Hex conversions can be done simply and the front panel itself may be displayed using either number base. Block moves, searches, copies and fills can also be done and sections of code may be executed from any address. Verdict Although the features of Devpac are comprehensive and it will do most of what you want, it's rather slow when updating screen displays. I also found Mona's memory display annoying as it as it blanks and rewrites every time you move the memory pointer, even by only one byte backwards or forwards. This, of course, doesn't affect its function, but it's not one of its most friendly features. The mnemonics of both programs are designed as memory aids, but inevitably some functions are performed by fairly arbitrary letters. Overall, Devpac will provea useful aid to writing machine code on the Amstrad, but it should be used with care. Without trying too hard, I succeeded in crashing the system at least once. It seems a shame that more of the significant features of the 464 couldn't have been incorporated in the translation. Simon Williams ,PCN |
|