?login_element?

Subversion Repositories NedoOS

Rev

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

  1.         MODULE Dos
  2.        
  3. FMODE_READ = #01
  4. FMODE_CREATE = #0E
  5.  
  6. ; HL - filename in ASCIIZ
  7. loadBuffer:
  8.     ld b, Dos.FMODE_READ: call Dos.fopen
  9.     push af
  10.         ld hl, outputBuffer, bc, #ffff - outputBuffer : call Dos.fread
  11.         ld hl, outputBuffer : add hl, bc : xor a : ld (hl), a : inc hl : ld (hl), a
  12.     pop af
  13.     call Dos.fclose
  14.     ret
  15.         ret
  16.  
  17. ; Opens file on default drive
  18. ; B - File mode
  19. ; HL - File name
  20. ; Returns:
  21. ;  A - file stream id
  22. fopen
  23.         ex de,hl
  24.         ld c,nos.CMD_OPENHANDLE
  25.         ld a,b
  26.         cp FMODE_CREATE
  27.         jr nz,.noncreate
  28.         ld c,nos.CMD_CREATEHANDLE      
  29. .noncreate
  30.         call nos.BDOS
  31.         ld a,b
  32.         ret
  33.  
  34. ; A - file stream id
  35. ; BC - length
  36. ; HL - buffer
  37. ; Returns:
  38. ;   BC - actually written bytes
  39. fwrite
  40.         ex de,hl
  41.         ld h,b
  42.         ld l,c
  43.         ld b,a
  44.         ld c,nos.CMD_WRITEHANDLE
  45.         call nos.BDOS
  46.         ld b,h
  47.         ld c,l
  48.         ret
  49.        
  50. ; A - file stream id
  51. fclose
  52.         ld b,a
  53.         ld c,nos.CMD_CLOSEHANDLE
  54.         call nos.BDOS
  55.         ret
  56.        
  57. ; A - file stream id
  58. ; BC - length
  59. ; HL - buffer
  60. ; Returns
  61. ;  BC - length(how much was actually read)
  62. fread:
  63.         ex de,hl
  64.         ld h,b
  65.         ld l,c
  66.         ld b,a
  67.         ld c,nos.CMD_READHANDLE
  68.         call nos.BDOS
  69.         ld b,h
  70.         ld c,l
  71.         ret
  72.     ENDMODULE
  73.