+
# Skript, das die neue Bibliothek zusammenbauen soll (01.01.06)
export SRC_DIR = src
export MAKE
-MODULES = o$$al o$$la o$$pl o$$pb i$$pa pl$$u pl$$mv
+MODULES = o$$al o$$la o$$pl o$$pb i$$pa
FRTN_COMMAND = frtn_original
ASM_COMMAND = asm_original
# @echo Building: $(subst $$,\$$,$@)
@if [ ! -d $(OBJ_DIR) ]; then mkdir $(OBJ_DIR); fi
@ rm -f $@
- @ cd $(OBJ_DIR) && $(ASM_COMMAND) ../$(subst $$,\$$,$^)
+ @ cd $(OBJ_DIR) && $(ASM_COMMAND) ../$(subst $$,\$$,$^) $(LISTING)
@ cd $(OBJ_DIR) && $(LDC_COMMAND) $(notdir $(subst $$,\$$,$@))
$(LIBS):$(LIB_DIR)/%.lib: $(RECIPE_DIR)/%$(RECIPE_SUFFIX) $(ORG_OBJDIR)/lastrun $(OBJECTS)
clean:
- @rm -rf $(OBJ_DIR) $(LIB_DIR) *.lst *.go
+ @rm -rf $(OBJ_DIR) $(LIB_DIR) *.lst *.go *.obj *.par *~
@./buildlib.sh clean
.PHONY: clean all
+++ /dev/null
-* (PL$MV) REV 1.0 INCREMENTAL PLOTTER ROUTINES
-*
-*
-* PROGRAM TITLE:
-* PL$MV (PL$MV,PL$RST,PL$LN)
-*
-* PLOTTER MOVEMENT ROUTINES
-*
-*
-* REVISIONS:
-* 1.0 (2007-05-28)
-* 1.1 (2007-11-08) - ADDED INTELLIGENT LINE DRAWING ROUTINE
-*
-*
-*
-* AUTHOR:
-*
-* PHILIPP HACHTMANN
-*
-*
-* PURPOSE:
-*
-* PROVIDE SIMPLE LIBRARY FUNCTIONS FOR INCREMENTAL PLOTTERS
-*
-*
-* STORAGE:
-*
-* ??? (OCTAL)
-* ??? (DECIMAL)
-*
-*
-* USAGE
-*
-* CALL PL$RST - SET VIRTUAL PLOT POSITION TO ZERO
-*
-* CALL PL$MV - MOVE TO POINT SPECIFIED
-* DAC XN BY XN
-* DAC YN AND YN VALUE
-*
-* CALL PL$LN - DRAW LINE AND LEAVE PEN DOWN
-* DAC X1
-* DAC Y1
-* DAC X2
-* DAC Y2
-* DAC 0
-*
-*
-********************************************************************************
-*
-*
- SUBR PL$MV,MOVE
- SUBR PL$RST,RST
- SUBR PL$LN,LINE
-*
-*
-*
- REL THIS IS A RELOCATABLE OBJECT
- ORG '0
-*
-********************************************************************************
-*
-LINE DAC 0 DRAW A LINE FROM NEAR STARTING POINT
- LDA* LINE X1
- STA X1P
- IRS LINE
- LDA* LINE Y1
- STA Y1P
- IRS LINE
- LDA* LINE X2
- STA X2P
- IRS LINE
- LDA* LINE Y2
- STA Y2P
- IRS LINE TALLY RETURN ADDRESS
- IRS LINE AGAIN FOR FORTRAN IV COMPATIBILITY
-*
- LDA X
- SUB* X1P
- SPL SKIP IF SIGN PLUS
- TCA TWO'S COMPLEMENT IF NEEDED
- STA D1
- LDA Y
- SUB* Y1P
- SPL
- TCA
- ADD D1
- STA D1
-*
- LDA X
- SUB* X2P
- SPL SKIP IF SIGN PLUS
- TCA TWO'S COMPLEMENT IF NEEDED
- STA D2
- LDA Y
- SUB* Y2P
- SPL
- TCA
- ADD D2
- CAS D1
- JMP D2BG D2 IS BIGGER!
- NOP
-*
-D1BG LDA* X2P DIFFERENCE 1 IS BIGGER, SO START AT POINT X2,Y2
- STA XA
- LDA* Y2P
- STA YA
- LDA* X1P
- STA XB
- LDA* Y1P
- STA YB
- JMP WOKI WORK!
-*
-D2BG LDA* X1P DIFFERENCE 2 IS BIGGER, SO START AT POINT X1,Y1
- STA XA
- LDA* Y1P
- STA YA
- LDA* X2P
- STA XB
- LDA* Y2P
- STA YB
-*
-WOKI LDA X TEST IF STARTING POINT IST CURRENT POSITION
- CAS XA
- JMP MV1
- JMP *+2
- JMP MV1
- LDA Y
- CAS YA
- JMP MV1
- JMP *+2
- JMP MV1
- JMP NM1
-*
-MV1 CALL PL$PU MOVE TO THE STARTING POSITION
- CALL PL$MV
- DAC XA
- DAC YA
- DAC 0
-NM1 CALL PL$PD WE ARE AT BEGINNING OF LINE
- CALL PL$MV
- DAC XB
- DAC YB
- DAC 0
- JMP* LINE END OF THE LINE :-)
-*
-*
-X1P DAC 0 ARGUMENT POINER TO X1
-Y1P DAC 0 ARGUMENT POINER TO Y1
-X2P DAC 0 ARGUMENT POINER TO X2
-Y2P DAC 0 ARGUMENT POINER TO Y2
-XA DEC 0 REAL FIRST POINT X COORDINATE
-YA DEC 0 REAL FIRST POINT Y COORDINATE
-XB DEC 0 REAL SECOND POINT X COORDINATE
-YB DEC 0 REAL SECOND POINT Y COORDINATE
-D1 DEC 0 ORTHOGONAL WAY LENGTH FROM CURRENT POS TO P1
-D2 DEC 0 ORTHOGONAL WAY LENGTH FROM CURRENT POS TO P2
-*
-*
-********************************************************************************
-*
-RST DAC ** SET POINT ZERO
- STA X
- CRA
- STA Y
- IMA X
- JMP* RST
-*
-*
-MOVE DAC ** MOVE YA!
-*
- LDA* MOVE GET PARAMETERS
- STA TMP
- LDA* TMP
- STA XN
- SUB X
- STA DX
- IRS MOVE
- LDA* MOVE
- STA TMP
- LDA* TMP
- STA YN
- SUB Y
- STA DY
- IRS MOVE
- IRS MOVE CORRECT RETURN ADDRESS
-*
-* HLT
-* LDA YN
-* IAB
-* LDA XN
-* HLT
-* JMP 1
-*
- LDA DX
- SMI
- JMP DXP DX POSITIVE
-* DX NEGATIVE
- TCA
- STA DX NOW, DX IS POSITIVE!
- LDA ML
- STA STPX
- LDA MUL
- STA DIYP
- LDA MDL
- STA DIYN
- JMP DXNP
-DXP LDA MR
- STA STPX
- LDA MUR
- STA DIYP
- LDA MDR
- STA DIYN
- JMP DXNP
-*
-DXNP LDA DY
- SMI
- JMP DYP DY POSITIVE
-* DY NEGATIVE
- TCA
- STA DY NOW, DY IS POSITIVE!
- LDA MD
- STA STPY
- LDA DIYN
- STA STPD
- JMP DYNP
-DYP LDA MU
- STA STPY
- LDA DIYP
- STA STPD
-*
-DYNP LDA DX
- CAS DY
- JMP XGTY DX GREATER DY
-YGTX NOP DY GREATER OR EQUAL DX
- LDA STPY
- STA STPL
- LDA STPX
- STA STPS
- LDA DX
- STA DS
- LDA DY
- STA DL
- JMP GTE
-*
-XGTY LDA STPY
- STA STPS
- LDA STPX
- STA STPL
- LDA DX
- STA DL
- LDA DY
- STA DS
-*
-GTE LDA DL LONG DISTANCE
- LGR 1 DIVIDE BY TWO
- STA ERR INITIALIZE ERROR COUNTER
-*
-*
-*
-LOOP LDA DL
- SNZ
- JMP FNSH END OF WORK - HOPE SO....
- SUB =1 DECREMENT DL
- STA DL
- LDA ERR
- SUB DS
- STA ERR
- SMI SKIP IF NOT OVERFLOWN (MINUS)
- JMP NDIA NO DIAG STEP
- ADD DL RELOAD
- STA ERR
- LDA DS
- SUB =1
- STA DS
- JST* STPD
- JMP STEN END OF STEP
-NDIA JST* STPL LONG DIR STEP ONLY
-STEN JMP LOOP RELOOP
-*
-FNSH LDA XN
- STA X
- LDA YN
- STA Y
- JMP* MOVE END OF THE ROUTINE
-**********************
-*
-* VARIABLES
-*
-X DEC 0 PEN POSITION, X VALUE
-Y DEC 0 PEN POSITION, Y VALUE
-XN DEC 0 NEW PEN POSITION, X VALUE
-YN DEC 0 NEW PEN POSITION, Y VALUE
-DX DEC 0 X DIFFERENCE TO GO
-DY DEC 0 Y DIFFERENCE TO GO
-*
-DL DEC 0 LONG DISTANCE NEGATIVE
-DS DEC 0 SHORT DISTANCE NEGATIVE
-STPL DAC ** ROUTINE TO LONG DISTANCE STEP
-STPS DAC ** ROUTINE TO SHORT DISTANCE STEP
-STPD DAC ** ROUTINE TO DIAGONAL STEP
-ERR DEC 0 ERROR COUNTER
-*
-STPX DAC ** X STEP ROUTINE
-STPY DAC ** Y STEP ROUTINE
-DIYP DAC ** DIAGONAL X-DIR+UP STEP ROUTINE
-DIYN DAC ** DIAGONAL X-DIR+DOWN STEP ROUTINE
-TMP DAC ** UNIVERSAL POINTER
-*
-* GLUE IN THE MOVEMENT
-MU XAC PL$U
-MD XAC PL$D
-ML XAC PL$L
-MR XAC PL$R
-MUL XAC PL$UL
-MUR XAC PL$UR
-MDL XAC PL$DL
-MDR XAC PL$DR
-*
-*
- END
+++ /dev/null
-* (PL$U) REV 1.0 LOW LEVEL INCREMENTAL PLOTTER DRIVER
-*
-*
-* PROGRAM TITLE: PL$U (PL$U, PL$D, PL$L, PL$R, PL$PU, PL$PD,
-* PL$UR,PL$UL,PL$DR,PL$DL)
-*
-* LOW LEVEL PEN PLOTTER ROUTINES
-*
-* REVISIONS:
-* 1.0 (2007-05-27)
-* 1.1 (2007-11-08) - ADDED PEN POSITION TRACKING
-* TO PL$PU AND PL$PD
-*
-* AUTHOR:
-*
-* PHILIPP HACHTMANN
-*
-*
-* PURPOSE:
-*
-* LOW LEVEL PEN PLOTTER DRIVER ROUTINES PROVIDING HARDWARE
-* ABSTRACTION BY PROVIDING SIMPLE ROUTINES FOR PEN MOVEMENT.
-*
-*
-* STORAGE:
-*
-* 100 (OCTAL)
-* 64 (DECIMAL)
-*
-*
-* USAGE:
-*
-* CALL PL$U - STEP UP
-* CALL PL$D - STEP DOWN
-* CALL PL$L - STEP LEFT
-* CALL PL$R - STEP RIGHT
-* CALL PL$PU - RAISE PEN
-* CALL PL$PD - LOWER PEN
-*
-* CALL PL$UR - STEP UP+RIGHT
-* CALL PL$UL - STEP UP+LEFT
-* CALL PL$DR - STEP DOWN+RIGHT
-* CALL PL$DL - STEP DOWN+LEFT
-*
-*
-*
-********************************************************************************
-*
-*
-PADR EQU '40 PORT ADDRESS OF THE PLOTTER INTERFACE
-*
-*
- SUBR PL$U,UP
- SUBR PL$D,DOWN
- SUBR PL$R,RGHT
- SUBR PL$L,LEFT
- SUBR PL$PU,PENU
- SUBR PL$PD,PEND
- SUBR PL$UR,UR
- SUBR PL$UL,UL
- SUBR PL$DR,DR
- SUBR PL$DL,DL
-*
-*
- REL THIS IS A RELOCATABLE OBJECT
- ORG '0
-*
-*
-OUT DAC ** DO THE MOVEMENT
- OTA PADR
- JMP *-1
- JMP* OUT
-*
-*
-UP DAC **
- LDA CUP
- JST OUT
- JMP* UP
-*
-*
-DOWN DAC **
- LDA CDWN
- JST OUT
- JMP* DOWN
-*
-*
-RGHT DAC **
- LDA CRGT
- JST OUT
- JMP* RGHT
-*
-*
-LEFT DAC **
- LDA CLFT
- JST OUT
- JMP* LEFT
-*
-*
-PENU DAC **
- LDA PEN
- SNZ
- JMP* PENU
- CRA
- STA PEN
- LDA CPNU
- JST OUT
- JMP* PENU
-*
-*
-PEND DAC **
- LDA PEN
- SZE
- JMP* PEND
- LDA CPND
- JST OUT
- IRS PEN
- JMP* PEND
-*
-*
-UL DAC **
- LDA CUP
- ADD CLFT
- JST OUT
- JMP* UL
-*
-*
-UR DAC **
- LDA CUP
- ADD CRGT
- JST OUT
- JMP* UR
-*
-*
-DL DAC **
- LDA CDWN
- ADD CLFT
- JST OUT
- JMP* DL
-*
-*
-DR DAC **
- LDA CDWN
- ADD CRGT
- JST OUT
- JMP* DR
-*
-*
-* CONSTANTS
-CUP OCT '1
-CDWN OCT '2
-CLFT OCT '4
-CRGT OCT '10
-CPNU OCT '20
-CPND OCT '40
-*
-PEN DEC 0 PEN STATE: 1=DOWN
-*
- END