;======================================================================= ; ; ; H P I O P ; ; IOP Loader For HP ; Programmer's Integer RPN Calculator ; ; by ; Terry Hazen ; 21460 Bear Creek Road ; Los Gatos CA 95030 ; ; Voice.......... (408) 354-7188 ; Zee-Machine.... (408) 245-1420 ; Ladera Znode... (213) 670-9465 ; ;======================================================================= ; ; Revision History ; ---------------- ; ; 02/15/91 Initial release. Modified from HPRSX14.Z80. ; v1.0 - Terry Hazen ; ;======================================================================= ; ; This module calls IOPLDR, which does all the work required to load and ; relocate the appended HP.PRL IOP module. It contains all the HP- ; specific routines needed by IOPLDR. Assemble and link using ZMAC/ZML, ; and rename the resulting COM file to BIN, as it can't be run at this ; point: ; ZMAC HPIOP;ZML HPIOP;RENAMZ HPIOP.COM *.BIN ; ; Finally, use Joe Wright's CON20 to append the IOP module, HP.PRL (see ; HP14.Z80 for information on producing the IOP module HP14.PRL): ; ; CON20 HPIOP.COM=HPIOP.BIN,HP.PRL / ; ;======================================================================= ; ; Equates ; TAB EQU 09 LF EQU 10 CR EQU 13 ; ; Program version ; VERS EQU 10 MONTH EQU 02 DAY EQU 15 YEAR EQU 91 ;======================================================================= ; ; Entry points for module-specific addresses and routines required by ; the IOPLDR module: ; PUBLIC Z3EADR,NAME,MHELP,MINST,MLDMSG,MREMOV ; ; From IOPLDR get: ; .REQUEST IOPLDR EXT IOPLDR,PRINT$NAME,M$NAME,IOP,IOPHIGH EXT COUT,PRINT,PHL4HC,$MEMRY ;======================================================================= ; ENTER: JP IOPLDR ; IOPLDR does all the work DB 'Z3ENV' ; ZCPR3 Utility DB 1 ; Type 1 Z3EADR: DW 0 ; Z3ENV address provided by ZCPR33+ DW ENTER ; ZCPR34 pad bytes ; NAME: DB 'HPIOP' ; Default CFG filename DB VERS/10+'0',VERS MOD 10+'0' DB ' ' ; 8 characters total DB 0 ; Termination ;======================================================================= ; ; IOP Configuration area ; INITCHR:DB 0 ; Character used to initiate IOP ;======================================================================= ; ; HP-specific routines called by IOPLDR: ; ;======================================================================= ; ; MHELP displays the command line help screen after IOPLDR displays the ; banner. ; MHELP: CALL PRINT DB 'Installs and removes the IOP module for the' DB CR,LF,' ',0 CALL M$NAME DB ' programmer''s integer RPN calculator.' DB CR,LF,LF DB 'Syntax:' DB CR,LF,' ',0 ; CALL PRINT$NAME DB ' - Install ',0 CALL M$NAME DB ' IOP module' DB CR,LF,' ',0 ; CALL PRINT$NAME DB ' [/]R - Remove installed ',0 CALL M$NAME DB ' IOP module' DB CR,LF,LF ; DB ' When the ',0 CALL M$NAME DB ' calculator module is installed:',CR,LF,0 ; ; IOPLDR also displays MLDMSG after IOP load/exists messages to allow ; the display of IOP commands. ; MLDMSG: CALL PRINT DB ' ^',0 LD A,(INITCHR) ; Get init character ADD 40H ; Make it displayable CALL COUT CALL PRINT DB ' - To invoke the calculator' DB CR,LF, DB ' ^C - To exit the calculator' DB CR,LF,0 RET ;======================================================================= ; ; MINST - does all required special installation of the HP IOP module ; after the IOP module has been relocated into high memory. ; Entry: HL,IX=address of IOP buffer, IY=address of local IOP ; MINST: LD A,(INITCHR) ; Get init character LD (IX+6Ch),A ; Move it to the IOP RET ;======================================================================= ; ; MREMOV - does all required special removal of the HP IOP module. ; Entry: HL=address of IOP removal routine, which is called after this ; routine. ; MREMOV: RET ; Nothing special here ;======================================================================= END