|
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 - download
Length: 4224 (0x1080) Types: TextFile Names: »DUMP.ASM«
└─⟦0111921f5⟧ Bits:30003299 En del programmer til RC703 └─ ⟦this⟧ »DUMP.ASM« └─⟦0111e8332⟧ Bits:30004183 COMAL-80 ver. 2.02 plus ASM, ED, DDT m.m. └─ ⟦this⟧ »DUMP.ASM« └─⟦149f13eca⟧ Bits:30005349 SW1311/I5 RC703 CP/M System diskette └─ ⟦this⟧ »DUMP.ASM« └─⟦1b6e6286b⟧ Bits:30003265 CIS COBOL version 4.4 til CP/M-80 (BG/0000/BL) └─ ⟦this⟧ »DUMP.ASM« └─⟦3c4b1fe15⟧ Bits:30003272 CP/M ver. 2.2 rel 2.2 til RC700 └─ ⟦this⟧ »DUMP.ASM« └─⟦453bf3224⟧ Bits:30003070 RC703 - 56K CP/M 2.2 rel 1.2 └─⟦453bf3224⟧ Bits:30004758 SW1311 CP/M ver. 2.2 rel 1.2 til RC703 └─ ⟦this⟧ »DUMP.ASM« └─⟦48ece6934⟧ Bits:30004288 CP/M Utilities └─ ⟦this⟧ »DUMP.ASM« └─⟦4e609f9ab⟧ Bits:30005258 CP/M 2.2 └─ ⟦this⟧ »DUMP.ASM« └─⟦5081a789c⟧ Bits:30005385 Diverse CP/M-80 utilities (CR8 Callan) └─ ⟦this⟧ »DUMP.ASM« └─⟦56a8da4b2⟧ Bits:30005259 CP/M boot med menu start └─ ⟦this⟧ »DUMP.ASM« └─⟦634aaa75a⟧ Bits:30005763 SW1711/I5 RC702 CP/M System diskette Release 2.2 └─ ⟦this⟧ »DUMP.ASM« └─⟦67ad729d7⟧ Bits:30005764 SW1711/I8 RC702 CP/M System diskette Release 2.1 └─ ⟦this⟧ »DUMP.ASM« └─⟦693a7a378⟧ Bits:30003305 COMPAS, RcTekst, RcKalk, RCComal80 til RC703 └─ ⟦this⟧ »DUMP.ASM« └─⟦6bdda2365⟧ Bits:30005253 COMPAS Pascal v2.21 til CR7 └─ ⟦this⟧ »DUMP.ASM« └─⟦6d106210f⟧ Bits:30004187 COMET programmer - OVERSIGT, COMDISK, SKRIV m.m. └─ ⟦this⟧ »DUMP.ASM« └─⟦7e35b155b⟧ Bits:30005838 CP/M 58K v. 2.2 med COMPAS Pascal 2.13DK (RC700) └─ ⟦this⟧ »DUMP.ASM« └─⟦82da8da71⟧ Bits:30005959 SW1311 CP/M ver. 2.2 rel 1.0 til RC703 └─ ⟦this⟧ »DUMP.ASM« └─⟦832e7e234⟧ Bits:30003263 Butler systemdiskette └─⟦832e7e234⟧ Bits:30004286 Butler systemdiskette └─ ⟦this⟧ »DUMP.ASM« └─⟦9020b0a71⟧ Bits:30003944 SW1711/I5 RC702 CP/M System diskette Release 2.3 └─ ⟦this⟧ »DUMP.ASM« └─⟦b40121bef⟧ Bits:30005257 CP/M v.2.2 KOPI └─ ⟦this⟧ »DUMP.ASM« └─⟦cbe10af20⟧ Bits:30004115 SW1711/I5 RC702 CP/M System diskette Release 2.0 └─ ⟦this⟧ »DUMP.ASM« └─⟦ccbc2d84d⟧ Bits:30004597 Boot 60k CP/M (Butler) └─ ⟦this⟧ »DUMP.ASM« └─⟦ccde41672⟧ Bits:30007376 SW7503/2 RC700 CP/M 2.2 System Diskette └─ ⟦this⟧ »DUMP.ASM« └─⟦d823d3189⟧ Bits:30004365 Butler CP/M 2.2 systemdiskette fra LFU └─ ⟦this⟧ »DUMP.ASM« └─⟦dea633962⟧ Bits:30003306 PROMbrænder software til RC703 └─ ⟦this⟧ »DUMP.ASM« └─⟦e5d67f3da⟧ Bits:30003315 SW1711/I5 RC702 CP/M System diskette Release 2.1 └─ ⟦this⟧ »DUMP.ASM« └─⟦eaa41e905⟧ Bits:30003314 SW1711/I5 CP/M ver. 2.2 rel 2.1 systemdiskette til RC700 └─ ⟦this⟧ »DUMP.ASM« └─⟦fc07af218⟧ Bits:30005762 SW1711/I5 RC702 CP/M System diskette Release 1.4 └─ ⟦this⟧ »DUMP.ASM« └─⟦fd40967f2⟧ Bits:30004196 DItamat Systemdiskette └─ ⟦this⟧ »DUMP.ASM«
; FILE DUMP PROGRAM, READS AN INPUT FILE AND PRINTS IN HEX ; ; COPYRIGHT (C) 1975, 1976, 1977, 1978 ; DIGITAL RESEARCH ; BOX 579, PACIFIC GROVE ; CALIFORNIA, 93950 ; ORG 100H BDOS EQU 0005H ;DOS ENTRY POINT CONS EQU 1 ;READ CONSOLE TYPEF EQU 2 ;TYPE FUNCTION PRINTF EQU 9 ;BUFFER PRINT ENTRY BRKF EQU 11 ;BREAK KEY FUNCTION (TRUE IF CHAR READY) OPENF EQU 15 ;FILE OPEN READF EQU 20 ;READ FUNCTION ; FCB EQU 5CH ;FILE CONTROL BLOCK ADDRESS BUFF EQU 80H ;INPUT DISK BUFFER ADDRESS ; ; NON GRAPHIC CHARACTERS CR EQU 0DH ;CARRIAGE RETURN LF EQU 0AH ;LINE FEED ; ; FILE CONTROL BLOCK DEFINITIONS FCBDN EQU FCB+0 ;DISK NAME FCBFN EQU FCB+1 ;FILE NAME FCBFT EQU FCB+9 ;DISK FILE TYPE (3 CHARACTERS) FCBRL EQU FCB+12 ;FILE'S CURRENT REEL NUMBER FCBRC EQU FCB+15 ;FILE'S RECORD COUNT (0 TO 128) FCBCR EQU FCB+32 ;CURRENT (NEXT) RECORD NUMBER (0 TO 127) FCBLN EQU FCB+33 ;FCB LENGTH ; ; SET UP STACK LXI H,0 DAD SP ; ENTRY STACK POINTER IN HL FROM THE CCP SHLD OLDSP ; SET SP TO LOCAL STACK AREA (RESTORED AT FINIS) LXI SP,STKTOP ; READ AND PRINT SUCCESSIVE BUFFERS CALL SETUP ;SET UP INPUT FILE CPI 255 ;255 IF FILE NOT PRESENT JNZ OPENOK ;SKIP IF OPEN IS OK ; ; FILE NOT THERE, GIVE ERROR MESSAGE AND RETURN LXI D,OPNMSG CALL ERR JMP FINIS ;TO RETURN ; OPENOK: ;OPEN OPERATION OK, SET BUFFER INDEX TO END MVI A,80H STA IBP ;SET BUFFER POINTER TO 80H ; HL CONTAINS NEXT ADDRESS TO PRINT LXI H,0 ;START WITH 0000 ; GLOOP: PUSH H ;SAVE LINE POSITION CALL GNB POP H ;RECALL LINE POSITION JC FINIS ;CARRY SET BY GNB IF END FILE MOV B,A ; PRINT HEX VALUES ; CHECK FOR LINE FOLD MOV A,L ANI 0FH ;CHECK LOW 4 BITS JNZ NONUM ; PRINT LINE NUMBER CALL CRLF ; ; CHECK FOR BREAK KEY CALL BREAK ; ACCUM LSB = 1 IF CHARACTER READY RRC ;INTO CARRY JC FINIS ;DON'T PRINT ANY MORE ; MOV A,H CALL PHEX MOV A,L CALL PHEX NONUM: INX H ;TO NEXT LINE NUMBER MVI A,' ' CALL PCHAR MOV A,B CALL PHEX JMP GLOOP ; FINIS: ; END OF DUMP, RETURN TO CCP ; (NOTE THAT A JMP TO 0000H REBOOTS) CALL CRLF LHLD OLDSP SPHL ; STACK POINTER CONTAINS CCP'S STACK LOCATION RET ;TO THE CCP ; ; ; SUBROUTINES ; BREAK: ;CHECK BREAK KEY (ACTUALLY ANY KEY WILL DO) PUSH H! PUSH D! PUSH B; ENVIRONMENT SAVED MVI C,BRKF CALL BDOS POP B! POP D! POP H; ENVIRONMENT RESTORED RET ; PCHAR: ;PRINT A CHARACTER PUSH H! PUSH D! PUSH B; SAVED MVI C,TYPEF MOV E,A CALL BDOS POP B! POP D! POP H; RESTORED RET ; CRLF: MVI A,CR CALL PCHAR MVI A,LF CALL PCHAR RET ; ; PNIB: ;PRINT NIBBLE IN REG A ANI 0FH ;LOW 4 BITS CPI 10 JNC P10 ; LESS THAN OR EQUAL TO 9 ADI '0' JMP PRN ; ; GREATER OR EQUAL TO 10 P10: ADI 'A' - 10 PRN: CALL PCHAR RET ; PHEX: ;PRINT HEX CHAR IN REG A PUSH PSW RRC RRC RRC RRC CALL PNIB ;PRINT NIBBLE POP PSW CALL PNIB RET ; ERR: ;PRINT ERROR MESSAGE ; D,E ADDRESSES MESSAGE ENDING WITH "$" MVI C,PRINTF ;PRINT BUFFER FUNCTION CALL BDOS RET ; ; GNB: ;GET NEXT BYTE LDA IBP CPI 80H JNZ G0 ; READ ANOTHER BUFFER ; ; CALL DISKR ORA A ;ZERO VALUE IF READ OK JZ G0 ;FOR ANOTHER BYTE ; END OF DATA, RETURN WITH CARRY SET FOR EOF STC RET ; G0: ;READ THE BYTE AT BUFF+REG A MOV E,A ;LS BYTE OF BUFFER INDEX MVI D,0 ;DOUBLE PRECISION INDEX TO DE INR A ;INDEX=INDEX+1 STA IBP ;BACK TO MEMORY ; POINTER IS INCREMENTED ; SAVE THE CURRENT FILE ADDRESS LXI H,BUFF DAD D ; ABSOLUTE CHARACTER ADDRESS IS IN HL MOV A,M ; BYTE IS IN THE ACCUMULATOR ORA A ;RESET CARRY BIT RET ; SETUP: ;SET UP FILE ; OPEN THE FILE FOR INPUT XRA A ;ZERO TO ACCUM STA FCBCR ;CLEAR CURRENT RECORD ; LXI D,FCB MVI C,OPENF CALL BDOS ; 255 IN ACCUM IF OPEN ERROR RET ; DISKR: ;READ DISK FILE RECORD PUSH H! PUSH D! PUSH B LXI D,FCB MVI C,READF CALL BDOS POP B! POP D! POP H RET ; ; FIXED MESSAGE AREA SIGNON: DB 'FILE DUMP VERSION 1.4$' OPNMSG: DB CR,LF,'NO INPUT FILE PRESENT ON DISK$' ; VARIABLE AREA IBP: DS 2 ;INPUT BUFFER POINTER OLDSP: DS 2 ;ENTRY SP VALUE FROM CCP ; ; STACK AREA DS 64 ;RESERVE 32 LEVEL STACK STKTOP: ; END «eof»