|
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: 3840 (0xf00) Types: TextFile Names: »REGN1.PAS«
└─⟦1230711ec⟧ Bits:30003277 Digital Research Draw v.1.0 + Skriv + Regn └─ ⟦this⟧ »REGN1.PAS«
(* INCLUDE FILE REGN1.PAS SYSTEMAFHÆNGIGE *) (* DEFINITION AF TASTER *) PROCEDURE TASTER; begin write(alloff); write(@27'0'); write(@27@58@59@1@0); (* F1 *) write(@27@58@71@5@19@0); (* SKRÅ PIL *) write(@27@58@72@5@0); (* PIL OP *) write(@27@58@75@19@0); (* VENSTRE *) write(@27@58@77@4@0); (* HØJRE *) write(@27@58@80@24@0); (* PIL NED *) write(@27@58@82@6@0); (* TEGN IND *) write(@27@58@83@127@0); (* SLET TEGN *) write(@27@58@84'/U'@0); (* PRINT *) end; (*$I-*) æ 16-bit version only å PROCEDURE SYSKALD(kaldnr:integer); var regs:record ax,bx,cx,dx,bp,si,di,ds,es,flags:integer; end; begin regs.cx:=kaldnr; if kaldnr=16 then begin regs.dx:=filofs; regs.ds:=filseg; end; swint(224,regs); end; PROCEDURE LUK(nr:byte; var fejl:integer); begin if nr=1 then begin filofs:=ofs(mcfile)+12;filseg:=seg(mcfile); flush(mcfile); close(mcfile); fejl:=iores; end else begin filofs:=ofs(tekstfil)+12;filseg:=seg(tekstfil); close(tekstfil); fejl:=iores; end; æ SYSKALD(16); å end; PROCEDURE L_DETACH; begin æ 16-bit version only å SYSKALD(159); end; (*$I+*) PROCEDURE RESETDISK; begin æ 8-bit vesion only bdos(13); å æ 16-bit version only - Not neccesary for PICCOLINE SYSKALD(13); å end; PROCEDURE DISKDIR(drev: char; æ Drive on which to search å æ @ = default drive å filmaske: str11; æ filemask without "." å efternavn: boolean; æ filename extension to be written? å streng: anystring);æ part of header å var regs:record ax,bx,cx,dx,bp,si,di,ds,es,flags:integer; end; linje:stringÆ79Å; fcb:arrayÆ1..36Å of byte; dma:stringÆ128Å; dma_ofs,dma_seg:integer; a,b,c,d:byte; æ 16-bit version only å PROCEDURE SYSKALD2(kaldnr,fofs,fseg:integer); begin regs.cx:=kaldnr; regs.dx:=fofs; regs.ds:=fseg; swint(224,regs); if kaldnr=52 then begin dma_ofs:=regs.ax; dma_seg:=regs.es; end; if (kaldnr=17) or (kaldnr=18) then a:=regs.ax; end; begin æ 8-bit version only SETUP DMA dma:=''; for a:=1 to 8 do dma:=dma+' '; bdos(26,addr(dma)+1); å æ 16-bit version only GET DMA ADRESS å SYSKALD2(52,0,0); for a:=1 to 36 do fcbÆaÅ:=0; æ construction of FCB å c:=ord(drev); if c>96 then c:=c-32; drev:=chr(c); fcbÆ1Å:=c-64; for a:=2 to 12 do fcbÆaÅ:=ord(filmaskeÆa-1Å); æ 8-bit version only SEARCH FIRST a:=bdosb(17,addr(fcb)); å æ 16-bit version only SEARCH FIRST å SYSKALD2(17,ofs(fcb),seg(fcb)); linje:=copy(tom,1,(68-len(streng)) div 2)+streng+' PÅ DREV '+drev+':'+tom; write(clrhom); writeln(rvson,linje,rvsoff); if a=255 then begin gotoxy(23,3); write(rvson,' Der er ingen ark på disketten. ',rvsoff); end; while a<>255 do begin æ 8-bit version only GET FILENAME and SEARCH NEXT write(copy(dma,a*32+2,8)); if efternavn then begin write('.',copy(dma,a*32+10,3)); write(' '); end else write(' '); a:=bdosb(18,addr(fcb)); å æ 16-bit version only GET FILENAME and SEARCH NEXT å for d:=1 to 8 do write(chr(memÆdma_seg:dma_ofs+a*32+dÅ)); if efternavn then begin write('.'); for d:=9 to 11 do write(chr(memÆdma_seg:dma_ofs+a*32+dÅ)); write(' '); end else write(' '); SYSKALD2(18,ofs(fcb),seg(fcb)); end; end; PROCEDURE AFSLUT; begin write(@27'1'); write(alloff); end;«eof»