set-up-boot-progress ((m-b) a-disk-run-light) ;;get to beginning of line four lines above run bars ((m-b) sub m-b (a-constant (eval (+ 32. 32. 32. 32. 12.)))) ((a-boot-progress-base) m-b) ;;draw four whole lines worth of zeros starting one line ;;above a-boot-progress-base ((md) setz) ((m-c) (a-constant (* 32. 4))) ((m-d) sub m-b (a-constant 32.)) clear-boot-progess-field ((vma-start-write) m-d) (check-page-write-map-reload-only) ((m-d) add m-d (a-constant 1)) ((m-c) sub m-c (a-constant 1)) (jump-not-equal m-c a-zero clear-boot-progress-field) ;;now draw a line with a bit for every 128. pages ((md) seto) ((m-d) a-boot-progress-base) ((m-d) add m-d (a-constant 32.)) ((vma-start-read) (a-constant (+ 400 %sys-com-valid-size))) (illop-if-page-fault) ((m-c) ldb (byte 20. 12.) md) ;divide by 128 * 32 draw-boot-progress-baseline ((vma-start-write) m-d) (check-page-write-map-reload-only) ((m-d) add m-d (a-constant 1)) ((m-c) sub m-c (a-constant 1)) (jump-not-equal m-c a-zero draw-boot-progress-baseline) (popj) update-boot-progress ((m-tem) a-number-of-pages-copied) ((m-tem) ldb (byte 20. 12.) m-tem) ((vma) a-boot-progress-base) ((md) seto) draw-boot-progress-full-words ((vma-start-write) vma) (check-page-write-map-reload-only) ((vma) add vma (a-constant 1)) ((m-tem) sub m-tem (a-constant 1)) (jump-not-equal m-tem a-zero draw-boot-progress-full-words) ((m-tem) a-number-of-pages-copied) ((m-tem) ldb (byte 5 7) m-tem) ;sort of remainder by 32. #+lambda((m-tem) sub m-tem (a-constant 1)) ((oa-mod-low) oal-bytl-1 m-tem) ((md) dpb m-minus-one (byte 0 0) a-zero) ((vma-start-write) vma) (check-page-write-map-reload-only) (popj)