Digital Research
This commit is contained in:
2020-11-06 18:50:37 +01:00
parent 621ed8ccaf
commit 31738079c4
8481 changed files with 1888323 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
;module text conversion table
dgroup group data
dseg
public text_conversion_table
text_conversion_table RS 6000
END

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,446 @@
;**********************************************************************
;* NEC DEVICE DRIVER FOR GSX - 86 *
;**********************************************************************
; 27/07/83 15:00 WF
;
DDRIVER CSEG
PUBLIC GRRESET,GRSLV,GRSYNC,GRPITCH
PUBLIC GRZOOM
PUBLIC GRCSRFORM,GRCLEAR
PUBLIC GRSTART
PUBLIC GRTEXTW,GRWRITE,GRVECTW
PUBLIC GRVECTE,GRMASK,GRTEXTE
PUBLIC GRCSRO,GRGDCC1,GRGDCC
PUBLIC DDINIT
PUBLIC GRFXON,GRFXOFF
BDOS EQU 0E0H
;
;
;**********************************************************************
;Initilize 7220 chip
DDINIT:
Mov GRCOLR,0 ;clear the color variable
Call GRFXON ;turn on the grafix screen
Ret
;
;**********************************************************************
;* (X,Y) TO SCREEN MEMORY ADDRESS CONVERT *
;* INPUT CX = XAD OUTPUT DX = EAD *
;* DX = YAD CL = DAD *
;**********************************************************************
GRXYCV:
MOV AX,CX
AND CX,000FH
PUSH CX
MOV CL,4
SAR AX,CL
MOV CX,Y_MAX
SUB CX,DX
PUSH AX
MOV AX,PITCH
MUL CX
POP CX
ADD AX,CX
ADD AX,GRSAD1
MOV DX,AX
POP AX
MOV CL,4
SHL AX,CL
MOV CL,AL
RET
;
;**********************************************************************
;* ALL SCREEN MEMORY CLEAR *
;**********************************************************************
GRCLEAR:
Xor AX,AX ;get a zero
Mov GRCOLR,AX ;set the color to green
MOV GRZOOMP,AL ;set zoom to 0
CALL GRZOOM ;
GRCLR010:
Xor DX,DX ;make a zero
CALL GRCSRW ;set cursor
MOV GRMASK_W,0FFFFH
CALL GRMASK ;set mask
MOV CX,3
GRCLR020:
PUSH CX
MOV GRVECTP1,2H ;DIRECTION = 2
MOV GRVECTP2,7FFFH ;LENGTH = 16K
MOV CX,3
CALL GRVECTW ;SEND PARAMETER TO GDC
MOV GRWRT,22H ;SET RESET MODE
MOV GRATTRIB,022H ;
MOV GRWRTP1,0FFH
MOV GRWRTP2,0FFH
MOV CX,2
CALL GRWRITE ;WDAT
POP CX
LOOP GRCLR020 ;
RET
;
;
;
ALCLEAR:
MOV AL,1AH ;CLEAR SCREEN
PUSH AX
PUSH ES
push DI
PUSH SI
PUSH DX
PUSH CX
PUSH BX
XOR DH,DH
MOV DL,AL
MOV cl,2
INT BDOS
pop BX
POP cx
pop DX
POP SI
POP DI
POP ES
POP AX
RET
;
;
;**********************************************************************
;* MULTI COMMAND OUTPUT ROUTINE *
;* INPUT BX = ADDRESS OF COMMAND AND PARAMETERS *
;* CX = NUMBER OF PARAMETERS *
;**********************************************************************
GRMOUT:
CALL GRGDCC1 ; GDC STATUS CHECK
MOV AL,[BX] ;
OUT GRCMD,AL ; COMMAND OUTPUT
CMP CX,0 ; IF NO PARAMETER
JE GRMOUTRET ;
GRMOUT010:
INC BX ;
MOV AL,[BX] ;
OUT GRPARA,AL ; PARAMETER OUTPUT
Call GRGDCC1 ; wait till empty
LOOP GRMOUT010 ;
GRMOUTRET:
RET ; RETURN
;**********************************************************************
GRRESET:
CALL GRGDCC1 ; GDC FIFO EMPTY CHECK
MOV AL,RESETCMD ;
OUT GRCMD,AL ; RESET COMMAND OUTPUT
RET
;**********************************************************************
GRMSTR:
CALL GRGDCC1 ; GDC FIFO EMPTY CHECK
MOV AL,MSTRCMD ;
OUT GRCMD,AL ; MASTER COMMAND OUTPUT
RET
;**********************************************************************
GRSLV:
CALL GRGDCC1 ; GDC FIFO EMPTY CHECK
MOV AL,SLVCMD ;
OUT GRCMD,AL ; SLAVE COMMAND OUTPUT
RET
;**********************************************************************
GRSTART:
CALL GRGDCC1 ; GDC FIFO EMPTY CHECK
MOV AL,STARTCMD ;
OUT GRCMD,AL ; DISPLAY ENABLE
RET
;**********************************************************************
GRSTOP:
CALL GRGDCC1 ; GDC FIFO EMPTY CHECK
MOV AL,STOPCMD ;
OUT GRCMD,AL ; DISPLAY DISABLE
RET
;**********************************************************************
GRVECTE:
CALL GRGDCC1 ; GDC FIFO EMPTY CHECK
MOV AL,VECTECMD ;
OUT GRCMD,AL ; VECTOR EXECUTE
RET
;**********************************************************************
GRTEXTE:
CALL GRGDCC1 ; GDC FIFO EMPTY CHECK
MOV AL,TEXTECMD ;
OUT GRCMD,AL ; TEXT EXECUTE
RET
;**********************************************************************
GRSYNC:
MOV CX,8
MOV BX,DASYNC
CALL GRMOUT ;
RET
;**********************************************************************
GRCSRO:
MOV CX,XAD ;
MOV DX,YAD ;
CALL GRXYCV ;
GRCSRW:
PUSH BX
ADD DX,GRCOLR
MOV GREAD,DX ;
MOV GRDAD,CL ;
MOV CX,3
MOV BX,DACSRW ;
CALL GRMOUT
POP BX
RET
;**********************************************************************
GRMASK: ;SET MASK
PUSH BX
MOV CX,2 ;
MOV BX,DAMASK ;
CALL GRMOUT
POP BX
RET
;**********************************************************************
GRWRITE:
PUSH BX
MOV AL,GRATTRIB ;
AND AL,03H ;
And GRWRT,0FCH ; mask out any old mode bits
Or GRWRT,AL ;
MOV BX,DAWRITE ;
CALL GRMOUT ;
POP BX
RET
;*********************************************************************
GRCSRFORM:
MOV CX,3 ; NUMBER OF PARAMETERS
MOV BX,DACSRFORM ;
CALL GRMOUT
RET
;**********************************************************************
GRZOOM:
MOV CX,1 ;
MOV BX,DAZOOM ;
CALL GRMOUT ;
RET
;**********************************************************************
GRPITCH:
MOV CX,1 ;
MOV BX,DAPITCH ;
CALL GRMOUT ;
RET
;**********************************************************************
GRTEXTW: ;PRAM COMMAND
PUSH BX
MOV CX,8 ;
MOV BX,DATEXTW ;
CALL GRMOUT ;
POP BX
RET
;**********************************************************************
GRVECTW:
PUSH BX
Or GRVECTP2,04000H ;turn on mixed mode flag
MOV BX,DAVECTW ;
CALL GRMOUT ;
POP BX
RET
;
;**********************************************************************
;* GDC STATUS CHECK ROUTINES *
;**********************************************************************
GRGDCC:
IN AL,GRSTATUS ; GDC STATUS READ
TEST AL,08H ; DRAWING (DB3)
JNZ GRGDCC ; IF NOT READY
NOT AL ; VERTICAL SYNC (DB5)
TEST AL,24H ; FIFO EMPTY (DB2)
JNZ GRGDCC ; IF NOT READY
RET ; RETURN IF GDC IS READY
;
GRGDCC1:
IN AL,GRSTATUS ; GDC STATUS READ
TEST AL,04H ; FIFO EMPTY (DB2)
JZ GRGDCC1 ; IF NOT EMPTY
RET ; RETURN IF GDC FIFO IS EMPTY
;*********************************************************************
GRFXON:
Call GRSTOP ;DISABLE DISPLAY
Mov BX,offset GRAPHICS_PARTITION
Mov CX,8 ;number of arguments
Call GRMOUT ;send command and params
CALL GRCLEAR ;CLEAR SCREEN
CALL DELAY
GRFXON1:
IN AL,GRSTATUS ;GDC STATUS READ
TEST AL,20H
JZ GRFXON1
Call GRSTART ;ENABLE DISPLAY
Ret
GRFXOFF:
Call GRSTOP ;DISABLE DISPLAY
Mov BX,offset ALPHA_PARTITION
Mov CX,8 ;number of arguments
Call GRMOUT
CALL ALCLEAR ;CLEAR SCREEN (CHARACER MODE)
CALL DELAY
GRFXOFF1:
IN AL,GRSTATUS ;GDC STATUS READ
TEST AL,20H
JZ GRFXOFF1
Call GRSTART ;ENABLE DISPLAY
Ret
;
DELAY:
MOV CX,4
DELAY1:
IN AL,GRSTATUS
TEST AL,20H
JZ DELAY1
DELAY2:
IN AL,GRSTATUS
TEST AL,20H
JNZ DELAY2
LOOP DELAY1
RET
;
;**********************************************************************
;* GRAPHIC DISPLAY DATA AREA *
;**********************************************************************
DSEG
;
;
EXTRN Y_MAX:WORD,X_MAX:WORD
;
PUBLIC GRTEXTP1,GRTEXTP2,GRATTRIB
PUBLIC GRTEXTP_W
PUBLIC GRVECTP1,GRVECTP2,GRVECTP4,GRVECTDC,GRVECTD
PUBLIC GRVECTD2
PUBLIC GRVECTD1,GRVECTDM
PUBLIC GRATTRIB
PUBLIC XAD,YAD
PUBLIC GRCOLR
PUBLIC GRWRT,GRWRTP
PUBLIC GRMASK_L
PUBLIC GRMASK_W
;
PUBLIC GRWRTW
PUBLIC GRZOOMP
;
XAD DW 0 ;
YAD DW 0 ;
X_SKIP DB 1 ;
Y_SKIP DB 1 ;
GRATTRIB DB 80H ;
;
DASYNC EQU OFFSET $
DB 00H ;
DB 16H ;16 flashless mode/ 06 flash mode
DB 26H ;
DB 46H ;
DB 0EH ;
DB 03H ;
DB 13H ;
DB 0DBH ;
DB 91H ;
;
DAPITCH EQU OFFSET $
DB 47H ;
DB PITCH ;
;
DAZOOM EQU OFFSET $
DB 46H ;
GRZOOMP DB 00H ;
;
DACSRFORM EQU OFFSET $
DB 4BH ;
DB 00H ;
DB 40H ;
DB 00H ;
;
DAMASK EQU OFFSET $
DB 4AH ;
GRMASK_L DB 0FFH ;
GRMASK_H DB 0FFH ;
GRMASK_W EQU word ptr GRMASK_L
;
DACSRW EQU OFFSET $;SET CURSOR
DB 49H ;
GREAD DW 0000H ;
GRDAD DB 00H ;
GRCOLR DW 0H
;
DASCROLL EQU OFFSET $
DB 70H ;
GRSAD1 DW 0000H ;
GRSL1 DW 1DB0H ;
GRSAD2 DW 0000H ;
GRSL2 DW 0000H ;
;
DATEXTW EQU OFFSET $;PARAMETER RAM
DB 78H ;
GRTEXTP1 DB 00H
GRTEXTP2 DB 00H
GRTEXTP3 DB 00H
GRTEXTP4 DB 00H ;
GRTEXTP5 DB 00H ;
GRTEXTP6 DB 00H ;
GRTEXTP7 DB 00H ;
GRTEXTP8 DB 00H ;
GRTEXTP_W EQU word ptr GRTEXTP1
;
DAVECTW EQU OFFSET $;FIGS
DB 4CH ;
GRVECTP1 DB 00H ;
GRVECTDC:
GRVECTP2 DW 0000H ;
GRVECTD:
GRVECTP4 DW 0000H ;
GRVECTD2:
GRVECTP6 DW 0000H ;
GRVECTD1:
GRVECTP8 DW 0000H ;
GRVECTDM:
GRVECTP10 DW 0000H ;
;
DAWRITE EQU OFFSET $
GRWRT DB 00H ;
GRWRTP1 DB 00H ;
GRWRTP2 DB 00H ;
GRWRTP EQU word ptr GRWRTP1
;
;
RESETCMD EQU 00H ;
STARTCMD EQU 0DH ;
STOPCMD EQU 0CH ;
MSTRCMD EQU 6FH ;
SLVCMD EQU 6EH ;
VECTECMD EQU 6CH ;
TEXTECMD EQU 68H ;
SCROLLCMD EQU 70H ;
GRWRTW EQU 20H ;
GRWRTL EQU 30H ;
GRWRTH EQU 38H ;
GRREADW EQU 0A0H ;
GRREADL EQU 0B0H ;
GRREADH EQU 0B8H ;
CSRRCMD EQU 0E0H ;
;
PITCH EQU 28H ;
GRCMD EQU 0A1H ;
GRPARA EQU 0A0H ;
GRSTATUS EQU 0A0H ;
GRRDATA EQU 0A1H ;
;
GRAPHICS_PARTITION DB 070H
DW 0H ;part 1 start
DW 5900H ;part 1 length
DW 0h ;part 2 start
DW 0H ;part 2 length
;
ALPHA_PARTITION DB 070H
DW 0H ;part 1 start
DW 1900H ;part 1 length
DW 0h ;part 2 start
DW 0H ;part 2 length
;
END


