mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-24 08:54:17 +00:00
Upload
Digital Research
This commit is contained in:
133
CPM OPERATING SYSTEMS/CPM 68K/1.0X SOURCES/v101/utils/ut68k.sa
Normal file
133
CPM OPERATING SYSTEMS/CPM 68K/1.0X SOURCES/v101/utils/ut68k.sa
Normal file
@@ -0,0 +1,133 @@
|
||||
*******************************************************************************
|
||||
*
|
||||
* 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
|
||||
|
||||
Reference in New Issue
Block a user