Rev 1386 |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <oscalls.h>
#include <osfs.h>
#include <intrz80.h>
#include <terminal.c>
unsigned char trdBuf
[8192];
unsigned char fileName
[256];
struct diskOp readParam
;
unsigned char argLng
;
void interface
(void)
{
char fnPos
;
fnPos
= (41-9-argLng
)/2 + 20;
BOX
(20, 5, 41, 1, 47);
ATRIB
(34);
AT
(21,5);
printf("RDTRD2 Make TRD images from floppy disk");
BOX
(20, 6, 41, 6, 44);
ATRIB
(37);
AT
(fnPos
,7);
printf("filename:");
printf(fileName
);
AT
(23,9);
printf("[.................................]");
AT
(34,11);
printf("[ESC - Exit]");
}
void pBar
( char procent
)
{
float lng
;
char cycle
;
AT
(24,9);
lng
= (float)33 / (float)100 * (float)procent
;
for (cycle
= 0; cycle
< lng
; cycle
++)
{
putchar(219);
}
}
C_task main
(int argc
, char *argv
[])
{
unsigned int cycle
;
unsigned long secTmp
;
unsigned int result
;
unsigned char argPos
;
char prgPrc
;
unsigned char key
;
FILE
*fp1
;
os_initstdio
();
if (argc
< 2)
{
argv
[1] = "noname.trd\0";
}
argPos
=0;
fileName
[255] = '\0';
while (argv
[1][argPos
] != '\0')
{
fileName
[argPos
] = argv
[1][argPos
];
argPos
++;
}
argLng
= strlen(fileName
);
interface
();
fp1
= OS_CREATEHANDLE
(argv
[1], 0x80);
if (((int)fp1
) & 0xff)
{
printf (argv
[1]);
printf(" creating error\r\n");
exit(0);
}
readParam.
drive = 0;
readParam.
BufAdr = &trdBuf
;
readParam.
sector = 0;
readParam.
count = 32;
for (cycle
= 0; cycle
< 80; cycle
++)
{
secTmp
= cycle
* (unsigned long)8192/256;
readParam.
sector = secTmp
;
result
= OS_READSECTORS
(&readParam
);
OS_WRITEHANDLE
(trdBuf
, fp1
, 8192);
prgPrc
= cycle
* 1.25;
if (prgPrc
% 5 == 0) pBar
(prgPrc
);
key
= _low_level_get
();
}
if (key
== 27)
{
OS_CLOSEHANDLE
(fp1
);
exit(0);
}
OS_CLOSEHANDLE
(fp1
);
return 0;
}
/*╨Х╤Б╨╗╨╕ ╨║╨╛╨╗╨╕╤З╨╡╤Б╤В╨▓╨╛ ╨┐╨░╤А╨░╨╝╨╡╤В╤А╨╛╨▓ ╨╜╨╡╨╛╨┐╤А╨╡╨┤╨╡╨╗╤С╨╜╨╜╨╛ (printf(...) ╨╕ ╤В.╨┐.), ╤В╨╛ ╨▓╤Б╨╡ ╨┐╨░╤А╨░╨╝╨╡╤В╤А╤Л ╨┐╨╡╤А╨╡╨┤╨░╤О╤В╤Б╤П ╤З╨╡╤А╨╡╨╖ ╤Б╤В╨╡╨║. ╨Ш╨╜╨░╤З╨╡ ╨┐╨╡╤А╨▓╤Л╨╣ ╨┐╨░╤А╨░╨╝╨╡╤В╤А ╨┐╨╡╤А╨╡╨┤╨░╤С╤В╤Б╤П ╨▓ E, DE, CDE ╨╕╨╗╨╕ BCDE, ╨▓ ╨╖╨░╨▓╨╕╤Б╨╕╨╝╨╛╤Б╤В╨╕ ╨╛╤В ╤А╨░╨╖╤А╤П╨┤╨╜╨╛╤Б╤В╨╕ ╨╖╨╜╨░╤З╨╡╨╜╨╕╤П. ╨Х╤Б╨╗╨╕ ╨┐╨╡╤А╨▓╤Л╨╣ ╨╕ ╨▓╤В╨╛╤А╨╛╨╣ ╨┐╨░╤А╨░╨╝╨╡╤В╤А╤Л ╨╜╨╡ ╤И╨╕╤А╨╡ 16 ╨▒╨╕╤В ╨║╨░╨╢╨┤╤Л╨╣, ╤В╨╛ ╨▓╤В╨╛╤А╨╛╨╣ ╨┐╨░╤А╨░╨╝╨╡╤В╤А ╨┐╨╡╤А╨╡╨┤╨░╤С╤В╤Б╤П ╨▓ ╤А╨╡╨│╨╕╤Б╤В╤А╨░╤Е B ╨╕╨╗╨╕ BC, ╨╕╨╜╨░╤З╨╡ ╤З╨╡╤А╨╡╨╖ ╤Б╤В╨╡╨║. ╨Т╨╛╨╖╨▓╤А╨░╤Й╨░╨╡╨╝╨╛╨╡ ╨╖╨╜╨░╤З╨╡╨╜╨╕╨╡ ╨╕╨╖ ╤Д╤Г╨╜╨║╤Ж╨╕╨╕ ╨┐╨╡╤А╨╡╨┤╨░╤С╤В╤Б╤П ╨▓ ╤А╨╡╨│╨╕╤Б╤В╤А╨░╤Е A (L ╨┐╤А╨╕ ╨▒╨░╨╜╨║╨╕╨╜╨│╨╡), HL, CHL ╨╕╨╗╨╕ BCHL, ╨▓ ╨╖╨░╨▓╨╕╤Б╨╕╨╝╨╛╤Б╤В╨╕ ╨╛╤В ╤А╨░╨╖╤А╤П╨┤╨╜╨╛╤Б╤В╨╕ ╨╖╨╜╨░╤З╨╡╨╜╨╕╤П.
╨б╨╛╤Е╤А╨░╨╜╤П╤В╤М ╨╜╨░╨┤╨╛ ix ╨╕ iy ╨╛╨▒╤П╨╖╨░╤В╨╡╨╗╤М╨╜╨╛.
DE ╨╕ BC ╤Б╨╛╤Е╤А╨░╨╜╤П╤В╤М ╨╡╤Б╨╗╨╕ ╨╛╨╜╨╕ ╨╜╨╡ ╤О╨╖╨░╤О╤В╤Б╤П ╨▓ ╨║╨░╤З╨╡╤Б╤В╨▓╨╡ ╨┐╨░╤А╨░╨╝╨╡╤В╤А╨╛╨▓
*/