From b6ad2c596b8dd4b640f05fbcb682e94348667ee1 Mon Sep 17 00:00:00 2001 From: Stephen Adams Date: Wed, 1 Dec 1993 03:08:03 +0000 Subject: [PATCH] Altered event:after-restarts to allow a band containing the win32 system to be loaded on a DOS-only microcode. --- v7/src/win32/graphics.scm | 10 +++++----- v7/src/win32/module.scm | 15 +++++++++++---- v7/src/win32/win_ffi.scm | 12 ++++-------- v7/src/win32/wt_user.scm | 4 ++-- 4 files changed, 22 insertions(+), 19 deletions(-) diff --git a/v7/src/win32/graphics.scm b/v7/src/win32/graphics.scm index efd1de117..da80f89b6 100644 --- a/v7/src/win32/graphics.scm +++ b/v7/src/win32/graphics.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: graphics.scm,v 1.2 1993/11/10 21:38:05 adams Exp $ +$Id: graphics.scm,v 1.3 1993/12/01 03:08:03 adams Exp $ Copyright (c) 1993 Massachusetts Institute of Technology @@ -659,8 +659,8 @@ MIT in each case. |# (define (->color spec) (cond ((integer? spec) - (if (< spec 0x02000000) - (+ spec 0x02000000) + (if (< spec #x02000000) + (+ spec #x02000000) spec)) ((and (vector? spec) (= (vector-length spec) 3)) (rgb (vector-ref spec 0) (vector-ref spec 1) (vector-ref spec 2))) @@ -854,7 +854,6 @@ MIT in each case. |# (register-class (+) (get-handle 3) 0 0 hInstance hIcon 32515 NULL_BRUSH 0 "SCHEME-GRAPHICS"))) - (define (initialize-package!) (set! win32-graphics-device-type (make-graphics-device-type @@ -909,7 +908,8 @@ MIT in each case. |# (lambda (pair) (win32-graphics/define-color #f (car pair) (cdr pair))) initial-color-definitions) (register-graphics-window-class) - (add-event-receiver! event:after-restore register-graphics-window-class) + (add-event-receiver! event:after-restore + (when-microcode-supports-win32 register-graphics-window-class)) (register-graphics-device-type 'win32 win32-graphics-device-type) unspecific) diff --git a/v7/src/win32/module.scm b/v7/src/win32/module.scm index 04ba4fc50..cd11a714e 100644 --- a/v7/src/win32/module.scm +++ b/v7/src/win32/module.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: module.scm,v 1.2 1993/11/10 21:36:46 adams Exp $ +$Id: module.scm,v 1.3 1993/12/01 03:08:03 adams Exp $ Copyright (c) 1993 Massachusetts Institute of Technology @@ -136,8 +136,8 @@ MIT in each case. |# (define (mark-modules-as-unloaded!) (protection-list/for-each - (lambda (module) (unload-module! module #f)) - *modules*)) + (lambda (module) (unload-module! module #f)) + *modules*)) ;; ;;------------------------------------- @@ -218,6 +218,12 @@ MIT in each case. |# ;;---------------------------------------------------------------------- ;; +(define (when-microcode-supports-win32 thunk) + ;; This is for wrapping event:after-restore procedures so that a windows + ;; band will restore into a DOS only microcode. + (lambda () + (if (implemented-primitive-procedure? (ucode-primitive nt:load-library 1)) + (thunk)))) (define (initialize-module-package!) (set! *modules* @@ -228,5 +234,6 @@ MIT in each case. |# ;; (free-library (cell-contents handle)))) (lambda (handle-cell) handle-cell) )) - (add-event-receiver! event:after-restore mark-modules-as-unloaded!) + (add-event-receiver! event:after-restore + (when-microcode-supports-win32 mark-modules-as-unloaded!)) ) diff --git a/v7/src/win32/win_ffi.scm b/v7/src/win32/win_ffi.scm index 379072fda..acd0c5812 100644 --- a/v7/src/win32/win_ffi.scm +++ b/v7/src/win32/win_ffi.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: win_ffi.scm,v 1.2 1993/11/10 21:41:48 adams Exp $ +$Id: win_ffi.scm,v 1.3 1993/12/01 03:08:03 adams Exp $ Copyright (c) 1993 Massachusetts Institute of Technology @@ -378,7 +378,6 @@ MIT in each case. |# ;; (make-windows-procedure kernel32.dll "SetLastError" void-result int-arg)) (define close-window) -(define create-rect-rgn) (define create-round-rect-rgn) (define create-window-ex) (define dispatch-message) @@ -433,11 +432,6 @@ MIT in each case. |# (widthellipse int)(heightellipse int)) hrgn gdi32.dll "CreateRoundRectRgn")) - (set! create-rect-rgn - (windows-procedure - (create-rect-rgn (left int) (top int) (right int) (bottom int)) - hrgn gdi32.dll "CreateRectRgn")) - (set! pt-in-region (windows-procedure (pt-in-region (hrgn hrgn) (x int) (y int)) bool gdi32.dll "PtInRegion")) @@ -508,7 +502,9 @@ MIT in each case. |# (purify general-scheme-wndproc) (flush-purification-queue!) (install-general-scheme-wndproc!) - (add-event-receiver! event:after-restore install-general-scheme-wndproc!) + (add-event-receiver! + event:after-restore + (when-microcode-supports-win32 install-general-scheme-wndproc!)) (create-windows-procedures!) (initialize-wndproc-registry) diff --git a/v7/src/win32/wt_user.scm b/v7/src/win32/wt_user.scm index 6f0cac285..ddfd2bbc4 100644 --- a/v7/src/win32/wt_user.scm +++ b/v7/src/win32/wt_user.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Id: wt_user.scm,v 1.2 1993/11/10 21:43:04 adams Exp $ +$Id: wt_user.scm,v 1.3 1993/12/01 03:08:03 adams Exp $ Copyright (c) 1993 Massachusetts Institute of Technology @@ -136,7 +136,7 @@ MIT in each case. |# (int32-offset-set! (paintstruct/mem r) 20 v)) (define-integrable (set-paintstruct/f-restore! r v) (byte-offset-set! (paintstruct/mem r) 24 (bool->int v))) -(define-integrable (set-paintstruct/f-erase! r v) +(define-integrable (set-paintstruct/f-inc-update! r v) (byte-offset-set! (paintstruct/mem r) 28 (bool->int v))) (define (make-paintstruct) -- 2.25.1