50 lines
1.7 KiB
Plaintext
50 lines
1.7 KiB
Plaintext
|
|
||
|
; To load the VM into Scheme 48:
|
||
|
; ,exec ,load README
|
||
|
;
|
||
|
; Then, for example,
|
||
|
; (start-vm "~/s48/initial.image" 4000000 20000 '#())
|
||
|
; in the user package will start up the VM with the initial image.
|
||
|
; Be patient. It will take a while. Running the initial image as
|
||
|
; above on a SGI Indy (100 mhz R4000) it took over 70 minutes to
|
||
|
; get the - prompt. scheme48.image starts up faster as it does little
|
||
|
; in the way of initialization.
|
||
|
;
|
||
|
; You will need to have a large heap to start with. -h 12000000 works
|
||
|
; for loading the initial image in version 0.35, smaller heaps may also
|
||
|
; work.
|
||
|
|
||
|
(config)
|
||
|
(load "ps-interface.scm")
|
||
|
(load "interfaces.scm")
|
||
|
(load "s48-package-defs.scm")
|
||
|
(load "package-defs.scm")
|
||
|
(load-package 'destructuring) ; used in FOR-SYNTAX clause
|
||
|
(load-package 'bigbit)
|
||
|
(load-package 'interpreter)
|
||
|
|
||
|
(user)
|
||
|
(open 'pre-scheme)
|
||
|
(open 'interpreter)
|
||
|
(open 'memory-debug)
|
||
|
|
||
|
(run '
|
||
|
(define (start-vm image-file heap-size stack-size start-args)
|
||
|
(reinitialize-memory)
|
||
|
(let ((needed-space (+ (quotient (check-image-header image-file) 4)
|
||
|
(required-init-space start-args (vector-length start-args)))))
|
||
|
(cond ((< heap-size (* 16 needed-space))
|
||
|
(display "Heap too small, want at least ")
|
||
|
(display (* 16 needed-space))
|
||
|
(newline))
|
||
|
(else
|
||
|
(let ((heap (allocate-memory heap-size))
|
||
|
(stack (allocate-memory stack-size)))
|
||
|
(initialize-vm heap (quotient heap-size 4)
|
||
|
stack (quotient stack-size 4))
|
||
|
(call-startup-procedure (read-image image-file 0)
|
||
|
start-args
|
||
|
(vector-length start-args)))))))
|
||
|
)
|
||
|
|