Special Feature: ColorForth Commentary

COLOR.ASM: First items

Original file

NOTICE: This is a work in progress. Parts of my commentary are still very rough. However, I have it up on the web because even in this rough form it may be useful to ColorForth enthusiasts. Expect the contents of these files to change frequently.

;colorforth, 2001 jul 22, chuck moore, public domain

.model tiny
.486p
only segment use32
assume ds:only

next macro adr
;[Refs: read, write, dev, ati0, switch, b16, b32, emit, emit2, box,
;       four1, hdot, dot, destack, insert0, insert1, enstack]
	dec	ecx
	jnz	adr
endm

dup_ macro
;[Refs: onoff, flop, readyf, white, dev, ati0, switch, warm, pause, show,
;       execute, adup, var1, short_, num, here, qlit, debug, nc_, xy_, fov_,
;       sps, last_, cyan, magenta, silver, blue, red, green, right, down,
;       blank, octant, four1, stack, keyboard, key, full, word_, word1,
;       edig1, odig, dot10, unpack, qring, ring, ww, cap, caps, type_,
;       type1, gnw1, nw1, refresh, actv, e, destack, format2, enstack]
	lea	esi, [esi-4]
	mov	[esi], eax
endm

drop macro
;[Refs: onoff, readf1, seekf, cmdf, readyf, color, dev, ati0, fifof, switch,
;       bl_, emit2, line, no, unpause, act, ex1, ex2, cshort, qcompile,
;       call_, comma, then, jump, load, erase, copy, echo_, right, lms, rms,
;       at, pat, nul0, lj, x, word0, xn, number0, number2, endn, alphn,
;       star0, hdotn, hdot, dot, d_2, qring, type0, type2, actn, e0, edit, e,
;       eout, insert0, insert1, format, ens, drop]
	lodsd
endm

;hp equ 800
;vp equ 600
;vesa equ 114h

hp equ 1024
;[Refs: start0, frame, switch, clip, b32, emit, emit2, box, hc, blank,
;       keyboard]

vp equ 768
;[Refs: start0, frame, switch, box, vc, fov, blank, keyboard]

vesa equ 117h
;[Refs: start0]

buffer equ 604*256
;[Refs: trash, destack]

include boot.asm ; boot boot0 hard

; 100000 dictionary
;  a0000 top of return stack
;  9f800 top of data stack
;  9d800 free
;  97000 floppy buffer
;   4800 source

icons equ 12*256*4 ; 3000
;[Refs: emit, emit2]

;   7c00 bios boot sector
;      0 forth

warm:
;[Refs: forth2]
	dup_

start1:
;[Refs: start2]
	call	ati0                      ; Set up video-card memory.
;	mov	screen, offset nul
;	xor	eax, eax
	call	show0                     ; Run "god" task for first time.
	mov	forths, (forth1-forth0)/4 ; Remove additions to FORTH
	mov	macros, (macro1-macro0)/4 ;   and MACRO wordlists.
	mov	eax, 18                   ; Load and run block 18.
	call	load
	jmp	accept

Check the index for other entries.