File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@
Driver source for GSX-86.

View File

@@ -0,0 +1,304 @@
MAIN MENU
HAUPTUEBERSICHT
1. CREATE new graph
1. Erstelle neues Bild
2. RECALL saved graph
2. Lade abgespeichertes Bild
3. DISPLAY current graph
3. Zeichne Bild auf dem Schirm
4. EDIT current graph
4. Veraendere Bild
5. OUTPUT current graph
5. Zeichne Bild
6. SAVE current graph
6. Sichere das Bild auf der Diskette
7. MULTIPLE graphs per page
7. Zeichne mehrere Bilder auf einer Seite
0. EXIT DR Graph
0. Verlasse DR Graph
CHOOSE FUNCTION BY NUMBER
Waehle Funktion mit einer Nummer
CREATE NEW GRAPH
Erstelle neues Bild
1. LINE
1. Linie
2. CLUSTERED bar
2. Balkendiagramm (Gruppen)
3. STACKED bar
3. Balkendiagramm (gstapelt)
4. PIE
4. Kreisdiagramm
5. STEP
5. Stufendiagramm
6. STICK
6. Liniendiagramm
7. SCATTER
7. Punktdiagramm
8. TEXT only
8. Buchstaben
0. EXIT to Main Menu
0. Zurueck zur Hauptuebnersicht
Input File Name (<RETURN> to exit):
Dateiname? (Zurueck mit <--')
No graph currently defined
Bild nicht definiert
File name a:
Dateiname a:
File name b:
Dateiname b:
File name c:
Dateiname c:
File name d:
Dateiname d:
Press <ESC> to access above data items
Druecke <ESC> fuer obige Dateneingabe
CHOOSE FUNCTION
Waehle Function
BY NUMBER
mit einer Nummer
Save
Sichere
Multi-Graph
Bilder
Graph
Bild
Display
Zeichne
Exit to
Zurueck zum
Main Menu
Hauptmenue
Output
Drucke
DATA SELECTION
Daten Auswahl
1. MANUAL (from keyboard)
1. von der Tastatur
4. EXISTING data
4. bestehende daten
CHOOSE DATA INPUT MODE BY NUMBER
Waehle Dateneingabe mit einer Nummer
CURVE DATA MENU
Datenuebersicht der Kurven
Curve 1
Kurve 1
Curve 2
Kurve 2
Curve 3
Kurve 3
Curve 4
Kurve 4
Curve 5
Kurve 5
Next
Naechste
Previous
letzte
Curve
Kurven
Page
Seite
Edit
Eingabe
<ESC> to choices below <CR> moves cursor down <TAB> moves cursor right
<ESC> Funktioswahl <CR> naechste Zeile <TAB> naechstes Feld
CURVE EDIT
Kurven Eingabe
Title
Titel
Subtitle
Untertitel
Primary Axis Title
Benennung der X-Achse
Secondary Axis Title
Benennung der Y-Achse
Axis Type (N/P):
Achsen Typ (N/P):
(Numeric or Periodic: days,months,quarters)
(Nummerisch oder periodisch:z.b. Tag,Monat,Quartal)
Legends (Y/N):
Legende (Y/N):
Legend
Legende
Type Color Pattern Style Symbol Width
Typ Farbe Muster Art Symbol Dicke
Bar
Balken
Line Marker Line
Linien Marken Linien
Axes
Achsen
Data
Daten
Entry
Eingabe
Additional
Weitere
Editing
Eingaben
CURVE TYPES: 1=Line 2=Bar 3=Step 4=Stick 5=Scatter
Kurven Typen: 1=Linie 2=Balken 3=Treppe 4=Stick 5=Punkte
ADDITIONAL CURVE EDIT
Weitere Kurven Eingaben
Title:
Titel:
Subtitle:
Untertitel:
Axis Titles:
Achsen Bezeichnung:
Legends:
Legende:
Tick/Point Labels:
Punkt Bezeichnung:
Color
Farbe
Font
Form
Size
Groesse
(Y/N) Color Width
(Y/N) Farbe Dicke
Border:
Rand:
Axes Frame:
Achsen Rahmen:
(Y/N) Value
(Y/N) Wert
Baseline:
Grundlinie:
Cluster(1-5) Direction(V/H) Width
Gruppen(1-5) Richtung (V/H) Breite
Bar:
Balken:
Curve Stacking:
gestapelte Balken:
Curve 1 Curve 2 Curve 3 Curve 4 Curve 5
Kurve 1 Kurve 2 Kurve 3 Kurve 4 Kurve 5
Pts. Labeled (Y/N):
Pkt. Bez. (Y/N):
Annotate
Kommentar
Move
Verschiebe
Legends
Legende
Return to
Zurueck zur
Curve Edit
Kurven Eing.
MULTIPLE GRAPHS
Mehrere Bilder / Seite
File not found (delete or replace)
Datei nicht gefunden! (Name ?)
Graph currently defined, do you wish to save it (Y/N)?
Wollen Sie Ihr das Bild auf der Diskette sichern(Y/N)?
Output File Name (<RETURN> to exit):
Bitte Datei Namen oder <RETURN>:
PIE EDIT
Kreis Diagramm Eingabe
Slice
Teil
Label
Benennung
Value
Wert
Explode
einzeln
Fill
Fuellmuster
Remaining
restliche
Slices
Teile
ADDITIONAL PIE EDIT
Weitere Kreisdiagramm Eingaben
Slice Labels:
Teil Bez. :
Actual(A) Sorted Ascending(A)
Sortiert Aufsteigend(A)
Percent(P) (Y/N) Descending(D)
Prozent(P) (Y/N) abfallend (D)
Slice Values:
Teil Werte:
Graph Border:
Umrandung:
Tick Mark Color:
Teilstrich Farbe:
Pie
Kreis
Pie Edit
Kreis Eing.
NUMERIC AXES EDIT
Nummerische Achsen Eingaben
Axis
Achsen
Ticks per
Strich pro
Type
Typ
PRIMARY Axis:
X - Achse:
SECONDARY Axis:
Y - Achse:
Label Types: 1= Default
Zahlen Typ: 1=Lin(integer)
2=Linear(integer)
2=Lin(integer)
6=Yearly
6=Jaehrl.
3=Linear(decimal)
3=Lin(dezimal)
5=Log(decimal)
5=Log(dezimal)
(Prim. Only)
(nur X-Achse)
PRIMARY Axis Indent (non-Log) (Y/N):
Eingerueckte X-Achse(nicht-Log)(Y/N):
Grid(Y/N Style Color)
Gitter(Y/N Form Farbe)
PRIMARY:
X-Achse:
SECONDARY:
Y-Achse:
(Y/N) Number
(Y/N) Nummer
User Specified Primary Axis Data:
Anwender definierte X-Achsen Werte:
Increment
Zunahme
PERIODIC AXES EDIT
Periodische Achsen Eingabe
Period
Zeitraum
Start
Beginn
Number of
Anzahl der
Periods
Zeitraeume
Ticks
Marken
Indent(Y/N)
Absatz (Y/N)
1=Days(3 char,M-S)
1=Tage(3 Zeich.M-S)
3=Days(3 char,M-F)
3=Tage(3 Zeich.M-F)
5=Months(3 char)
5=Monate(3 Zeich.)
7=Quarters
7=Quartale
2=Days(1 char,M-S)
2=Tage(1 Zeich.M-S)
4=Days(1 char,M-F)
4=Tage(1 Zeich.M-F)
6=Months(1 char)
6=Monate(1 Zeich.)
Label Types: 1= Default
Zahlen Typ: 1=Lin(integer)
Label Types:
Zahlen Typ: