Here is a slightly longer example of a script declaration block.
# A machine from the good old days (?)
decl {
! The original IBM PC XT from 1983, complete with
! a <em>full-height</em> 10 MB fixed disk and a 5 1/4" floppy drive.
# Note that comments (like this one) are distinct from doc strings.
param ram_size : int = 256
! RAM size in KiB. Max is 640, which should be enough for anyone.
param cpu_freq : float = 4.77
! CPU frequency in MHz.
param video : {mda, cga, hercules} = cga
! Type of video card. mda & hercules look best.
group "networking"
param mac_addr : string or nil = NIL
! Ethernet MAC address, or NIL if no Ethernet adapter present.
param rom_file : file("*.bin") = "%script%/pc_xt_rom.bin"
! File containing the ROM image. Must be exactly 40 KiB.
param rtc_time : string = "2015-02-01 13:37:00"
! Initial time and date of the real-time clock, on the form
! <tt>"YYYY-MM-DD HH:MM:SS"</tt>.
# Include parameters declared in another file.
params from "ms-dos.simics"
# Override the default value of a parameter from that file
default dos_ver = "2.11"
result system : string
! Name of generated system component object.
}
# Here the actual script starts with commands to execute.