******************************************************************************* * * STANDARD INTERFACE ROUTINE FOR CP/M68K UTILITY PROGRAM * (OVER 64K MODEL) * * (1) SET THE ENVIRONMENT FOR S-PL/H OBJECT * (2) DECLARE THE PUBLIC PROCEDURE FOR BDOS CALL * (3) SET THE BASE PAGE VARIABLES * (4) DECLARE PATCH AREA * ******************************************************************************* SECTION 8 ******************************************************************************* ********* EXTERNAL DEFINITION ******************************************************************************* XDEF .SMAIN XDEF ENTRYC XDEF MON1,MON2,MON3,MON4,XDOS XDEF MON5,MON6,MON7 XDEF MAXB,MEMSIZE XDEF FCB,FCB16,BUFF,TBUFF XDEF PATCH1,PATCH2 XDEF MEMORY ******************************************************************************* ********* EXTERNAL REFERENCE DIFINITION ******************************************************************************* XREF .SPSCT XREF .SDSCT ******************************************************************************* ********* CONSTANT EQUATION DEFINITION ******************************************************************************* OMAXB EQU 4 /* OFFSET OF MAXB FROM BASE OFCB16 EQU $38 /* OFFSET OF FCB16 FROM BASE OFCB EQU $5C /* OFFSET OF FCB FROM BASE OBUFF EQU $80 /* OFFSET OF BUFF FROM BASE FCBSZ EQU 72 /* (FCB16 + FCB) AREA SIZE BUFFSZ EQU 128 /* BUFF AREA SIZE * ******************************************************************************* * ENTRYC EQU * /* ENTRY POINT FROM CCP .SMAIN EQU * /* REFER FROM .SINIT ROUTINE ******************************************************************************* ********* SET THE BASE PAGE VARIABLES ******************************************************************************* MOVE.L (A7)+,RTNCCP /* STORE RETURN ADDR OF CCP MOVE.L (A7)+,SBASEP /* STORE POINTER OF BASE PAGE * MOVEA.L SBASEP,A0 /* GET THE BASE ADDR OF BASE PAGE MOVE.W OMAXB(A0),MAXB /* SET MAXB * LEA OFCB16(A0),A0 /* GET THE SOURCE ADDR OF FCB16 LEA FCB16,A1 /* GET THE DESTINATION ADDR OF FCB16 MOVE.W #(FCBSZ-1),D0 /* SET LOOP NUMBER LOP1 MOVE.B (A0)+,(A1)+ /* SET FCB16 AND FCB DBF D0,LOP1 * MOVEA.L SBASEP,A0 LEA OBUFF(A0),A0 /* GET THE SOURCE ADDR OF BUFF LEA BUFF,A1 /* GET THE DESTINATION ADDR OF BUFF MOVE.W #(BUFFSZ-1),D0 /* SET LOOP NUMBER LOP2 MOVE.B (A0)+,(A1)+ /* SET BUFF AND TBUFF DBF D0,LOP2 * ********* END BASE PAGE SET ******************************************************************************* ********* INIT FOR S-PL/H ******************************************************************************* LEA RMA,A5 /* SET RMA BASE LEA RMA,A6 LEA RMA,A7 /* SET STACK POINTER SUBA.L #4,A6 /* SET FRAME POINTER LEA .SPSCT,A4 /* S-PL/H OBJECT AREA LEA .SDSCT,A2 /* S-PL/H DATA AREA JSR (A4) /* GO TO S-PL/H ******************************************************************************* ********* PUBLIC SUBROUTINE FOR BDOS CALL ******************************************************************************* MON1 EQU * MON2 EQU * MON3 EQU * MON4 EQU * XDOS EQU * CLR.L D0 CLR.L D1 MOVE.W 4(A7),D1 MOVE.B 6(A7),D0 TRAP #2 /* BDOS CALL MOVEA.L (A7)+,A0 LEA 4(A7),A7 JMP (A0) /* RETURN TO MAINROUTINE MON5 EQU * MON6 EQU * MON7 EQU * CLR.L D0 MOVE.L 4(A7),D1 MOVE.B 8(A7),D0 TRAP #2 /* BDOS CALL MOVEA.L (A7)+,A0 LEA 6(A7),A7 JMP (A0) ******************************************************************************* ********* PATCH AREA ******************************************************************************* PATCH1 DC.B 'COPYRIGHT 1983' DC.B 'DIGITAL RESEARCH' PATCH2 DC.B '010282' DC.B 'XXXX-' DC.B '0000-' DC.B '654321' * ******************************************************************************* ******************************************************************************* * DEFINITION OF DATA AREA ******************************************************************************* SECTION 7 STACK DS.L 300 /* STACK AREA OF S-PL/H RMA DS.B 144 /* S-PL/H RUN TIME MAINTENANCE AREA ******************************************************************************* MAXB DS.L 1 /* TOP ADDR OF TPA MEMSIZE EQU MAXB /* SAME AS MAXB FCB16 DS.B 36 /* 2-nd PARSED FCB OF COMMAND LINE FCB DS.B 36 /* 1-st PARSED FCB OF COMMAND LINE BUFF DS.B 128 /* COMMAND LINE TAIL AND DMA BUFF TBUFF EQU BUFF /* SAME AS BUFF RTNCCP DS.L 1 /* RETURN ADDR TO CCP SBASEP DS.L 1 /* POINTER TO BASE PASE MEMORY DS.L 1 /* MEMORY ARRAY * ******************************************************************************* * END .SMAIN