BS_EXPR ASM ;BETRIEBSSYSTEM (VORLAEUFIGES) FUER ;EXPERIMENTALRECHNER (BASIS U880A) ;=================================== ; ; ; ;VEREINBARUNGEN ;-------------- ;I/O-ADRESSEN: CTCK0 EQU 20H ;DURCH BASIS- CTCK1 EQU 21H ;ADRESSE 2XH CTCK2 EQU 22H ;FESTGELEGT CTCK3 EQU 23H SIOAD EQU 24H SIOBD EQU 25H SIOAC EQU 26H SIOBC EQU 27H ;PIO1AD ? ;NOCH NICHT ; ;IMPLEMENTIERT ; ;GDC-I/O-ADRESSEN DURCH BASIS- ;ADRESSE 0CXH ;FESTGELEGT GDCPA EQU 0C0H ;OUT:PARAM.-ADR ;IN: STATUS-REG GDCKO EQU 0C1H ;GDC-KOMMAND-ADR ;IN: FIFO CRTR EQU 0C4H ;CRT-REGISTER ZIR EQU 0C6H ;ZOOM/INK-REG ;D7-D4/D3-D0 PAR EQU 0C8H ;PALETTEN-AUSW.R ;DO-D2:F-PALETTE ;D3:RANDFARBE ;D4,5:ZEICH-SATZ PPT EQU 0CAH ;PALETTENPOINTER ;D0-D3:BITPLANE ;D4-D6:PAL.-AUSW ;D7:(ADESS.P-SP) PSP EQU 0CCH ;PALETTENSPEICH. ;D0-D3:BLAU ;D4-D7:GRUEN ;A8-A11:ROT ;(ADR.->PPT) ASCI EQU 0CEH ;ASCI-REGISTER ; ; ;EINSPRUNGADRESSEN: ; BOOT JP 0 ;KALTSTARTADR. WBOOT JP 5 ;WARMSTARTADR. CSTS JP 8 ;TASTATURSTATUS ;(ISR!) CI JP 0AH ;TASTATUREINGABE CO JP 0DH ;BS-AUSGABE DO JP 10H ;DRUCKER-AUSG. ;(CENTRONICS-S.) KASI JP 13H ;KASSETTENEING. KASO JP 16H ;KASSETTENAUSG. DISI JP 19H ;DISKETTENEING. DISO JP 1CH ;DISKETTENAUSG. MONI JP 20H ;MONITOREINSPR. ; ; ;INITIALISIERUNSPROGAMM FUER GDC ; ;VORL.HOST-RECHNER:KC85/3 AM K1520-PORT ; ;VEREINBARUNGEN:GDC-BEFEHLE IN INITAB1 ; (MIT IY-REG+n,ZUGEHOER. ; PARAMETER-ANZ.: IY+n+1) ; RESET EQU 00H SYNC EQU 03H VSYNC EQU 06H CCHAR EQU 09H START EQU 0CH BCTRL EQU 0FH ZOOM EQU 12H CURS EQU 15H PRAM EQU 18H PITCH EQU 1BH WDAT EQU 1EH MASK EQU 21H FIGS EQU 24H FIGD EQU 27H GCHRD EQU 2AH RDAT EQU 2DH CURD EQU 30H LPRD EQU 33H DMAR EQU 36H DMAW EQU 39H ; ; ;DIESES INITIALISIERUNGS-PROGRAMM IST ;AUSSCHLIESSLICH FUER DIE INITIALISIERUN ;DES GDC GESCHRIEBEN! ;ZUR WEITEREN ANWENDUNG, AUCH ANDERER ;BEFEHLE IST ANPASSUNG NOTWENDIG! ; DEFW 7F7FH DEFM 'A' DEFB 1 LD HL,TABINI LD E,RESET ;RESET-BEFEHL CALL BEFEHL ;BEFEHL U. ;PARAM.->GDC LD E,VSYNC ;VSYNC ->MASTER CALL BEFEHL LD E,CCHAR ;CCHAR-PARAM1=0 CALL BEFEHL LD E,BCTRL ;BILDFL.->FREI CALL BEFEHL LD E,ZOOM ;ZOOM=1 CALL BEFEHL LD E,CURS ;CURSORPOS.=0 CALL BEFEHL LD E,PRAM ;PRAM INIT CALL BEFEHL LD E,FIGS ;FIGS INIT CALL BEFEHL ; WEITER RET ; ; ; ;UP "BEFEHL" MIT UEBERGABE DER REL. ADR. ;IN DER TABINI IN (E) ;VERAENDERTE REGISTER: B,D ; BEFEHL PUSH HL ;HL SICHERN LD D,0 ;H LOESCHEN ADD HL,DE ;ADR.-BERECHNUNG ;VON TABINI, ;AKT.ADR.IN (HL) LD A,(HL) ;BEFEHL CALL OUTKO INC HL LD A,(HL) ;PARAM.-ANZAHL CP 0 JR Z,WEITER ;KEINE PARAMETER LD B,A ;PARAM-ANZ.->(B) INC HL ;HL-ZEIGER AUF ;OFFSET ; ;BERECHNUNG DES PARATAB-ANFANGS FUER ;DEN JEWEILIGEN BEFEHL ; LD A,(HL) ;OFFSET PARATAB LD E,A LD HL,PARATAB ;ADR. PARATAB ADD HL,DE ;ADR. PARATAB+ ;OFFSET ;ERGEBN. IN (HL) ; NPARAM LD A,(HL) ;PARAMETER 1-n CALL OUTPA INC HL DJNZ NPARAM ;(B)x WIEDERHOL. POP HL ;RESTAURIEREN HL ; <-STEHT NOCH ; AUF TABINI; RET ; ; ; ; ;UNTERPROGRAMM ZUR BEFEHSAUSGABE AN DEN ;GDC, BEFEHLSCODE IN (A) UEBERGEBEN ; OUTKO PUSH AF ;(A)=KOMMANDO OUTKO1 IN A,GDCPA ;STATUSREGISTER BIT 1,A JR NZ,OUTKO1 ;FIFO VOLL POP AF OUT GDCKO RET ; ;UNTERPROGRAMM ZUR PARAMETERAUSGABE AN ;DEN GDC, PARAMETER IN (A) UEBERGEBEN ; OUTPA PUSH AF ;(A)=PARAMETER OUTPA1 IN A,GDCPA ;STATUSREGISTER BIT 1,A ; JR NZ,OUTPA1 ;FIFO VOLL POP AF OUT GDCPA RET NOP NOP NOP ; ;TABINI:BEFEHSCODE, PARAMETERANZAHL ; OFFSET DER PARATAB ; (moegl.Modifikation d.Bits des ; Befehlscodes:b0,b1..=...) ; TABINI DEFW 0800H ;RESET 8 PARAM. DEFB 0 DEFW 080EH ;SYNC 8 " DEFB 8 DEFW 006FH ;VSYNC 0 " DEFB 10H DEFW 034BH ;CCHAR 3 " DEFB 10H DEFW 006AH ;START 0 " DEFB 13H DEFW 000DH ;BCTRL 0 " DEFB 13H DEFW 0146H ;ZOOM 1 " DEFB 13H DEFW 0349H ;CURS 3 " DEFB 14H DEFW 0F70H ;PRAM MAX.15P DEFB 17H ;b0-b3:STARTADR. ; PRAM DEFW 0147H ;PITCH 1 PARAM. DEFB 27H DEFW 0220H ;WDAT 2 " DEFB 28H ;b0,b1=0:PATTERN ;b0=1:KOMPLEMENT ;b1=1:NULLSETZEN ;b0,b1=1:SETZEN ;b3=0 ;b4,b5=0:WORT ;b5=1:BYTE (L) ;b4,5=1:BYTE (H) ;b4=1:UNGUELTIG! ; DEFW 024AH ;MASK 2 " DEFB 2AH DEFW 0B4CH ;FIGS 11 " DEFB 2CH ;b0-b2:DIR ;b3-b7:ZEICHN.- ; KOMMANDO ;ALLE=0:DIREKT ; DEFW 006CH ;FIGD 0 " DEFB 37H DEFW 0068H ;GCHRD 0 " DEFB 37H DEFW 00A0H ;RDAT 0 " DEFB 37H DEFW 050EH ;CURD 5 " DEFB 37H DEFW 050CH ;LPRD 5 " DEFB 3CH DEFW 00A0H ;DMAR 0 " DEFB 42H DEFW 0020H ;DMAW 0 " ; ;IN PARATAB STEHEN DIE ZUM GDC BZW. VOM ;GDC ZU UEBERTRAGENEN WERTE ; PARATAB DEFB 12H ;b0:MIT Z-SPRUNG ;(RESET); 00010010B ;b1:GRAFIK-BETR. ;b2:REFRESH ;b3:ZSP-WH-FELD ;b4:ZEICHN->DNKL ;b5:ZEICH.-BETR. ;b6,b7=0 ;ZEICHNEN->DUNKL DEFB 26H ;40W/ZEILE, ;+5W/Z-RUECKL.-2 DEFB 0E8H ;b0-b4:HSYN-IMP. ; 11101000B ;b5-b7:VSYN(nwB) DEFB 01BH ;b0-b1:VSYN(hwB) ; 00011011B ;b2-b7:hvSS(>2) DEFB 0AH ;b0-b5:hhSS(>3) ; 00001010B ;b6,b7=0 DEFB 01FH ;b0-b5:vvSS ; 00011111B ;b6,b7=0 DEFB 0FFH ;255 ZEILEN/BILD ; 11111111B ;(nwB) DEFB 0F9H ;b0,b1:Z/B (hwB) ; 11111001B ;b2-b7:vhSS ; ;(SYNCH) PSYNCH DEFB 0 DEFB 0 DEFB 0 DEFB 0 DEFB 0 DEFB 0 DEFB 0 DEFB 0 ;(CCHAR) PCCHAR DEFB 0 DEFB 0 DEFB 0 ;(ZOOM) PZOOM DEFB 0 ; ;(CURS) PCURS DEFB 0 ;WORTADR.(A0-A7) DEFB 0 ; " (A8-A15 DEFB 0 ;b0: A16 ;b1: A17 ;b2,b3=0 ;b4-b7:PUNKTADR. ;(PRAM) PPRAM DEFB 0 ;DISPLAY1-START- ;ADR.(A0-A7) DEFB 0 ; (A8-A15) DEFB 0 ;b0,b1: A16,A17 ;b2,b3=0 ;b4-b7:DISPLAY1- ;ZEILENANZAHL(L) DEFB 0 ;b0-b5:DISPLAY1- ;ZEILENANZAHL(H) ;IMAGE-BIT=0 ;WD-BIT=1(gedehn DEFB 0 ;DISPLAY2(wie1) DEFB 0 DEFB 0 DEFB 0 DEFB 0 ;BEREICHSBEGINN ;DER GRAFIKZEICH ;ZUM SCHREIBEN ;IN DEN BWS DEFB 0 ; DEFB 0 DEFB 0 DEFB 0 DEFB 0 DEFB 0 DEFB 0 ;ENDE ;(PITCH) PPITCH DEFB 0 ; ;(WDAT) PWDAT DEFB 0 ;DATENBYTE (L) DEFB 0 ; " (H) ;(MASK) PMASK DEFB 0 DEFB 0 ;(FIGS) PFIGS DEFB 0 DEFB 0 DEFB 0 DEFB 0 DEFB 0 DEFB 0 DEFB 0 DEFB 0 DEFB 0 DEFB 0 DEFB 0 ;(CURD) PCURD DEFB 0 DEFB 0 DEFB 0 DEFB 0 DEFB 0 ;(LPRD) PLPRD DEFB 0 DEFB 0 DEFB 0 DEFB 0 DEFB 0 ;(DMAR) PDMAR DEFB 0 DEFB 0 DEFB 0 DEFB 0 DEFB 0         A!0 Q0Q0 Q0Q0Q0Q0Q0$Q0 ~