add directory study

This commit is contained in:
gohigh
2024-02-19 00:25:23 -05:00
parent b1306b38b1
commit f3774e2f8c
4001 changed files with 2285787 additions and 0 deletions

View File

@@ -0,0 +1,126 @@
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <stdlib.h>
#include <bios.h>
// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0ACA0><EFBFBD><EFBFBD><E3A5AC> <20><><EFBFBD><E0AEA6>
#define TRK 20
// <20><><EFBFBD><><E0A0A7><EFBFBD><EFBFBD><><E1A5AA><EFBFBD><EFBFBD> - 512 <20><><EFBFBD><EFBFBD>
#define SEC_SIZE 2
typedef struct _DPT_
{
unsigned char srt_hut;
unsigned char dma_hlt;
unsigned char motor_w;
unsigned char sec_size;
unsigned char eot;
unsigned char gap_rw;
unsigned char dtl;
unsigned char gap_f;
unsigned char fill_char;
unsigned char hst;
unsigned char mot_start;
} DPT;
DPT far *get_dpt(void);
union REGS inregs, outregs;
char diskbuf[512];
int main(void)
{
struct diskinfo_t di;
unsigned status;
unsigned char old_sec_size,
old_fill_char, old_eot;
int i, j;
DPT far *dpt_ptr;
printf("\n<EFBFBD>ணࠬ<EFBFBD><EFBFBD><><EFBFBD><E2AEA6><><EFBFBD><E0A6A8><EFBFBD>"
"\n20-<2D> <20><><EFBFBD><E0AEA6> <20><><20>:."
"\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E0AEA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>? (Y,N)\n");
i = getch();
if((i != 'y') && (i != 'Y'))
return(-1);
// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><><E2A0A1><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0AC><20><><EFBFBD><E1AAA5>
dpt_ptr = get_dpt();
// <20><><EFBFBD>࠭塞 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD> <20><><><E2A0A1><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0AC>
old_sec_size = dpt_ptr->sec_size;
old_fill_char = dpt_ptr->fill_char;
old_eot = dpt_ptr->eot;
// <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><E2A0A1><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0AC><20><><EFBFBD><E1AAA5>
// <20><><EFBFBD><><E0A0A7><EFBFBD><EFBFBD><><E1A5AA><EFBFBD><EFBFBD>, ᨬ<><E1A8AC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
// <20><><EFBFBD><E0ACA0><EFBFBD><E0AEA2><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⢮ ᥪ<><E1A5AA><20><> <20><><EFBFBD><E0AEA6>
dpt_ptr->sec_size = SEC_SIZE;
dpt_ptr->fill_char = 0xf6;
dpt_ptr->eot = 18;
// <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
inregs.h.ah = 0x17;
inregs.h.al = 3;
inregs.h.dl = 0;
int86(0x13, &inregs, &outregs);
// <20><><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><E0ACA0><EFBFBD><E0AEA2><EFBFBD><EFBFBD>
inregs.h.ah = 0x18;
inregs.h.ch = TRK;
inregs.h.cl = dpt_ptr->eot;
inregs.h.dl = 0;
int86(0x13, &inregs, &outregs);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0AC><EFBFBD><EFBFBD>
// <20><><EFBFBD> <20>㭪樨 <20><><EFBFBD><E0ACA0><EFBFBD><E0AEA2><EFBFBD><EFBFBD>
di.drive = 0;
di.head = 0;
di.track = TRK;
di.sector = 1;
di.nsectors = 18;
di.buffer = diskbuf;
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A0A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E0ACA0> <20><><EFBFBD> 18 ᥪ<><E1A5AA>
// <20><EFBFBD><E1AFAE><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E1A5AA>
// <20><> <20><><EFBFBD><E0AEA6>
for(i=0, j=18; j>0; i += 4, j--)
{
diskbuf[i] = TRK;
diskbuf[i+1] = 0;
diskbuf[i+2] = j;
diskbuf[i+3] = SEC_SIZE;
}
// <20><><EFBFBD><EFBFBD><EBA2A0> <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><E0ACA0><EFBFBD><E0AEA2><EFBFBD><EFBFBD> <20><><EFBFBD><E0AEA6>
status = _bios_disk(_DISK_FORMAT, &di) >> 8;
printf("\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8A8AB><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>: %d",
status);
// <20><><EFBFBD><EFBFBD><EFBFBD><E2A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><E7A5AD> <20>
// ⠡<><E2A0A1><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0AC><20><><EFBFBD><E1AAA5>
dpt_ptr->sec_size = old_sec_size;
dpt_ptr->fill_char = old_fill_char;
dpt_ptr->eot = old_eot;
return(0);
}
/**
* get_dpt
*
* <20><><EFBFBD><EFBFBD><EFBFBD><E1ABA8> <20><><EFBFBD><EFBFBD><EFBFBD><><E2A0A1><EFBFBD><EFBFBD> <20><><EFBFBD><E0A0AC><20><><EFBFBD><E1AAA5>
*
* <20><EFBFBD><E3ADAA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><E3AAA0><EFBFBD> <20><><><E2A0A1><EFBFBD><EFBFBD>
* <20><><EFBFBD><E0A0AC><20><><EFBFBD><E1AAA5>
*
**/
DPT far *get_dpt(void)
{
void far * far *ptr;
ptr = (void far * far *)MK_FP(0x0, 0x78);
return(DPT far*)(*ptr);
}