Get files stored on virtual amigaDisk
s as raw data
or copy as file.
Usage
# S4 method for amigaDisk,character,missing
get.adf.file(x, source, destination)
# S4 method for amigaDisk,character,character
get.adf.file(x, source, destination)
# S4 method for amigaDisk,character,ANY
get.adf.file(x, source, destination)
Arguments
- x
An
amigaDisk
object from which a file needs to be extracted.- source
Specify the source file's path on the
amigaDisk
object, conform Amiga specs. Seecurrent.adf.dir
for details on these specs.- destination
either a file name or a file connection, that allows writing binary data (see e.g.,
file
orurl
). When the destination is missing, the file content is returned asraw
data.
Value
Returns a vector
of raw
data when the
argument destination
is missing. Otherwise returns nothing.
Details
Amiga DOS formatted disks can store any kind of file (as long as the disk's capacity allows it). Use this method to extract such files embedded in an Amiga Disk File (ADF) as raw data or copy to a file on your system.
Examples
data(adf.example)
if (FALSE) {
## get the file "Startup-Sequence" from the virtual
## example disk and save as a text file in the
## current working directory:
get.adf.file(adf.example, "DF0:S/Startup-Sequence", "startup.txt")
}
## get the same file as raw data
## by omitting the destination:
startup <- get.adf.file(adf.example, "DF0:S/Startup-Sequence")
## Look, it's a text file:
startup |> rawToChar() |> iconv(from = "ISO-8859-1", to = "UTF-8")
#> [1] "; The Startup-Sequence is executed after booting\n; Everything after semicolons are comments and is ignored\n; By default standard commands are loaded from\n; the ROM kickstart. Additional commands should be\n; stored on the disk in the SYS:C directory.\n; For demonstration purposes we only echo some\n; text to the screen... Note that this will not\n; work on Amiga OS <2.0 as \"Echo\" is not available\n; in older ROM kickstart versions.\n\nEcho \"\033c\033[22m\033[32mADF Explorer Example Disk\" ; Note that the weird characters at the start are escape-codes to format the text\nEcho \"\033[0mThis disk was created as an example for the\"\nEcho \"R package 'adfExplorer' by Pepijn de Vries.\""
if (requireNamespace("ProTrackR", quietly = TRUE)) {
## look there is a typical ProTracker module on
## the example disk. You can load it like this:
## get the file from the virtual disk
## as raw data
mod.raw <- get.adf.file(adf.example, "DF0:mods/mod.intro")
## open a raw connection with the
## newly imported raw data
con <- rawConnection(mod.raw, "rb")
## and read it as a ProTracker module
mod <- ProTrackR::read.module(con)
close(con)
## plot the first sample from the module:
plot(ProTrackR::waveform(ProTrackR::PTSample(mod, 1)),
type = "l", ylab = "amplitude")
} else {
cat("You need to install and load the\nProTrackR package for this part of the example.")
}