FileSystem functions

Declare Function readdisk(ide As UByte, typ As UByte,sector As UlongInt,counts As UShort,where As Any ptr)As UInteger
Declare Function pioreadide(ide As UByte, typ As UByte,sector As UInteger,counts As UShort,where As Any ptr)As UInteger
Declare function pioreadide_small(ide As UByte, typ As UByte,sector As UInteger,counts As UShort,where As Any ptr)As UInteger
Declare Function pioreadidechs(ide As UByte, typ As UByte,sector As Ubyte,cylinder as ushort, head as ubyte, counts As UShort,where As Any ptr)As UInteger
Declare Function stdread(drv_hnd As drive_handle Ptr,sector As UlongInt,counts As UShort,where As Any ptr)As UInteger
declare Function writedisk(ide As UByte, typ As UByte,sector As UlongInt,counts As UShort,where As Any ptr)As UInteger
declare Function stdwrite(drv_hnd As drive_handle Ptr,sector As UlongInt,counts As UShort,where As Any ptr)As UInteger
declare Function stdread_hdfile(drv_hnd As drive_handle Ptr,sector As UlongInt,counts As UShort,where As Any ptr)As UInteger
declare Function stdwrite_hdfile(drv_hnd As drive_handle Ptr,sector As UlongInt,counts As UShort,where As Any ptr)As UInteger
declare Function stdread_usb(drv_hnd As drive_handle Ptr,sector As UlongInt,counts As UShort,where As Any ptr)As UInteger
declare Function stdwrite_usb(drv_hnd As drive_handle Ptr,sector As UlongInt,counts As UShort,where As Any ptr)As UInteger
Declare Sub change_dir(ide As UInteger,typ As UInteger,i As UInteger, fname As Any Ptr) 'unfinished
Declare Sub close_file(handle As file_handle Ptr) 'unfinished
Declare Sub delete_file(ide As UInteger,typ As UInteger,i As UInteger,fname As Any Ptr)
Declare Sub make_dir(dh as drive_handle ptr ,parw As Integer,fname As Any Ptr, fdir as dir_entry ptr) 'working
declare Sub make_file(dh as drive_handle ptr ,parw As Integer,fname As Any Ptr, fdir as dir_entry ptr, parentcl as uinteger ptr) 'working
Declare Sub rm_dir(ide As UInteger,typ As UInteger,i As UInteger,fname As Any Ptr)
Declare Sub seek_file(handle As file_handle Ptr, position As UInteger, from As UByte)
Declare Sub set_dir_entry(ide As UInteger,typ As UInteger,i As UInteger, srec As Any Ptr, fdir As Dir_entry Ptr)
Declare Sub write_file OVERLOAD (handle As file_handle Ptr, where As Any Ptr, size As UInteger, wrote_len As UInteger) 'not working ! don't use
declare Sub write_file OVERLOAD (dh2 As drive_handle Ptr, fdir as dir_entry ptr, buf As ubyte Ptr, size As UInteger, wrote_len As UInteger ptr) 'good
declare Sub write_file OVERLOAD (dh2 As drive_handle Ptr, fdir as dir_entry ptr, buf As ubyte Ptr, size As UInteger, wrote_len As UInteger ptr,parentcl as uinteger) 'working !
declare Sub Open_file(drv_hnd as drive_handle ptr,i As UInteger,handle As file_handle ptr,fname As Any Ptr)
Declare Sub read_file(handle As file_handle Ptr, where As Any Ptr, size As UInteger, read_len As UInteger)
Declare Function readfloppy(drive As UShort,sector As UInteger, counts As UInteger, where As Any ptr) As UInteger
declare Function writefloppy(drive As UShort,sector As UInteger, counts As UInteger, where As Any ptr) As UInteger
Declare Sub readdiskcfg(drv_hnd As drive_handle Ptr,ide_info_dat As ide_info Ptr ,mbr1 as uinteger)
Declare function readcluster(drv_hnd As drive_handle ptr,p as uinteger,i As UInteger, buf as any ptr) as UInteger
declare function fromcluster(drv_hnd As drive_handle ptr,p as uinteger,i As UInteger, buf as uinteger ptr) as UInteger
Declare function getfatentry(drv_hnd As drive_handle ptr,p as uinteger,i As UInteger) as UInteger
declare function getfat2entry(drv_hnd As drive_handle ptr,p as uinteger,i As UInteger) as UInteger
declare function getfreefatentry(dh as drive_handle ptr, parw as integer) as uinteger
declare function getfreefatentry_smart(dh as drive_handle ptr, parw as integer,start1 as uinteger, end1 as uinteger) as uinteger
declare sub get_dir_entry2(dh As drive_handle Ptr, parw As UInteger,fname As Any ptr, srec As search_rec Ptr,fdir As Dir_entry Ptr) 'GOOD ! use this one
'bugy 'Declare sub get_dir_entry(drv_hnd As drive_handle Ptr, i As UInteger,fname As Any ptr, srec As search_rec Ptr,fdir As Dir_entry Ptr) 'bugy for names like windows\win386.swp and other [win] files are in directory :(
'bugy 'Declare sub get_dir_entry_lfn(drv_hnd As drive_handle Ptr, p As UInteger,fname As Any ptr, srec As search_rec Ptr,fdir As Dir_entry Ptr,lfn As LFN_entry ptr) 'unfinished
Declare Function get_ide_info(ide As Integer,typ As Integer,buf As ide_prop Ptr) As Integer
declare Function getpartitiontypename(i As UInteger) As String
declare sub print_partition_info(dh as drive_handle ptr, iid as ide_info ptr)
declare sub move_tail_to_begining(dh as drive_handle ptr, parw as integer, granitza as integer)
declare function get_max_cluster(dh as drive_handle ptr, p as integer) as uinteger
declare function checkmove_dir(dh as drive_handle ptr,parw as integer, poi as any ptr,struca as any ptr) as integer
declare sub listdir_with_event(dh as drive_handle ptr, parw as integer, st_cluster as uinteger, parent_cluster as uinteger, event_proc as any ptr,checkeventproc as any ptr,struca as any ptr)
declare sub move_tail_dir(dh as drive_handle ptr, parw as integer, fdir as dir_entry ptr,st_cluster as uinteger, parent_cluster as uinteger,struca as any ptr)
declare sub setfat2entry(drv_hnd As drive_handle ptr,p as uinteger,i As UInteger, n as uinteger)
declare sub setfatentry(drv_hnd As drive_handle ptr,p as uinteger,i As UInteger, n as uinteger)
declare function writecluster(drv_hnd As drive_handle ptr,p as uinteger,i As UInteger, buf as any ptr) as UInteger
declare function getfreefatvirtual_smart(dh as drive_handle ptr, parw as integer,fats as ubyte ptr, start1 as uinteger, end1 as uinteger) as uinteger
declare sub setfatentryvirtual(drv_hnd As drive_handle ptr,p as uinteger,bac as ubyte ptr,i As UInteger, n as uinteger)
declare function getfatentryvirtual(drv_hnd As drive_handle ptr,p as uinteger,bac as ubyte ptr,i22 As UInteger)as uinteger
declare sub readfatinbuffer(dh as drive_handle ptr, parw as integer, whichfat as ubyte,vf as any ptr, lenof as uinteger ptr)
declare sub writefatfrombuffer(dh as drive_handle ptr ,parw as integer,fat_type as byte,vfat as ubyte ptr)
declare sub defragment_file(dh as drive_handle ptr, parw as integer, filedir as dir_entry ptr,st_cluster as uinteger, defrag_type as uinteger)
declare sub defragment_hd(dh as drive_handle ptr, parw as integer)
declare sub defrag_file_fromlst(dh as drive_handle ptr, parw as integer, fdir as dir_entry ptr,st_cluster as uinteger, parent_cluster as uinteger,struca as any ptr)
declare function checkdefrag_file(dh as drive_handle ptr,parw as integer, poi as any ptr,struca as any ptr) as integer
declare sub defragment_dir()
declare function is_file_fragmented(dh as drive_handle ptr, parw as integer, filedir as dir_entry ptr, defrag_type as uinteger) as integer
declare sub print_llclusters(dh as drive_handle ptr, drec as dir_entry ptr)
declare function get_partition_num(dh as drive_handle ptr, iid as ide_info ptr,c1 as string ptr, where_mbr as uinteger ptr) as integer
Declare Function readisocfg(drv_hnd As drive_handle Ptr, starting_sector As UlongInt) As UInteger
Declare Function stdread_isofile(drv_hnd As drive_handle Ptr,sector As UlongInt,counts As UShort,where As Any ptr)As UInteger 'reads from a hard disk file and emulates a CD/DVD
Declare Function stdwrite_isofile(drv_hnd As drive_handle Ptr,sector As UlongInt,counts As UShort,where As Any ptr)As UInteger 'writess from a hard disk file and emulates a CD/DVD
Declare Function pioreadideatapi(ide As UByte, typ As UByte,packet As Any Ptr,sector As UlongInt, counts As Uinteger,where As Any ptr)As UInteger 'sends a packet and receives counts*2 bytes (or better say counts *word)
declare Function pioreadideatapi10(ide As UByte, typ As UByte,sector As UInteger, counts As Ushort,where As Any ptr)As UInteger
declare Function stdread_atapi(drv_hnd As drive_handle Ptr,sector As UlongInt,counts As UShort,where As Any ptr)As UInteger
declare Function stdwrite_atapi(drv_hnd As drive_handle Ptr,sector As UlongInt,counts As UShort,where As Any ptr)As UInteger
declare sub get_isodir_entry(dh1 As drive_handle Ptr, ses As UInteger,fname As Any ptr, srec As search_rec Ptr,drecout As directory_record Ptr)
declare Sub print_drec(drec2 As directory_record Ptr,typ as integer)
declare sub list_drec(dh1 as drive_handle ptr,drec as directory_record ptr,typ as uinteger)
declare function swap_lba(in1 as uinteger) as uinteger
Declare Sub dma_select_ports(DmaCh As UShort)
Declare Sub dma_slave_transfer()
Declare Sub dma_master_transfer()
Declare Function dmareadide(ide As UByte, typ As UByte,sector As UInteger,counts As UShort, where As Any Ptr) As uInteger
Declare Sub dma_interrupt()
Declare Sub print_iso_date(ipcc as any ptr)
declare sub print_title()
declare sub print_status11()
Declare sub debuged_ioatapi()
Declare Sub explore_hd_try1()
Declare sub explore_hd_try2()
Declare sub explore_floppy()
declare sub hd_tools(dhin as drive_handle ptr, cuin as uinteger)
Declare sub print_ide_id()
Declare sub identifyatapi()
Declare sub partition_manager()
Declare Sub iso_test_cddvd()
Declare Sub iso_test()
Declare sub explore_drec(dh1 as drive_handle ptr,drec as directory_record ptr,typ as uinteger, x as integer, y as integer, w as integer, h as integer, textc as integer, backc as integer)
Declare function FilesListBox(dh2 as drive_handle ptr,p1 as string,listtipe as integer, p2 as ubyte ptr, counts as integer, x as integer, y as integer, w as integer, h as integer,textc as integer, backc as integer) as any ptr
Declare sub iso_getfile(dh2 as drive_handle ptr,ppp as any ptr)
declare sub iso_getfile_adv(dh2 as drive_handle ptr,ppp as any ptr, wtc as string)
declare sub iso_getdir(dh2 as drive_handle ptr,ppp as any ptr, wtc as string)
Declare function getisodrec_name(drec as directory_record ptr) as String
declare sub explore_dent(dh as drive_handle ptr,dent as dir_entry ptr, typ as uinteger,x as integer, y as integer, w as integer, h as integer, textc as integer, backc as integer)
declare function getfatdrec_name(drec as dir_entry ptr) as string
declare function Fat_getdir(dh2 as drive_handle ptr, derp as dir_entry ptr, wtc as string) as integer
declare function fat_getfile(dh2 as drive_handle ptr, derp as dir_entry ptr) as integer
declare function get_lfn_entry(dh2 as drive_handle ptr, derp as dir_entry ptr, parent_cluster as uinteger,num_staff as integer) as string
declare function getfatlfnpathfromlinkedlist(dh2 as drive_handle ptr,clusty as uinteger) as string
declare function getfatpathfromlinkedlist(dh2 as drive_handle ptr,clusty as uinteger) as string
declare sub copydh2dh OVERLOAD (srcdh as drive_handle ptr,fname_src as zstring ptr, dstdh as drive_handle ptr,parent_dst as uinteger)
declare sub copydh2dh OVERLOAD (srcdh as drive_handle ptr,fname_src as zstring ptr, dstdh as drive_handle ptr,fname_dst as zstring ptr)
declare sub copydh2dh OVERLOAD (srcdh as drive_handle ptr,fname_src as zstring ptr, dstdh as drive_handle ptr,fname_dst as dir_entry ptr)
declare sub copydh2dh OVERLOAD (srcdh as drive_handle ptr,fdir_src as dir_entry ptr, dstdh as drive_handle ptr,parent_dst as uinteger)
declare sub copydh2dh OVERLOAD (srcdh as drive_handle ptr,fdir_src as dir_entry ptr, dstdh as drive_handle ptr,fdir_dst as dir_entry ptr)
declare sub copydh2dh OVERLOAD (srcdh as drive_handle ptr,fdir_src as dir_entry ptr, dstdh as drive_handle ptr,fname_dst as zstring ptr)
declare sub disk_speed_test()
declare sub print_super_block(sbl as super_block ptr)
declare sub print_group_desc(gdesc as group_desc ptr)
declare sub print_inode(i as inode ptr)
declare sub print_ext2_dir(e as ext2_dir ptr)
declare sub init_drive_handle(dh as drive_handle ptr, drive_type as integer,opts1 as integer, ide1 as integer, masw as integer, mbr1 as integer)
declare sub dealloc_drive_handle(dh as drive_handle ptr)
declare sub delete_entry(dh as drive_handle ptr, parw as uinteger, fname as zstring ptr)
declare sub counting_sort_dent(d as uinteger ptr, z as integer, opts as integer)
Declare Function calculate_part_extadd(dh As drive_handle Ptr, part As String) As UInteger
declare sub setfatentries_smart_bugy_but_beautifull(dstdh as drive_handle ptr, parw as uinteger, cl_dst as uinteger ptr, z as uinteger)
declare sub get_dent_list(dh as drive_handle ptr,dent as dir_entry ptr, typ as uinteger,exploring as integer, sort_files as integer,callback as any ptr)
declare sub get_drec_list(dh1 as drive_handle ptr,drec as directory_record ptr,typ as uinteger,exploring as integer, sort_files as integer, callback as any ptr)
declare function check_check_ll(dh as drive_handle ptr,parw as integer, poi as any ptr,struca as any ptr) as integer
declare sub checkll(dh as drive_handle ptr, parw as integer, fdir as dir_entry ptr,st_cluster as uinteger, parent_cluster as uinteger,struca as any ptr)
declare sub check_filesystem(dh as drive_handle ptr,parw as integer)
declare sub setup_checkfat()
declare function writecluster_only1sector(drv_hnd As drive_handle ptr,p as uinteger,i As UInteger, buf as any ptr,o as uinteger) as UInteger
declare function readcluster_only1sector(drv_hnd As drive_handle ptr,p as uinteger,i As UInteger, buf as any ptr, o as uinteger) as UInteger
declare sub viewedit_anysect(dh as drive_handle ptr, starting_sect as uinteger)
declare sub viewedit_dent(dh as drive_handle ptr, parw as integer, fdir as dir_entry ptr, parent as uinteger)
declare sub viewedit_drec(dh as drive_handle ptr, parw as integer, drec as directory_record ptr, parent as uinteger)
declare sub delete_entry_recursive OVERLOAD (dh as drive_handle ptr, parw as uinteger, fname as zstring ptr)
declare sub delete_entry_recursive OVERLOAD (dh as drive_handle ptr, parw as uinteger, cu2 as uinteger)
declare function fat2tosector(drv_hnd As drive_handle ptr,p as uinteger,i As UInteger,n as integer ptr) as uinteger
declare function fattosector(drv_hnd As drive_handle ptr,p as uinteger,i As UInteger,n as integer ptr) as uinteger
declare sub setfatentries_smart(dstdh as drive_handle ptr, parw as uinteger, cl_dst as uinteger ptr, z as uinteger, set_type as integer)declare sub movsb1(src as any ptr,dst as any ptr,l as uinteger) 'movs arrays
declare function cmpsb1(src as any ptr, dst as any ptr, l as uinteger) as integer 'compares strings
declare function scasb1(c as ubyte,dst as any ptr,l as uinteger) as integer 'compares byte with all bytes in dst
declare sub stosb1(c as ubyte, dst as any ptr, l as uinteger) 'stores byte into dst many times
declare Function inw_PCI_reg(bus As UByte,dev As UByte, func As UByte, reg As UByte) As UShort
declare Function ind_PCI_reg(bus As UByte,dev As UByte, func As UByte, reg As UByte) As UInteger
declare Sub outw_PCI_reg(bus As UByte,dev As UByte, func As UByte, reg As UByte , d2 As Ushort)
declare Sub outd_PCI_reg(bus As UByte,dev As UByte, func As UByte, reg As UByte , d2 As UInteger)
declare function inb1(p as uinteger) as ubyte
declare function inw1(p as uinteger) as ushort
declare function ind1(p as uinteger) as uinteger
declare sub outb1(p as uinteger, d as ubyte)
declare sub outw1(p as uinteger, d as ushort)
declare sub outd1(p as uinteger, d as uinteger)
declare function incmosrtc(port as ubyte) as ubyte
declare Sub outcmosrtc(port as ubyte, value as ubyte)
declare sub sound_on(s as ushort)
declare sub sound_off()
declare function hard_readkey() as ushort
declare sub stop_fd_motor()
declare sub ide0_standby()
declare sub ide1_standby()
declare sub ide1_idle()
declare sub ide0_idle()
Declare sub rdtsc1(i as ulongint ptr)
declare function inkey1() as ushort
#ifdef __FB_DOS__ declare function get_physical(ada as uinteger,where as any ptr, size as uinteger) as integer #endif
declare function get_smart(predef as string, x as integer, y as integer) as string
declare Sub get_likecombo(txt as string,ot1 as any ptr, info as integer ptr,x as integer, y as integer, textc as uinteger, backc as uinteger)
declare function from_hex(a as string) as ulongint
declare function get_sel(num as integer,txt as string) as string
declare function deallocate2(a as any ptr) as integer
declare function dealloc2(a as any ptr) as integer
declare function menu_get_opt(entries as string, x as integer, y as integer,textc as integer, backc as integer) as String
Declare Sub dos_screenshot(Scrn As UShort Ptr, w As Integer, h As Integer)
Declare Sub dos_screenload(Scrn As UShort Ptr, w As Integer, h As Integer)
declare SUB Center (row as integer , text as string)
declare SUB Win (x1 as integer, y1 as integer, x2 as integer, y2 as integer, name1 as string,tc as integer, tb as integer)
declare SUB MsgBox (text as string, nume as string)
declare SUB TextXY (x as integer, y as integer, Txt as string)
declare sub print_constraint (a as string,start as integer, l as integer)
declare sub shottofile(fnm as string)
Declare Function e_mutex_create() As UInteger
Declare Function e_mutex_lock(m As Any ptr) As UInteger
Declare Function e_mutex_unlock(m As Any ptr) As UInteger
Declare sub e_mutex_free(m As Any ptr)
declare sub call_usbint(urb as any ptr, dos_seg as uinteger, devr as setuptype ptr,dos_trans_buf as string ptr, bufsize as uinteger)
declare sub call_usbintio(urb as any ptr, dos_seg as uinteger,dos_trans_buf as ubyte ptr, bufsize as uinteger)
declare sub call_usbintio_out(urb as any ptr, dos_seg as uinteger,dos_trans_buf as ubyte ptr, bufsize as uinteger)
declare sub print_wstring(a as string)
declare sub print_dev_des(device_descriptor_ptr as device_descriptor_type ptr)
declare sub print_confdesc(confdesc as configuration_descriptor_type ptr)
declare sub print_interf_des(intef_des as interface_descriptor_type ptr, j as integer)
declare sub print_endp_des( endp_des as endpoint_descriptor_type ptr, k as integer)
declare sub inq_disk(devadd as integer, endp_for_out as integer, endp_for_in as integer,read_cmd as read_command ptr, buffer as string ptr,buf_size as integer,dos_seg As uinteger)
declare sub requestsense_disk(devadd as integer, endp_for_out as integer, endp_for_in as integer,read_cmd as read_command ptr, buffer as string ptr,buf_size as integer,dos_seg As uinteger)
declare sub testunit_disk(devadd as integer, endp_for_out as integer, endp_for_in as integer,read_cmd as read_command ptr, buffer as string ptr,buf_size as integer,dos_seg As uinteger)
declare sub readsect_disk(devadd as integer, endp_for_out as integer, endp_for_in as integer,read_cmd as read_command ptr, buffer as ubyte ptr,buf_size as integer,dos_seg As uinteger,lbanumber as uinteger)
declare sub writesect_disk(devadd as integer, endp_for_out as integer, endp_for_in as integer,scsi_cmd as write_command ptr, buffer as ubyte ptr,buf_size as integer,dos_seg As uinteger,lbanumber as uinteger)
declare sub init_usbmassstorage(devadd as integer,ein as integer ptr, eout as integer ptr)
declare sub do_usb_test()
declare sub readfw_disk(devadd as integer, endp_for_out as integer, endp_for_in as integer,read_cmd as general_command ptr, buffer as ubyte ptr,buf_size as integer,dos_seg As uinteger,lbanumber as uinteger)