?login_element?

Subversion Repositories NedoOS

Rev

Rev 1679 | 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_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.         ld c,CMD_READHANDLE    
  108.         jr label1
  109. OS_WRITEHANDLE:
  110.         ld c,CMD_WRITEHANDLE
  111. label1:
  112.         pop af
  113.         pop hl
  114.         push hl
  115.         push af
  116.         push ix
  117.         push iy
  118.         call BDOS
  119.         ld (errno),a
  120.         ld b,d
  121.         ld c,e
  122.         pop iy
  123.         pop ix
  124.         ret
  125.         ENDMOD
  126.        
  127.         MODULE OSCREATEHANDLE
  128.         PUBLIC OS_CREATEHANDLE
  129.         EXTERN errno
  130.         #include "sysdefs.asm"
  131.         RSEG CODE
  132. OS_CREATEHANDLE:
  133.         push ix
  134.         push iy
  135.         ld a,c
  136.         and 0x80
  137.         ld b,a
  138.         ld a,c
  139.         and 0x7f
  140.    ex af,af'
  141.         ld c,CMD_CREATEHANDLE  
  142.         call BDOS
  143.         ld (errno),a
  144.         ld h,b
  145.         ld l,a
  146.         pop iy
  147.         pop ix
  148.         ret
  149.         ENDMOD
  150.        
  151.         MODULE FS_GET_ERR_STR
  152.         PUBLIC fs_get_err_str
  153.         EXTERN errno
  154.         #include "sysdefs.asm"
  155.         RSEG CODE
  156. fs_get_err_str:
  157.         push de
  158.         LD      HL,(errno)
  159.         LD      H,0
  160.         ADD     HL,HL
  161.         LD      BC,fs_errs
  162.         ADD     HL,BC
  163.         LD      a,(HL)
  164.         INC     HL
  165.         LD      h,(HL)
  166.     ld l,a
  167.         pop de
  168.         ret
  169.    
  170.         RSEG CONST
  171.  
  172. fs_errs:
  173.         DEFW    ?0010
  174.         DEFW    ?0011
  175.         DEFW    ?0012
  176.         DEFW    ?0013
  177.         DEFW    ?0014
  178.         DEFW    ?0015
  179.         DEFW    ?0016
  180.         DEFW    ?0017
  181.         DEFW    ?0018
  182.         DEFW    ?0019
  183.         DEFW    ?0020
  184.         DEFW    ?0021
  185.         DEFW    ?0022
  186.         DEFW    ?0023
  187.         DEFW    ?0028
  188.         DEFW    ?0028
  189.         DEFW    ?0028
  190.         DEFW    ?0028
  191.         DEFW    ?0028
  192.         DEFW    ?0029
  193. ?0010:
  194.         DEFB    'Succeeded'
  195.         DEFB    0
  196. ?0011:
  197.         DEFB    'A hard error occured in the low level disk I/O layer'
  198.         DEFB    0
  199. ?0012:
  200.         DEFB    'Assertion failed'
  201.         DEFB    0
  202. ?0013:
  203.         DEFB    'The physical drive cannot work'
  204.         DEFB    0
  205. ?0014:
  206.         DEFB    'Could not find the file'
  207.         DEFB    0
  208. ?0015:
  209.         DEFB    'Could not find the path'
  210.         DEFB    0
  211. ?0016:
  212.         DEFB    'The path name format is invalid'
  213.         DEFB    0
  214. ?0017:
  215.         DEFB    'Acces denied due to prohibited access or directory full'
  216.         DEFB    0
  217. ?0018:
  218.         DEFB    'Acces denied due to prohibited access'
  219.         DEFB    0
  220. ?0019:
  221.         DEFB    'The file/directory object is invalid'
  222.         DEFB    0
  223. ?0020:
  224.         DEFB    'The physical drive is write protected'
  225.         DEFB    0
  226. ?0021:
  227.         DEFB    'The logical drive number is invalid'
  228.         DEFB    0
  229. ?0022:
  230.         DEFB    'The volume has no work area'
  231.         DEFB    0
  232. ?0023:
  233.         DEFB    'There is no valid FAT volume on the physical drive'
  234.         DEFB    0
  235. ?0028:
  236.         DEFB    'file error'
  237.         DEFB    0
  238. ?0029:
  239.         DEFB    'Without MBR'
  240.         DEFB    0
  241.         END
  242.        
  243.  
  244.  
  245.