1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2026-01-22 18:15:59 +00:00
Files
PLASMA/src/libsrc/fileio.pla

129 lines
2.3 KiB
Plaintext

include "inc/cmdsys.plh"
//
// ProDOS error code
//
export byte perr
//
// ProDOS routines
//
export def getpfx(path)
byte params[3]
^path = 0
params.0 = 1
params:1 = path
perr = syscall($C7, @params)
return path
end
export def setpfx(path)
byte params[3]
params.0 = 1
params:1 = path
perr = syscall($C6, @params)
return path
end
export def getfileinfo(path, fileinfo)
byte params[18]
params.0 = 10
params:1 = path
perr = syscall($C4, @params)
memcpy(fileinfo, @params + 3, 15)
return perr
end
export def open(path, buf)
byte params[6]
params.0 = 3
params:1 = path
params:3 = buf
params.5 = 0
perr = syscall($C8, @params)
return params.5
end
export def close(refnum)
byte params[2]
params.0 = 1
params.1 = refnum
perr = syscall($CC, @params)
return perr
end
export def read(refnum, buf, len)
byte params[8]
params.0 = 4
params.1 = refnum
params:2 = buf
params:4 = len
params:6 = 0
perr = syscall($CA, @params)
return params:6
end
export def write(refnum, buf, len)
byte params[8]
params.0 = 4
params.1 = refnum
params:2 = buf
params:4 = len
params:6 = 0
perr = syscall($CB, @params)
return params:6
end
export def create(path, access, type, aux)
byte params[12]
params.0 = 7
params:1 = path
params.3 = access
params.4 = type
params:5 = aux
params.7 = $1
params:8 = 0
params:10 = 0
perr = syscall($C0, @params)
return perr
end
export def destroy(path)
byte params[3]
params.0 = 1
params:1 = path
perr = syscall($C1, @params)
return perr
end
export def newline(refnum, emask, nlchar)
byte params[4]
params.0 = 3
params.1 = refnum
params.2 = emask
params.3 = nlchar
perr = syscall($C9, @params)
return perr
end
export def readblock(unit, buf, block)
byte params[6]
params.0 = 3
params.1 = unit
params:2 = buf
params:4 = block
perr = syscall($80, @params)
return perr
end
export def writeblock(unit, buf, block)
byte params[6]
params.0 = 3
params.1 = unit
params:2 = buf
params:4 = block
perr = syscall($81, @params)
return perr
end
done