;   
;   
;   
;    SOL SYSTEM EQUATES
;   
;   
;  VDM PARAMETERS
;   
VDMEM  EQU  0CC00H  ;VDM SCREEN MEMORY
HIBYTE  EQU  0CCH  ;MEMORY HIGH BYTE
;   
;   
  IF  EXT
; CP/M TARBELL EQUATES
CPDISK  EQU  0  ;0 FOR RIGHT, 10H FOR LEFT
CPDCOMD EQU  0D0H
CPDSTAT EQU  CPDCOMD
CPDTRCK EQU  CPDCOMD+1
CPDSCTR EQU  CPDCOMD+2
CPDDATA EQU  CPDCOMD+3
CPDWAIT EQU  CPDCOMD+4
CPDCCMD EQU  CPDCOMD+4
;   
  ENDF
;   
;  KEYBOARD SPECIAL KEY ASSIGNMENTS
;   
DOWN  EQU  9AH
UP  EQU  97H
LEFT  EQU  81H
RIGHT  EQU  93H
MODE  EQU  80H
CLEAR  EQU  8BH
HOME  EQU  08EH
BACKS  EQU  5FH  ;BACKSPACE
  IF  EXT
BELL  EQU  7
CEOL  EQU  12
  ENDF
LF  EQU  10
CR  EQU  13
BLANK  EQU  ' '
SPACE  EQU  BLANK
CX  EQU  'X'-40H
ESC  EQU  1BH
;   
;  PORT ASSIGNMENTS
;   
  IF  EXT
ALARM  EQU  0FCH
  ENDF
STAPT  EQU  0FAH  ;STATUS PORT GENERAL
SERST  EQU  0F8H  ;SERIAL STATUS PORT
SDATA  EQU  0F9H  ;SERIAL DATA
TAPPT  EQU  0FAH  ;TAPE STATUS PORT
TDATA  EQU  0FBH  ;TAPE DATA
KDATA  EQU  0FCH  ;KEYBOARD DATA
PDATA  EQU  0FDH  ;PARALLEL DATA
DSTAT  EQU  0FEH  ;VDM DISPLAY PARAMETER PORT
SENSE  EQU  0FFH  ;SENSE SWITCHES
;
;
;  BIT ASSIGNMENT MASKS
;
SCD  EQU  1  ;SERIAL CARRIER DETECT
SDSR  EQU  2  ;SERIAL DATA SET READY
SPE  EQU  4  ;SERIAL PARITY ERROR
SFE  EQU  8  ;SERIAL FRAMING ERROR
SOE  EQU  16  ;SERIAL OVERRUN ERROR
SCTS  EQU  32  ;SERIAL CLEAR TO SEND
SDR  EQU  64  ;SERIAL DATA READY
STBE  EQU  128  ;SERIAL TRANSMITTER BUFFER EMPTY
;
KDR  EQU  1  ;KEYBOARD DAYA READY
PDR  EQU  2  ;PARALLEL DATA READY
PXDR  EQU  4  ;PARALLEL DEVICE READY
TFE  EQU  8  ;TAPE FRAMING ERROR
TOE  EQU  16  ;TAPE OVERRUN ERROR
TDR  EQU  64  ;TAPE DATA READY
TTBE  EQU  128  ;TAPE TRANSMITTER BUFFER EMPTY
;
SOK  EQU  1  ;SCROLL OK FLAG
;
TAPE1  EQU  80H  ;1=TURN TAPE ONE ON
TAPE2  EQU  40H  ;1=TURN TAPE TWO ON
;
;
;
;    SOL SYSTEM GLOBAL AREA
;
; ORG  0C800H  ;START OF 1K RAM AREA
;   
SYSRAM  EQU  $  ;START OF SYSTEM RAM
SYSTP  EQU  $+1024  ;STACK IS AT THE TOP
;   
;   
;  ***** PARAMETERS STORED IN RAM *****
;   
UIPRT  DS  2  ;USER DEFINED INPUT RTN IF NON-ZERO
UOPRT  DS  2  ;USER DEFINED OUTPUT RTN IF NON-ZERO
DFLTS  DS  2  ;DEFAULT PSUEDO I/O PORTS
;   (ALWAYS ZERO IN SOLOS)
IPORT  DS  1  ;CRNT INPUT PSEUDO PORT
OPORT  DS  1  ;CRNT OUTPUT PSEUDO PORT
NCHAR  DS  1  ;CURRENT CHARACTER POSITION
LINE  DS  1  ;CURRENT LINE POSITION
BOT  DS  1  ;BEGINNING OF TEXT DISPLACEMENT
SPEED  DS  1  ;SPEED CONTROL BYTE
ESCFL  DS  1  ;ESCAPE FLAG CONTROL BYTE
TSPD  DS  1  ;CURRENT TAPE SPEED
INPTR  DS  2  ;FOR COMPATABILITY W/CUTER
NUCNT  DS  1  ;NUMBER OF NULLS AFTER CRLF
IGNCR  DS  1  ;FF=IGNORE CRC ERRORE, ELSE NORMAL
;
  DS  10  ;ROOM FOR FUTURE EXPANSION
;
;
; THIS IS THE HEADER LAYOUT
;
THEAD  DS  5  ;NAME
  DS  1  ;THIS BYTE MUST BE ZERO
HTYPE  DS  1  ;TYPE
BLOCK  DS  2  ;BLOCK SIZE
LOADR  DS  2  ;LOAD ADDRESS
XEQAD  DS  2  ;AUTO-EXECUTE ADDRESS
HSPR  DS  3  ;SPARES
;
HLEN  EQU  $-THEAD  ;LENGTH OF HEADER
BLKOF  EQU  BLOCK-THEAD  ;OFFSET TO BLOCK SIZE
DHEAD  DS  HLEN  ;A DUMMY HDR FOR COMPARES WHILE RDING
;
;
CUTAB  DS  6*4  ;ROOM FOR UP TO 6 CUSTOM USER COMMANDS
;   
;
FNUMF  DS  1  ;FOR CURRENT FILE OPERATIONS
FCBAS  DS  7  ;1ST FILE CONTROL BLOCK
FCBA2  DS  7  ;2ND FILE CONTROL BLOCK
FBUF1  DS  2*256  ;SYSTEM FILE BUFFER BASE
  DS  81  ;THIS IS AN AREA USED BY CUTER
USARE  EQU  $  ;START OF USER AREA *****************
; REMEMBER THAT THE STACK WORKS ITS WAY DOWN FROM
; THE END OF THIS 1K RAM AREA.
;   
;   
;   

