?login_element?

Subversion Repositories NedoOS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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