|
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: 17792 (0x4580) Types: TextFile Names: »EDC.MAC«
└─⟦c9df7130d⟧ Bits:30005915 Pascal MT+ Release 5.2 (Jet-80) └─ ⟦this⟧ »EDC.MAC«
; ************************************* ; * EDITOR FOR CHARACTER-GENERATORS * ; * BY: B.G.JOERGENSEN, OZ9DX * ; ************************************* ; .Z80 ; START: LD SP,STAK LD HL,0017H ;CURSOR BOTTOM CALL CURSOR LD B,25 ;25 LINES NEWL: LD DE,5020H ;80+SPACE LD C,CONOUT LOOP0: PUSH DE PUSH BC CALL BDOS POP BC POP DE DEC D JR NZ,LOOP0 PUSH DE PUSH BC LD DE,MESS0 CALL PRINT POP BC POP DE DEC B JR NZ,NEWL CALL RVIDEO LD HL,1517H PUSH HL CALL CURSOR LD DE,MESS01 CALL PRINT POP HL PUSH HL CALL CURSOR LD DE,MESS02 CALL PRINT POP HL CALL CURSOR LD DE,MESS03 CALL PRINT LD D,10 ;UP 10 LINES LOOP1: LD C,CONOUT LD E,LF PUSH DE CALL BDOS CALL WAIT POP DE DEC D JR NZ,LOOP1 LD HL,1500H CALL CURSOR LD DE,MESS04 CALL PRINT CALL LWAIT ;LONG WAIT AGAIN: LD DE,MESS05 CALL PRINT LD HL,0005H LD IX,ADRA CALL ASKLD ;LOAD A? LD HL,(ADRA) LD (ADRAF),HL LD A,B LD (SHOWA),A XOR A LD (AINIT),A LD IY,CESS06 LD A,'B' LD (IY),A LD HL,000AH LD IX,ADRB CALL ASKLD ;LOAD B? LD A,B LD (SHOWB),A LD IY,CESS06 LD A,'C' LD (IY),A LD HL,000FH ;LOAD C? LD IX,ADRC CALL ASKLD LD A,B LD (SHOWC),A NSHW: LD DE,MESS09 CALL PRINT CALL CIN CP 'F'+1 JR NC,NSHW LD (ROW),A LD DE,MESS1 CALL PRINT CALL NVIDEO LD HL,(ADRA) LD DE,(ADRB) XOR A ; 0 CARRY SBC HL,DE ;CALC DIFF LD (LDIFB),HL LD (DIFFB),HL LD HL,(ADRA) LD DE,(ADRC) SBC HL,DE LD (LDIFC),HL LD (DIFFC),HL LD HL,0005H CALL CURSOR LD DE,MESS2 CALL PRINT LD HL,0006H CALL CURSOR LD DE,MESS3 CALL PRINT LD HL,2A06H CALL CURSOR LD DE,MESS3 CALL PRINT LD A,(SHOWA) ;A LOADED? CP 'Y' JR Z,NOCLR CALL MEMCLR ;CLEAR 4K RAM NOCLR: LD DE,GRAPH ;GRAPHIC MODE CALL PRINT LD HL,2606H WIND: CALL WINDOW JR NZ,WIND LD HL,0007H LD A,(ROW) LD E,A DEC E RAST1: CALL RASTER JR NZ,RAST1 LD HL,2A07H LD A,(ROW) LD E,A DEC E RAST2: CALL RASTER JR NZ,RAST2 LD HL,2A06H ;SHOW B CALL CURSOR CALL RVIDEO LD E,'B' ;INVERTED VIDEO LD C,CONOUT CALL BDOS CALL NVIDEO LD HL,(ADRA) ;START ADR LD DE,(ZLINE) ;CALC ADR TOP LINE LD A,7 ;TOP=LINE 7 NLINE: CP E JR Z,TLINE DEC E DEC HL JR NLINE TLINE: LD (TOPADR),HL LD DE,15 ;BOTTOM LINE ADR ADD HL,DE LD (BOTADR),HL LD (CADR),HL LD (INIADR),HL TLX: LD HL,(TOPADR) ;RESTORE HL LD A,(REF) LD BC,(DIFFB) CP 1 ;REF B JR Z,BTLX LD BC,(DIFFC) BTLX: LD (DIFF),BC LD A,(SHMOV) CP 0 JR NZ,TLX1 LD A,(SCROLL) CP 3 ;SCROLL BOTH JR Z,TLX1 CP 2 ;B ONLY JR Z,TLX2 TLX1: XOR A LD (SHMOV),A LD DE,1A07H ;CURSOR TOP LINE LD A,03H LD (HPOS),A CALL TLINE1 LD A,(SCROLL) CP 1 JP Z,TRYAGN LD A,(REF) CP 1 LD BC,(DIFFB) JR Z,TLX2 LD BC,(DIFFC) TLX2: LD (DIFF),BC BSHO: LD BC,(DIFF) LD DE,4607H LD HL,(TOPADR) XOR A ;CLR C SBC HL,BC LD A,2DH ;HOR.POS LD (HPOS),A CALL TLINE1 JP TRYAGN ; ; TLINE1: PUSH HL ;SAVE ADR IN MEM PUSH HL LD A,(HL) ;READ MEM LD (MBYTE),A CALL D2HEX ;CONV.TO DISPLAY POP HL PUSH DE ;SAVE CURSOR ADR PUSH DE ;EX HL,DE CALL DHEX ;HEX DISPLAY POP HL PUSH HL LD A,(HPOS) ;BIT 7 LOC. LD H,A CALL MPAT POP HL CALL CURSOR LD DE,DPLAY CALL PRINT POP DE ;CURSOR(HL) POP HL ;MEM-ADR LD A,22 ;LAST LINE CP E RET Z INC HL INC DE JR TLINE1 ; TRYAGN: LD HL,(CPOS) ;CURSOR START ADR. CALL CURSOR LD A,(CONT) CP 0 ;CONT. SCROLL? JR NZ,TRYAX ;YEPS CALL CIN TRYAX: LD HL,CTAB LD IX,JTAB-2 LD BC,23 TNXT: INC IX INC IX CPI JP PO,WRKEY JR NZ,TNXT LD L,(IX) LD H,(IX+1) JP (HL) ; WRKEY: CALL BELL JP TRYAGN ; CUP: LD HL,(CPOS) LD A,7-1 ;ABOVE TOP LINE DEC L CP L JR Z,FAIL1 LD DE,(CADR) ;ADR IN MEM DEC DE CUPX: LD (CADR),DE LD (CPOS),HL JP TRYAGN FAIL1: CALL BELL JP TRYAGN ; CDOWN: LD HL,(CPOS) LD A,22+1 INC L CP L JR Z,FAIL1 LD DE,(CADR) INC DE LD (CADR),DE JR CUPX ; CRIGHT: LD HL,(CPOS) LD A,2*8+3 INC H INC H CRIX: CP H JR Z,FAIL1 LD (CPOS),HL LD A,(VPOS) ;HOR POS SRL A LD (VPOS),A JP TRYAGN ; CLEFT: LD HL,(CPOS) LD A,3-2 DEC H DEC H CP H JR Z,FAIL1 LD (CPOS),HL LD A,(VPOS) SLA A LD (VPOS),A JP TRYAGN ; ; NEXT: LD B,03H ;^C PUSH BC LD A,(SCROLL) CP 2 ;B ONLY? JR Z,NEX2 CP 1 ;A ONLY? JR Z,NEX1 NEX0: LD A,(VPOS1) LD (VPOS),A LD HL,(CPOS1) LD (CPOS),HL LD HL,(INIADR) LD DE,(OFFSET) ADD HL,DE LD (INIADR),HL LD (CADR),HL LD HL,(TOPADR) ADD HL,DE LD (TOPADR),HL JP NXTXX ; NEX1: LD A,(REF) ;B OR C? CP 1 JR Z,BNEX LD HL,(DIFFC) LD DE,(OFFSET) ADD HL,DE LD (DIFFC),HL JR NEX0 ; BNEX: LD HL,(DIFFB) LD DE,(OFFSET) ADD HL,DE LD (DIFFB),HL JR NEX0 ; NEX2: LD A,(REF) CP 1 JR Z,BNEX2 LD DE,(OFFSET) LD HL,(DIFFC) XOR A SBC HL,DE LD (DIFFC),HL JP NXTXX ; BNEX2: LD DE,(OFFSET) LD HL,(DIFFB) XOR A SBC HL,DE LD (DIFFB),HL NXTXX: LD A,(CSCRL) CP 0 JR Z,BNEXX CALL WAIT LD C,06H ;INPUT? LD E,0FFH CALL BDOS CP 0 JR NZ,CHRDY POP BC LD A,B LD (CONT),A JP TLX CHRDY: XOR A LD (CSCRL),A LD (CONT),A BNEXX: POP BC JP TLX ; SCCONT: XOR A CPL LD (CSCRL),A JP TRYAGN ; PREV: LD B,12H ;^R PUSH BC LD A,(SCROLL) CP 2 JR Z,PRV2 CP 1 JR Z,PRV1 PRV0: LD A,(VPOS1) LD (VPOS),A LD HL,(CPOS1) LD (CPOS),HL LD HL,(INIADR) LD DE,(OFFSET) XOR A SBC HL,DE LD (INIADR),HL LD (CADR),HL LD HL,(TOPADR) XOR A SBC HL,DE LD (TOPADR),HL JP NXTXX ; PRV1: LD A,(REF) CP 1 JR Z,BPRV LD HL,(DIFFC) LD DE,(OFFSET) XOR A SBC HL,DE LD (DIFFC),HL JR PRV0 ; BPRV: LD HL,(DIFFB) LD DE,(OFFSET) XOR A SBC HL,DE LD (DIFFB),HL JR PRV0 ; PRV2: LD A,(REF) CP 1 JR Z,BPRV2 LD DE,(OFFSET) LD HL,(DIFFC) ADD HL,DE LD (DIFFC),HL JP NXTXX ; BPRV2: LD DE,(OFFSET) LD HL,(DIFFB) ADD HL,DE LD (DIFFB),HL JP NXTXX ; ; SETBIT: LD E,'p' LD C,CONOUT CALL BDOS LD DE,(CADR) LD A,(DE) ;GET BYTE LD HL,VPOS OR (HL) SBTX: LD (DE),A CALL D2HEX LD HL,(CPOS) LD H,20H ;MOVE CURSOR CALL CURSOR LD DE,DPLAY+6 CALL PRINT LD HL,(CPOS) CALL CURSOR JP TRYAGN ; RSTBIT: LD E,20H ;SPACE LD C,CONOUT CALL BDOS LD HL,(CADR) LD A,(VPOS) CPL AND (HL) LD DE,(CADR) JR SBTX ; CINIT: LD HL,(CPOS) LD (CPOS1),HL LD HL,(CADR) ;CURRENT ADR LD (INIADR),HL LD A,(VPOS) LD (VPOS1),A JP TRYAGN ; SCRAB: LD A,3 LD (SCROLL),A LD (INIT),A JP TRYAGN ; REFB: LD A,1 LD (REF),A LD HL,2A06H ;SHOW B CALL CURSOR CALL RVIDEO LD E,'B' LD C,CONOUT CALL BDOS CALL NVIDEO LD BC,(DIFFB) JP TLX2 ; SCRA: LD A,1 LD (SCROLL),A LD (INIT),A JP TRYAGN ; REFC: LD A,2 LD (REF),A LD HL,2A06H CALL CURSOR CALL RVIDEO LD E,'C' LD C,CONOUT CALL BDOS CALL NVIDEO LD BC,(DIFFC) JP TLX2 ; SCRB: LD A,2 LD (SCROLL),A LD (INIT),A JP TRYAGN ; AEQUB: LD A,(REF) CP 1 JR Z,EQUB LD DE,(LDIFC) LD (DIFFC),DE JP TLX EQUB: LD DE,(LDIFB) LD (DIFFB),DE JP TLX ; MOVBA: LD A,(REF) LD (SHMOV),A CP 1 ;B? JR Z,MOVB XOR A ;C=0 LD HL,(TOPADR) LD DE,(DIFFC) SBC HL,DE LD DE,(TOPADR) LD BC,16 LDIR JP TLX ; MOVB: XOR A LD HL,(TOPADR) LD DE,(DIFFB) SBC HL,DE LD DE,(TOPADR) LD BC,16 LDIR JP TLX ; BPAGE: LD DE,16 LD (OFFSET),DE JP TRYAGN ; FSAVE: CALL RVIDEO LD DE,XGRAPH CALL PRINT LD DE,MES07A CALL PRINT CALL CLRFCB CALL FNAME CALL FCBINI JR C,OKSV LD DE,MESS0A CALL PRINT CALL LWAIT JR FSAVE OKSV: CALL FILOP CP 0FFH JR Z,OKNF LD DE,MESS0D CALL PRINT CALL CIN RES 5,A CP 'Y' JP NZ,QUIT LD DE,FCBA LD C,DELFIL CALL BDOS ;DELETE FILE OKNF: CALL FILCR ;MAKE FILE OKNF1: LD DE,MESS0E CALL PRINT CALL CIN SUB 30H CP 0 JR Z,CLSOK LD DE,(ADRAF) OREX: PUSH AF LD B,8 ;8*128=1K OREC: PUSH BC PUSH DE LD C,SETDMA CALL BDOS CALL SEQWR POP DE LD HL,128 ADD HL,DE EX DE,HL POP BC DEC B JR NZ,OREC POP AF DEC A JR NZ,OREX CLSOK: LD DE,FCBA LD C,CLOSEF CALL BDOS JP QUIT ; ; ; BLINE: LD DE,1 LD (OFFSET),DE JP TRYAGN ; LOCK: LD A,(REF) CP 1 ;B? JR Z,BLOCK LD DE,(DIFFC) LD (LDIFC),DE JP TRYAGN BLOCK: LD DE,(DIFFB) LD (LDIFB),DE JP TRYAGN ; EXIT: CALL RVIDEO LD DE,XGRAPH CALL PRINT LD DE,MESS0C CALL PRINT CALL CIN RES 5,A CP 'Y' JR Z,QUIT JP FSAVE ;SAVE FILE QUIT: CALL NVIDEO JP BOOT ; ASKLD: PUSH IX PUSH HL CALL CURSOR LD DE,MESS06 CALL PRINT CALL CIN RES 5,A LD B,A CP 'Y' ;YES? POP HL POP IX PUSH BC JR NZ,NSHWA CALL LOADF NSHWA: LD A,(AINIT) CP 0 ;A FILE? JR Z,NSHWB CALL LODADR NSHWB: POP BC RET ; ; LODADR: LD A,1 LD (AINIT),A PUSH IX JR LDF0 ; LOADF: LD A,2 LD (AINIT),A PUSH IX INC L LAGN: PUSH HL CALL CURSOR LD DE,MESS07 CALL PRINT ;CLR SPACE CALL CLRFCB CALL FNAME CALL FCBINI JR C,NAMOK POP HL PUSH HL CALL CURSOR LD DE,MESS0A ;FAIL NAME CALL PRINT CALL LWAIT ;SHW A WHILE POP HL JR LAGN ;TRY AGAIN NAMOK: CALL FILOP ;OPEN FILE CP 0FFH ;ANY FILE? JR NZ,OKFL LD DE,MESS0B CALL PRINT CALL LWAIT LD SP,STAK ;RESET SP JP AGAIN OKFL: POP HL ;ADRESS LDF0: INC L AGN1: PUSH HL CALL CURSOR LD DE,MESS08 CALL PRINT LD DE,SMEM PUSH DE LD C,READBF ;GET STRING CALL BDOS POP DE CALL CHEX EX DE,HL ;DE=HEX POP HL ;HL=CURSOR JP PO,AGN1 POP IX LD (IX),E LD (IX+1),D ;ADR=BIN(2) LD A,(AINIT) CP 2 JR NZ,ENDFIL GETRC: PUSH DE LD C,SETDMA CALL BDOS CALL SEQRD ;READ 1 REC POP DE CP 0 ;EOF? JR NZ,ENDFIL ;YES LD HL,128 ADD HL,DE ;UPDATE DMA EX DE,HL JR GETRC ENDFIL: SUB A LD (AINIT),A ;CLR RET RVID: DB 1BH,70H,'$' NVID: DB 1BH,71H,'$' ; RVIDEO: LD DE,RVID CALL PRINT RET ; NVIDEO: LD DE,NVID CALL PRINT RET ; PRINT: LD C,PSTRING ;PRINT STRING CALL BDOS RET ; WAIT: XOR A LD DE,0000H LD HL,2000H MWAIT: DEC HL SBC HL,DE JR NZ,MWAIT RET ; LWAIT: LD B,30H TWAIT: CALL WAIT DEC B JR NZ,TWAIT RET ; ; DISPLAY MEM PATTERN ; ******************* ; MPAT: PUSH HL CALL CURSOR POP HL LD A,(MBYTE) ;GET BYTE LD B,A LD C,08H ;8 BITS MPAT0: SLA B ;ROT BITS->CY PUSH BC ;SAVE COUNT JR C,MPAT1 CALL PSPAC ;OUT 2 SPACES JR NXBIT MPAT1: CALL PDOT ;DOT-SPACE NXBIT: POP BC DEC C JR NZ,MPAT0 RET ; PSPAC: INC H INC H ;NEXT LOC. PUSH HL LD DE,SPA2 CALL PRINT POP HL RET ; SPA2: DB ' $' ;2 SPACE DTSP: DB 'p $' ;DOT+SP ; PDOT: INC H INC H PUSH HL LD DE,DTSP CALL PRINT POP HL RET ; ; CONVERT HEX TO DISPLAYABLE HEX ; ****************************** ; DHEX: LD IX,DPLAY CALL DHEXX LD H,L INC IX CALL DHEXX RET ; D2HEX: LD IX,DPLAY+6 LD H,A DHEXX: LD A,H SRL A SRL A SRL A SRL A CALL DHEX0 INC IX LD A,H AND 0FH CALL DHEX0 RET ; DHEX0: CP 0AH JR NC,DHEX1 ADD A,30H ;ASCII DHEX2: LD (IX),A RET DHEX1: ADD A,37H JR DHEX2 ; DPLAY: DB 0,0,0,0,' $' ; ; CONVERT 4 DIG "HEX" TO TRUE HEX ; ******************************* ; CHEX: INC DE INC DE CALL CCHK RET PO SLA C SLA C SLA C SLA C LD H,C INC DE CALL CCHK RET PO LD A,C OR H LD H,A INC DE CALL CCHK RET PO SLA C SLA C SLA C SLA C LD L,C INC DE CALL CCHK RET PO LD A,C OR L LD L,A XOR A RET ; CCHK: PUSH HL LD A,(DE) ;MSB LD BC,17 LD HL,TAB2 CPIR DEC BC POP HL RET ; ; WINDOW: PUSH HL CALL CURSOR LD E,'!' LD C,CONOUT CALL BDOS WND1: POP HL INC L LD A,23 ;LAST LINE CP L RET ; RASTER: PUSH HL PUSH DE CALL CURSOR POP DE INC E LD A,'9'+1 CP E JR Z,RST3 LD A,'F'+1 CP E JR Z,RST5 RST4: LD A,'0' CP E JR NZ,RSTX POP HL LD (ZLINE),HL PUSH HL RSTX: PUSH DE LD C,CONOUT CALL BDOS POP DE JR WND1 ; RST3: LD E,'A' JR RST4 ; RST5: LD E,'0' JR RST4 ; ZLINE: DS 2 ; CIN: LD C,CONIN ;GET CONSOLE INPUT CALL BDOS RET ; BELL: LD E,07H ;BELL CODE LD C,CONOUT CALL BDOS RET ; MEMCLR: LD DE,(ADRA) LD BC,2000H MCLR: LD HL,ZERO LOP1: LDI DEC HL JP PE,LOP1 RET ZERO: DB 0 ; ; CURSOR: LD BC,2020H ;ADD SPACES ADD HL,BC LD (CURP+2),HL LD HL,CURP-1 LD B,4 CRS: INC HL PUSH HL PUSH BC LD E,(HL) LD C,CONOUT CALL BDOS POP BC POP HL DEC B JR NZ,CRS RET ; ; FILE OPERATIONS: ; **************** ; FCBA: DS 36 ; CLRFCB: LD DE,FCBA PUSH DE LD BC,36 CALL MCLR POP DE INC DE LD BC,11 LOP3: LD HL,BLANK LDI JP PE,LOP3 RET ; BLANK: DB 20H ; FILNAM: DB 14 DS 15 ; FNAME: LD DE,FILNAM LD C,READBF CALL BDOS RET ; CCNT: DB 0 ; FCBINI: LD IY,FCBA LD IX,FILNAM LD C,(IX+1) ;AMOUNT CHAR'S LD A,C LD (CCNT),A LD B,0 ;DEF DRIVE LD A,(IX+3) ;DRIVE REQ? CP ':' JR NZ,DEFDRV ;USE DEFAULT DEC C DEC C ;-2 FOR DRV SEL. LD A,C ;SAVE CHAR CNT LD (CCNT),A INC IX INC IX LD A,(IX) ;DRIVE NR RES 5,A CP 'A' ;A-DRIVE? JR NZ,BDRV ;THEN B DRIVE LD B,1 ;SEL A JR DEFDRV BDRV: LD B,2 ;SEL B DEFDRV: LD (IY),B INC IX INC IX PUSH IX ;POINTS 1 LETTER PUSH IX LD A,C ;ANYTHING LOADED? CP 0 JR Z,NFAIL ;NO NAME FPNT: LD A,(IX) ;FIND POINT CP '.' JR Z,PNT ;FOUND INC IX ;TRY NEXT DEC C JR NZ,FPNT NFAIL: POP IX ;SET STACK FAILN: POP IX XOR A ;C=0=FAIL RET ; PNT: DEC C ;.=-1 LD A,3 ;TYPE 3 LETTERS? CP C JR NZ,NFAIL ;WRONG TYPE PUSH IY FTYP: LD A,(IX+1) ;GET FILE TYPE RES 5,A ;UPPER CASE LD (IY+9),A INC IX ;-> NEXT INC IY DEC C JR NZ,FTYP POP IY POP IX LD A,(CCNT) ;AMOUNT CHARS SUB 4 ;-.TYP CP 0 ;ANY NAME? JR Z,FAILN POP IX GNAME: LD B,(IX) ;CHAR 1 LD (IY+1),B INC IX INC IY DEC A JR NZ,GNAME SCF ;C=1=NOTHING WRONG RET ; FILOP: LD DE,FCBA LD C,OPENF CALL BDOS RET ; FILCR: LD DE,FCBA LD C,MAKEF CALL BDOS RET ; SEQRD: LD DE,FCBA LD C,RDSEQ CALL BDOS RET ; SEQWR: LD DE,FCBA LD C,WRSEQ CALL BDOS CP 0 RET Z LD DE,MESS0F CALL PRINT CALL LWAIT LD SP,STAK JP QUIT ; CURP: DB 1BH,59H,0,0,'$' ; CTAB: DB 05H,18H,04H,13H,03H,12H,16H,14H,10H,19H,02H DB 11H,01H,17H,06H,07H,08H,0BH,0FH,15H,0EH,1DH ; JTAB: DW CUP,CDOWN,CRIGHT,CLEFT,NEXT,PREV,SETBIT DW RSTBIT,CINIT,EXIT,SCRAB,REFB,SCRA,REFC DW SCRB,AEQUB,MOVBA,BPAGE,FSAVE,BLINE,LOCK DW SCCONT ; SHADR: DS 2 STADR: DS 2 TOPADR: DS 2 BOTADR: DS 2 INIADR: DS 2 CADR: DS 2 MBYTE: DS 1 SCROLL: DB 3 INIT: DB 0 AINIT: DB 1 SHMOV: DB 0 CONT: DB 0 CSCRL: DB 0 REF: DB 1 OFFSET: DB 16,0 LDIFB: DS 2 LDIFC: DS 2 DIFF: DS 2 DIFFB: DS 2 DIFFC: DS 2 ; GRAPH: DB 1BH,46H,'$' XGRAPH: DB 1BH,47H,'$' ; SMEM: DB 4,0,0,0,0,0 SADR: DB 4,0,0,0,0,0 ROW: DS 1 SHOWA: DS 1 SHOWB: DS 1 SHOWC: DS 1 ADRA: DS 2 ADRAF: DS 2 ADRB: DB 0,20H ADRC: DB 0,30H ; TAB2: DB 'FEDCBA9876543210$' ; VPOS1: DB 80H VPOS: DB 80H HPOS: DS 1 CPOS: DB 22,3 CPOS1: DB 22,3 ; MESS0: DB CR,LF,'$' ; MESS01: DB ' Editor for character-generators ',CR,LF,'$' MESS02: DB ' made by B.G. Joergensen, OZ9DX ',CR,LF,'$' MESS03: DB ' Release 1.2 01-Oct-1983 ',CR,LF,'$' MESS04: DB ' WAIT $' ; MESS05: DB CS,CR DB ' The editor enables you to either edit an existing file' DB ' (file A)(Y/N=Y), or to',CR,LF DB ' create a new one (Y/N=N), while comparing with or copy' DB 'ing from 1 or 2 other ',CR,LF DB ' file(s) (B and C). The memory start-adress for the A-f' DB 'ile should be placed at',CR,LF DB ' a higher location than those of files B and C. Lowest ' DB 'usable adress is: 1200H',CR,LF,'$' ; MESS06: DB ' Do you wish to load file ' CESS06: DB 'A Y/N ?: $' ; MES07A: DB CS,CR,LF,LF,LF MESS07: DB CR,LF,' Enter filename : $' ; MESS08: DB CR,LF,' Memory start adress (4 dig HEX) : $' ; MESS09: DB CS,CR,LF,' Select adress of toprow-line. This is no' DB 'rmally top adress of capital ',CR,LF DB ' letters. Enter 1 hex-digit only: $' ; MESS0A: DB ' illegal name and/or file type !!! try again $' ; MESS0B: DB CS,CR,LF,LF,' file does not exist WAIT $' ; MESS0C: DB CS,CR,LF,LF,LF,LF DB ' are you sure, you dont want to save the result of' DB ' all your efforts ?',CR,LF DB ' answer Y = EXIT or N = SAVE. Y/N ?: $' ; MESS0D: DB CS,CR,LF,LF,LF DB ' file exists. overwrite ? Y/N : $' ; MESS0E: DB CR,LF,' length in Kilobytes (enter 1 dig) ?: $' ; MESS0F: DB CS,CR,LF,LF,' disk space full !!!!!! $' ; MESS1: DB CS,CR DB ' CURSOR: ^E=up line ^X=down line ^D=right' DB ' ^S=left ^P=save pos ',CR,LF DB ' SCROLL: ^C=up screen ^R=down screen ^B=R&L s' DB 'ide ^A=L-side ^F=R-side ',CR,LF DB '^K=page ^U=by line ^Q=file B ^W=file ' DB 'C ^Å=continous (2xCR=STOP)',CR,LF DB ' WRITE : ^V=set bit ^T=reset bit ^H=move ' DB 'R-side to left ',CR,LF DB ' OTHER : ^N=lock R-L ^G=find R=L ^O=save ' DB 'file ^Y=exit $' ; MESS2: DB '--------------------------------------------------' DB '-----------------------------$' MESS3: DB 'A'+80H,' 7 6 5 4 3 2 1 0$' DS 100 STAK: DS 2 ; CS EQU 05H ;CLEAR SCREEN LF EQU 0AH CR EQU 0DH WBOOT EQU 0001H BDOS EQU 0005H BOOT EQU 0000H REBOOT EQU 0 CONIN EQU 1 CONOUT EQU 2 LSTOUT EQU 5 PSTRING EQU 9 READBF EQU 10 SELDSK EQU 14 OPENF EQU 15 CLOSEF EQU 16 RDSEQ EQU 20 WRSEQ EQU 21 MAKEF EQU 22 SETDMA EQU 26 GETADR EQU 27 DELFIL EQU 19 RDRAND EQU 33 WRRAND EQU 34 FILSIZ EQU 35 SRNDRC EQU 36 END START «eof»