home *** CD-ROM | disk | FTP | other *** search
- ; V9t9: the TI Emulator! v6.0 Source
- ; Copyright (c) 1996-2000 by Edward Swartz
-
- ;==========================================================================
- ; RAM definitions for V9t9 FORTH ROM.
- ;
- ;==========================================================================
-
- ; WPs: we reserve >8300 - >83FF
-
- mainws equ >8300 ; main FORTH workspace
- intws equ >8320 ; interrupt workspace
- xopws equ >8380 ; XOP workspace (shared, ints off)
- vidws equ >83E0 ; video & term workspace
- dskws equ >83E0 ; disk workspace
-
- ; STACKs: we reserve >2000 - >2800
-
- aorg >2000
-
- sysstack bss >40 ; system stack
- sysstacksize equ $ sysstack -
-
- uptime bss 4 ; time in 1/60 seconds
- timeout bss 2 ; timeout counter
- userint bss 2 ; user int routine (bl @xxxx)
-
- vregs bss 2 ; VDP registers 0 and 1
- vscreen bss 2 ; VDP addr of screen
- vpatts bss 2 ; VDP addr of patterns
- vcolors bss 2 ; VDP addr of colors
- vsprites bss 2 ; VDP addr of sprites
- vsprpat bss 2 ; VDP addr of sprite patterns
- vsprmot bss 2 ; VDP addr of sprite motion
- vfree bss 2 ; usable space
-
- vwidth bss 1 ; width in chars
- vheight bss 1 ; height in chars
- vdrawchar bss 2 ; draw char in window (BLWP @)
- vscroll bss 2 ; scroll window up a line (BLWP @)
- vclear bss 2 ; clear window (BLWP @)
-
- vcoordaddr bss 2 ; get SIT addr of R0 coord
-
- vcrstimer bss 1 ; timer for blink
- vcrsblink bss 1 ; limit in 1/60 s
- vcursor bss 2 ; cursor blinker (BLWP @)
- vcurs bss 1 ; cursor blink state (0 or >80)
- vcursunder bss 1 ; char under cursor
-
- vstacksize equ >20
- vstack bss vstacksize ; video stack
-
- ;-----------------------------------
-
- @kbdstart equ $
-
- kbdgradr bss 2 ; saved GROM addr
- kbdlast bss 1 ; last char pressed (or 0)
- kbdtimer bss 1 ; timer (1/60 s) since last repeat
- kbdscan bss 1 ; most recent scancode (0-47)
- kbdshft bss 1 ; most recent shift status (>70)
- kbdhead bss 1 ; head of kbd buffer
- kbdtail bss 1 ; tail of kbd buffer
- ; head==tail => empty
-
- kbdbufsize equ 32
- kbdbuf bss kbdbufsize
-
- kbdlimit bss 1 ; 1/60s before repeating
- kbddelay bss 1 ; delay between keyscans
- kbdflag bss 1 ; flag: 0=waiting to repeat, 1=r'ing
- kbdmode bss 1 ; how we interpret keyboard
- ; | >80 = no translation to ASCII
- ; | >40 = no buffering
-
- @kbdlength equ $ @kbdstart -
-
- kbdreturn bss 2 ; return addr
-
- ;---------------------------------------
-
- vfg bss 1 ; foreground color
- vbg bss 1 ; background color
- vch bss 1 ; current char
-
- vcurschar bss 1 ; char of cursor
-
- vwx bss 1 ; window left
- vwy bss 1 ; window right
- vwxs bss 1 ; width of window
- vwys bss 1 ; height of window
- vwcy bss 1 ; last cleared row
- bss 1
-
- vx bss 1 ; x-coord of cursor in window
- vy bss 1 ; y-coord of cursor in window
-
- vmono bss 1
- vidmode bss 1 ; what mode are we in? (M_xxxx)
-
- M_text equ 0
- M_graph equ 1
- M_bit equ 2 ; both mono and color
-
-
- vlinex bss 2
- vliney bss 2
-
-
- ;--------------------------------------
-
- dskstacksize equ >20
- dskstack bss dskstacksize
-
- forthdsk bss 10 ; filename for FORTH disk
-
- ;--------------------------------------
-
- temp equ $ ; COMPLETELY temporary workspace.
- ; not to store ANYTHING useful.
-
- ;---------------
-
- ; To conform with DSRs
-
- aorg >8370
-
- vdplimit bss 2 ; VDP memory size
-
-
-