Create a file: Difference between revisions
Content added Content deleted
(→{{header|BQN}}: Point out working directory versus script path issue) |
No edit summary |
||
Line 2,238: | Line 2,238: | ||
process::exit(code) |
process::exit(code) |
||
}</lang> |
}</lang> |
||
=={{header|S-BASIC}}== |
|||
CP/M (the only operating system supported by S-BASIC) does not have named directories or a |
|||
tree-structured file system. The closest thing to a "root" directory would be user area 0 on |
|||
drive A:, which on a stock system will be the logged in directory on a cold boot. The "call" |
|||
statement, which normally serves to invoke an assembly language routine, is here used to |
|||
call upon the BDOS to switch to the desired directory. |
|||
<lang BASIC> |
|||
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 |
|||
</lang> |
|||
=={{header|Scala}}== |
=={{header|Scala}}== |