RosettaCodeData/Task/Create-a-file/S-BASIC/create-a-file.basic

35 lines
787 B
Plaintext

rem -- Set the logged drive ('A' to 'P')
procedure setdrive (drive = char)
var hl, de, bc, a_psw = integer
rem -- ensure drive letter is upper case
if drive >= 'a' then drive = drive - 32
hl = 0
de = drive - 65
bc = 0EH rem BDOS set drive function
a_psw = 0
rem - call BDOS with drive number in DE
call (5H,hl,de,bc,a_psw)
end
rem -- Set the CP/M user area (0 to 15)
procedure setuser (user = integer)
var hl, bc, a_psw = integer
hl = 0
bc = 20H rem BDOS set user function
a_psw = 0
rem - call BDOS with user number in DE
call (5H,hl,user,bc,a_psw)
end
comment
create empty file "output.txt" in current directory and in
startup directory (drive A:, user 0)
end
create "OUTPUT.TXT"
setdrive 'A'
setuser 0
create "OUTPUT.TXT"
end