Subversion Repositories NedoOS

Rev

Rev 1779 | Blame | Compare with Previous | Last modification | View Log | Download

  1.  
  2.         MODULE OSOPENHANDLE
  3.         PUBLIC OS_CLOSEHANDLE,OS_OPENHANDLE,OS_GETFILINFO
  4.     PUBLIC OS_SEEKHANDLE
  5.         EXTERN errno
  6.         #include "sysdefs.asm"
  7.         RSEG CODE
  8. OS_GETFILINFO:
  9.         push bc
  10.         ld l,c
  11.         ld h,b
  12.         ld c,CMD_GETFILINFO    
  13.         jr label1
  14. OS_SEEKHANDLE:
  15.     ld b,d
  16.     pop af
  17.     pop hl
  18.     pop de
  19.     push de
  20.     push hl
  21.     push af
  22.         push bc
  23.         ld c,CMD_SEEKHANDLE    
  24.         jr label1
  25. OS_OPENHANDLE:
  26.         push bc
  27.         ld a,c
  28.     ex af,af'
  29.         ld c,CMD_OPENHANDLE    
  30.         jr label1
  31. OS_CLOSEHANDLE:
  32.         push bc
  33.         ld b,d
  34.         ld c,CMD_CLOSEHANDLE
  35. label1:
  36.         push ix
  37.         push iy
  38.         call BDOS
  39.         ld (errno),a
  40.         ld h,b
  41.         ld l,a
  42.         pop iy
  43.         pop ix
  44.         pop bc
  45.         ret
  46.         ENDMOD
  47.        
  48.         MODULE OSDIRCALLS
  49. ;       PUBLIC OS_CHDIR
  50. ;       PUBLIC OS_DELETE
  51.         PUBLIC OS_MKDIR,OS_OPENDIR,OS_READDIR,OS_CHDRV
  52.         EXTERN errno
  53.         #include "sysdefs.asm"
  54.         RSEG CODE
  55. OS_READDIR:
  56.         push bc
  57.         ld c,CMD_READDIR       
  58.         jr label1
  59. OS_OPENDIR:
  60.         push bc
  61.         ld c,CMD_OPENDIR       
  62.         jr label1
  63. ;OS_DELETE:
  64. ;       push bc
  65. ;       ld c,CMD_DELETE
  66. ;       jr label1
  67. OS_MKDIR:
  68.         push bc
  69.         ld c,CMD_MKDIR 
  70.         jr label1
  71. ;OS_CHDIR:
  72. ;       push bc
  73. ;       ld c,CMD_CHDIR 
  74. ;       jr label1
  75. OS_CHDRV:
  76.         push bc
  77.         ld c,CMD_SETDRV
  78. label1:
  79.         push ix
  80.         push iy
  81.         call BDOS
  82.         ld (errno),a
  83.         pop iy
  84.         pop ix
  85.         pop bc
  86.         ret
  87.         ENDMOD
  88.        
  89.        
  90.         MODULE OSWRITEHANDLE
  91.         PUBLIC OS_WRITEHANDLE,OS_READHANDLE, OS_READHANDLEMEM;,OS_GETPATH,OS_SETSYSDRV
  92.         PUBLIC OS_GETFILESIZE
  93.         EXTERN errno
  94.         #include "sysdefs.asm"
  95.         RSEG CODE
  96. ;OS_SETSYSDRV:
  97. ;       ld c,CMD_SETSYSDRV     
  98. ;       jr label1
  99. OS_GETFILESIZE:
  100.         ld c,CMD_GETFILESIZE
  101.         ld b,d
  102.         jr label1
  103. ;OS_GETPATH:
  104. ;       ld c,CMD_GETPATH       
  105. ;       jr label1
  106. OS_READHANDLE:
  107. OS_READHANDLEMEM:
  108.         ld c,CMD_READHANDLE    
  109.         jr label1
  110. OS_WRITEHANDLE:
  111.         ld c,CMD_WRITEHANDLE
  112. label1:
  113.         pop af
  114.         pop hl
  115.         push hl
  116.         push af
  117.         push ix
  118.         push iy
  119.         call BDOS
  120.         ld (errno),a
  121.         ld b,d
  122.         ld c,e
  123.         pop iy
  124.         pop ix
  125.         ret
  126.         ENDMOD
  127.        
  128.         MODULE OSCREATEHANDLE
  129.         PUBLIC OS_CREATEHANDLE
  130.         EXTERN errno
  131.         #include "sysdefs.asm"
  132.         RSEG CODE
  133. OS_CREATEHANDLE:
  134.         push ix
  135.         push iy
  136.         ld a,c
  137.         and 0x80
  138.         ld b,a
  139.         ld a,c
  140.         and 0x7f
  141.    ex af,af'
  142.         ld c,CMD_CREATEHANDLE  
  143.         call BDOS
  144.         ld (errno),a
  145.         ld h,b
  146.         ld l,a
  147.         pop iy
  148.         pop ix
  149.         ret
  150.         ENDMOD
  151.        
  152.         MODULE FS_GET_ERR_STR
  153.         PUBLIC fs_get_err_str
  154.         EXTERN errno
  155.         #include "sysdefs.asm"
  156.         RSEG CODE
  157. fs_get_err_str:
  158.         push de
  159.         LD      HL,(errno)
  160.         LD      H,0
  161.         ADD     HL,HL
  162.         LD      BC,fs_errs
  163.         ADD     HL,BC
  164.         LD      a,(HL)
  165.         INC     HL
  166.         LD      h,(HL)
  167.     ld l,a
  168.         pop de
  169.         ret
  170.    
  171.         RSEG CONST
  172.  
  173. fs_errs:
  174.         DEFW    ?0010
  175.         DEFW    ?0011
  176.         DEFW    ?0012
  177.         DEFW    ?0013
  178.         DEFW    ?0014
  179.         DEFW    ?0015
  180.         DEFW    ?0016
  181.         DEFW    ?0017
  182.         DEFW    ?0018
  183.         DEFW    ?0019
  184.         DEFW    ?0020
  185.         DEFW    ?0021
  186.         DEFW    ?0022
  187.         DEFW    ?0023
  188.         DEFW    ?0028
  189.         DEFW    ?0028
  190.         DEFW    ?0028
  191.         DEFW    ?0028
  192.         DEFW    ?0028
  193.         DEFW    ?0029
  194. ?0010:
  195.         DEFB    'Succeeded'
  196.         DEFB    0
  197. ?0011:
  198.         DEFB    'A hard error occured in the low level disk I/O layer'
  199.         DEFB    0
  200. ?0012:
  201.         DEFB    'Assertion failed'
  202.         DEFB    0
  203. ?0013:
  204.         DEFB    'The physical drive cannot work'
  205.         DEFB    0
  206. ?0014:
  207.         DEFB    'Could not find the file'
  208.         DEFB    0
  209. ?0015:
  210.         DEFB    'Could not find the path'
  211.         DEFB    0
  212. ?0016:
  213.         DEFB    'The path name format is invalid'
  214.         DEFB    0
  215. ?0017:
  216.         DEFB    'Acces denied due to prohibited access or directory full'
  217.         DEFB    0
  218. ?0018:
  219.         DEFB    'Acces denied due to prohibited access'
  220.         DEFB    0
  221. ?0019:
  222.         DEFB    'The file/directory object is invalid'
  223.         DEFB    0
  224. ?0020:
  225.         DEFB    'The physical drive is write protected'
  226.         DEFB    0
  227. ?0021:
  228.         DEFB    'The logical drive number is invalid'
  229.         DEFB    0
  230. ?0022:
  231.         DEFB    'The volume has no work area'
  232.         DEFB    0
  233. ?0023:
  234.         DEFB    'There is no valid FAT volume on the physical drive'
  235.         DEFB    0
  236. ?0028:
  237.         DEFB    'file error'
  238.         DEFB    0
  239. ?0029:
  240.         DEFB    'Without MBR'
  241.         DEFB    0
  242.         END
  243.        
  244.  
  245.  
  246.