|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 2304 (0x900)
Types: TextFile
Names: »DEBUG.SL5«
└─⟦c50ca4728⟧ Bits:30003533 StackWorks FORTH version 1.2 for Z-80
└─⟦this⟧ »DEBUG.SL5«
( Copyright 1980 The Stackworks. All rights reserved )
( DEBUGGING UTILITIES )
: DASCII 7F & DUP 20 < OVER 7D > ø IF
DROP 2E
ENDIF TCH ;
: DMP 2DUP U> IF
2DUP DO
I B@ B.
LOOP SPACE DO
I B@ DASCII
LOOP CR
ELSE 2DROP
ENDIF ;
: DUMP DO
I X. I 10 + I DMP 10
+LOOP ;
: HEXD 30 - DUP 9 > IF
7 -
ENDIF DUP 0 >= OVER 10 < & DUP NOT IF
SWAP DROP
ENDIF ;
: MODIFY DUP 1 BEGIN WHILE
2DUP = IF
CR 10 + SWAP 2DUP DUMP DUP X.
ENDIF CIN DUP 1B = IF
0
ELSE DUP 0D = IF
2DROP DUP 1
ELSE HEXD IF
4 <-L CIN DUP 1B = IF
DROP 0
ELSE DUP 0D = IF
2DROP DROP DUP
ELSE HEXD IF
ø OVER B!
ELSE DROP
ENDIF 1+ SPACE
ENDIF 1
ENDIF
ELSE 2 SPACES 1+ 1
ENDIF
ENDIF
ENDIF
REPEAT 2DROP DROP CR ;
( STACK DUMPING ROUTINES )
: SDMP BEGIN
2DUP U> WHILE
DUP @ X. DUP @ DUP BSWAP DASCII DASCII CR 2 +
REPEAT 2DROP ;
: PSDMP SSIZE STACK SP@ 2 + SDMP ;
: RSDMP RSIZE RSTACK RP@ 2 + SDMP ;
( BREAKPOINT WORDS )
0 VARIABLE BREAKAD
: $*BREAK* CR T" BREAK: " R> DUP @ SYMTP @ + 5 + DUP 1+
SWAP B@ TYPE SPACE 2 + DUP X. CR BREAKAD ! INTRLP ;
: *BREAK* 'B $*BREAK* , CURRENT @ @ , ;
IMP *BREAK*
: *UB* R> R> R> 2DROP DROP BREAKAD @ >R ;
( SYM' , SYMDUMP )
: SYMTYPE DUP X. SPACE DUP 1+ @ DUP X. SYMTP @ + X. SPACE
SPACE DUP 3 + @ X. SPACE SPACE DUP B@ B. SPACE 6 + DUP 1-
B@ TYPE CR ;
: SYM' COMPILE 'S SYMTYPE ;
: SYMDUMP CONTEXT @ BEGIN
SYMTP @ + DUP SYMTYPE DUP 1+ @ 0= IF
3 + @ DUP IF
@ 0
ELSE DROP 1
ENDIF
ELSE 1+ @ 0
ENDIF
END ;
ÆEND-OF-FILEÅ
«eof»