File BSF1.

Directory of image this file is from
This file as a plain text file

/ BSF1
       /
       /
       /
       /
       /
       /
       /
       /
       /
       /
       /              PROZESSRECHNER - BETRIEBSSYSTEM
       /              ===============================
       /       
       /
       /
       /
       /      FUER EINE PDP-8E VON DIGITAL EQUIPMENT GMBH
       /
       /      FUER DIE HERKONFERTIGUNG DER SEL STUTTGART
       /
       /
       /
       /
       /
       /
       /
       /
       /
       /
       /
       /
       /
       /
       /
       /
       /
       /
       /
       /
       /
/	BEARBEITET VON:
/
/	G. DIPPER AS/SVE 1969
/	F. WESSELY ZV/SVE 1971
/	G. MUELLER CS/SVE 1974
       /
       /
       /
       /
       /
       /
       /
       /

/EXTERNE ADRESSEN CLOCK=3600 /STARTADRESSE UHRPR. SOND=3601 /STARTADRESSE SONDERPRUEFUNGSPR. STARTP=3602 /STARTADRESSE STEUERPROGRAMM MNETZ=1722 /MERKER F. NETZAUSFALL IM COMMON TPA=6000 /ANFANGSADRESSE AUSGABEPUFFER / IN STEUERPROGRAMM / /IN PAL8-ASSEMBLER NICHT ENTHALTENE BEFEHLE DTLA=6766 /CLEAR AND LOAD STATUS REGISTER A CLSK=6131 /SKIP ON CLOCK INTERRUPT CLSA=6135 /CLOCK STATUS TO AC SRQ=6003 /SKIP IF INTERRUPT REQUEST SPL=6102 /SKIP ON POWER LOW TSF1=6311 /SKIP ON TELEPRINTER 1 FLAG KSF1=6301 /SKIP ON KEYBOARD 1 FLAG CDI=CDF CIF / /IOT'S PASK=6141 /SKIP ON FLAG PRUEFAUTOMATEN /DEFINITIONEN GNRDT=10 /GERAETENR. DECTAPE ZG=-11 /NEG. GERAETEANZAHL IN / DVA UND DVB EBENEP=2 /EBENE STEUERPROGRAMM EBENE0=12 /EBENE TTY-0 (KONSOLE) EBENE1=4 /EBENE TTY-1 (LA30) EBENEB=13 /EBENE BEDIENUNGSPROGRAMM FIXTAB
/ / / ERSTE BEFEHLE BEIM ORGANISATIONS-AUFRUF / --------------------------------------- / FIELD 2 *2 ORGP2, ORG NOP /ENTHAELT PC CDF 20 /SETZE DATA FIELD = INST.FIELD CIF 0 /INST.FIELD FUER ORG AENDERN JMP I ORGP2 /SPRUNG INS BETRIEBSSYSTEM /ADRESSE DES ORG-AUFRUF-EINGANGS /// / /RUN TIME LINKAGE ROUTINES IN FELD 2 /------------------------------------ / /(NORMALERWEISE VOM LINKING LOADER GELADEN) / *33 BYNK=20 / /COMMON SUBROUTINE CALL LINKAGE ROUTINE / LYINK, 0 KY6201, CDF BYNK /SET DATA FIELD TO THIS BANK KY6202, CIF 00 /SET INSTRUCTION FIELD TO ZERO JMP I YLINKP /EXIT TO MASTER LINKAGE ROUTINE YLINKP, MLINK / /COMMON SUBROUTINE RETURN LINKAGE ROUTINE / RYTN, 0 CDF BYNK /SET DATA FIELD TO THIS BANK CIF 00 /SET INSTRUCTION FIELD TO ZERO JMP I MYRTNP /EXIT TO MASTER RETURN ROUTINE MYRTNP, MRTN / /CHANGE DATA FIELD TO CURRENT AND SKIP / YDFSKP, 0 ISZ YDFSKP /INDEX ADDRESS FOR SKIPPING CDF BYNK /CHANGE DATA FIELD TO CURRENT BANK JMP I YDFSKP /EXIT / /CHANGE DATA FIELD TO COMMON AND SKIP / YDZSKP, 0 ISZ YDZSKP /INDEX RETURN ADDRESS FOR SKIPPING CDF 10 /CHANGE DATA FIELD TO 1 JMP I YDZSKP /EXIT / /OFF BANK INDIRECT SUBROUTINE / YBISUB, 0 CDF BYNK /SET DATA FIELD TO THIS BANK CIF 00 /SET INSTRUCTION FIELD TO ZERO JMP I MYOBIP /EXIT TO MASTER OFF BANK INDIRECT MYOBIP, MOBI / /OFF PAGE INDIRECT SUROUTINE / YPISUB, 0 CDF BYNK /SET DATA FIELD TO THIS BANK CIF 00 /SET INSTRUCTION FIELD TO BANK ZERO JMP I MYOPIP /EXIT TO MASTER OFF PAGE INDIRECT MYOPIP, MOPI / /ROUTINE TO HANDLE DUMMY ARGUMENTS / YUMSUB, 0 CDF BYNK /SET DATA FIELD TO THIS BANK CIF 00 /SET INSTRUCTION FIELD TO BANK ZERO JMP I MYDUMP /EXIT TO MASTER DUMMY ARGUMENT ROUT. MYDUMP, MDUM
/ /VON BIBLIOTHEKS-ROUTINEN BENUTZTE ZELLEN IN FELD 2 /-------------------------------------------------- / / *7 0 0 *20 0 0 0 0 0 0 0 0 0 0 0 *74 0 0 *121 0 0 *175 0 0 0 PAGE ZBLOCK 600 /RESERVE
/ / / ERSTE BEFEHLE BEIM ORGANISATIONS-AUFRUF / --------------------------------------- / FIELD 1 *2 ORGP1, ORG NOP /ENTHAELT PC CDF 10 /SETZE DATA FIELD = INST.FIELD CIF 0 /INST.FIELD FUER ORG AENDERN JMP I ORGP1 /SPRUNG INS BETRIEBSSYSTEM /ADRESSE DES ORG-AUFRUF-EINGANGS /// / /RUN TIME LINKAGE ROUTINES IN FELD 1 /----------------------------------- / /(NORMALERWEISE VOM LINKING LOADER GELADEN) / *33 BXNK=10 / /COMMON SUBROUTINE CALL LINKAGE ROUTINE / LXINK, 0 KX6201, CDF BXNK /SET DATA FIELD TO THIS BANK KX6202, CIF 00 /SET INSTRUCTION FIELD TO ZERO JMP I XLINKP /EXIT TO MASTER LINKAGE ROUTINE XLINKP, MLINK / /COMMON SUBROUTINE RETURN LINKAGE ROUTINE / RXTN, 0 CDF BXNK /SET DATA FIELD TO THIS BANK CIF 00 /SET INSTRUCTION FIELD TO ZERO JMP I MXRTNP /EXIT TO MASTER RETURN ROUTINE MXRTNP, MRTN / /CHANGE DATA FIELD TO CURRENT AND SKIP / XDFSKP, 0 ISZ XDFSKP /INDEX ADDRESS FOR SKIPPING CDF BXNK /CHANGE DATA FIELD TO CURRENT BANK JMP I XDFSKP /EXIT / /CHANGE DATA FIELD TO COMMON AND SKIP / XDZSKP, 0 ISZ XDZSKP /INDEX RETURN ADDRESS FOR SKIPPING CDF 10 /CHANGE DATA FIELD TO 1 JMP I XDZSKP /EXIT / /OFF BANK INDIRECT SUBROUTINE / XBISUB, 0 CDF BXNK /SET DATA FIELD TO THIS BANK CIF 00 /SET INSTRUCTION FIELD TO ZERO JMP I MXOBIP /EXIT TO MASTER OFF BANK INDIRECT MXOBIP, MOBI / /OFF PAGE INDIRECT SUROUTINE / XPISUB, 0 CDF BXNK /SET DATA FIELD TO THIS BANK CIF 00 /SET INSTRUCTION FIELD TO BANK ZERO JMP I MXOPIP /EXIT TO MASTER OFF PAGE INDIRECT MXOPIP, MOPI / /ROUTINE TO HANDLE DUMMY ARGUMENTS / XUMSUB, 0 CDF BXNK /SET DATA FIELD TO THIS BANK CIF 00 /SET INSTRUCTION FIELD TO BANK ZERO JMP I MXDUMP /EXIT TO MASTER DUMMY ARGUMENT ROUT. MXDUMP, MDUM
/ /VON BIBLIOTHEKS-ROUTINEN BENUTZTE ZELLEN IN FELD 1 /-------------------------------------------------- / / *7 0 0 *20 0 0 0 0 0 0 0 0 0 0 0 *74 0 0 *121 0 0 *175 0 0 0
FIELD 0 / / ERSTE BEFEHLE NACH EINEM INTERRUPT. / ----------------------------------- / *0 RESTRT, JMP I INTRT1 /RESTART-BEFEHL BEI POWER UP /ENTHAELT PC ZUR FORTSETZUNG JMP I .+1 /SPRUNG INS BETRIEBSSYSTEM INT /ADRESSE DES INTERRUPT-EINGANGS /// / /ERSTE BEFEHLE NACH EINEM ORGANISATIONSAUFRUF /-------------------------------------------- / *3 NOP /ENTHAELT PC CDF 0 /SETZE DATA FIELD = INST.FIELD JMP I .+1 /SPRUNG INS BETRIEBSSYSTEM ORG /ADRESSE DES ORG-AUFRUF-EINGANGS /// / / / / DEFINITIONEN PAGE 0 / ------------------- / *17 IR0, 0 /AUTO-INDEX-REGISTER /@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ / /FUER TESTZWECKE / *150 STOP0, IOF JMS 3 1 /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ *156 INTRT1, INTRET MPA, 1 /* MERKER F. PRUEFAUTOMATENFLAG /GESETZT, DAMIT NACH LADEN DES BS /START EINES PRUEFAUTOMATEN VOR /GRUNDSTART NICHT SCHADET. / MCOM, 0 /GERAETENR. VERS1, 0 /AUFRUF-VERSORGUNGEN AUS ANWENDER-PROGR. VERS2, 0 VERS3, 0 VERS4, 0 VERS5, 0 AC, 0 L, 0 PC, 0 SF, 0 M, 0 APR, 0001 /ANGEFORDERTES-PROGRAMM-REGISTER /ENTHAELT EIN BIT JE ANGEFORDERTER EBENE /ANFANGS-STAND FUER DUTY-CYCLE-PROGRAMM LPR, 0014 /LAUFENDES PROGRAMM-REGISTER /ENTHAELT DIE NUMMER DER AKTUELLEN EBENE /ANFANGS-STAND FUER DUTY-CYCLE-PROGRAMM
/ /RUN TIME LINKAGE ROUTINES IN FELD 0 /----------------------------------- / /(NORMALERWEISE VOM LINKING LOADER GELADEN; / NOTWENDIG FUER FORTRAN-PROGRAMME) / *33 BNK=00 / /COMMON SUBROUTINE CALL LINKAGE ROUTINE / LINK, 0 K6201, CDF BNK /SET DATA FIELD TO THIS BANK K6202, CIF 00 /SET INSTRUCTION FIELD TO ZERO JMP I MLINKP /EXIT TO MASTER LINKAGE ROUTINE MLINKP, MLINK / /COMMON SUBROUTINE RETURN LINKAGE ROUTINE / RTN, 0 CDF BNK /SET DATA FIELD TO THIS BANK CIF 00 /SET INSTRUCTION FIELD TO ZERO JMP I MRTNP /EXIT TO MASTER RETURN ROUTINE MRTNP, MRTN / /CHANGE DATA FIELD TO CURRENT AND SKIP / CDFSKP, 0 ISZ CDFSKP /INDEX ADDRESS FOR SKIPPING CDF BNK /CHANGE DATA FIELD TO CURRENT BANK JMP I CDFSKP /EXIT / /CHANGE DATA FIELD TO COMMON AND SKIP / CDZSKP, 0 ISZ CDZSKP /INDEX RETURN ADDRESS FOR SKIPPING CDF 10 /CHANGE DATA FIELD TO 1 JMP I CDZSKP /EXIT / /OFF BANK INDIRECT SUBROUTINE / OBISUB, 0 CDF BNK /SET DATA FIELD TO THIS BANK CIF 00 /SET INSTRUCTION FIELD TO ZERO JMP I MOBIP /EXIT TO MASTER OFF BANK INDIRECT MOBIP, MOBI / /OFF PAGE INDIRECT SUBROUTINE / OPISUB, 0 CDF BNK /SET DATA FIELD TO THIS BANK CIF 00 /SET INSTRUCTION FIELD TO BANK ZERO JMP I MOPIP /EXIT TO MASTER OFF PAGE INDIRECT MOPIP, MOPI / /ROUTINE TO HANDLE DUMMY ARGUMENTS / DUMSUB, 0 CDF BNK /SET DATA FIELD TO THIS BANK CIF 00 /SET INSTRUCTION FIELD TO BANK ZERO JMP I MDUMP /EXIT TO MASTER DUMMY ARGUMENT ROUT. MDUMP, MDUM
*200 /RESERVIERT FUER USER TABLE /-------------------------- / /DIE BEIM START EINES FORTRAN-PROGRAMMES HIER /EINGELESEN WERDEN MUSS START, JMP INTRET /STARTADRESSE DES BS PAGE
/ /FIELD 0 /FULL LINKAGE ROUTINES /--------------------- / / K77A, 77 /MUST BE FIRST LOC ON PAGE / /MASTER OFF PAGE INDIRECT ROUTINE / MOPI, DCA AXC /SAVE AC TAD I OPIP /PICK UP ADDRESS OF PARAMETER DCA DUMSUB TAD I DUMSUB /ACTUAL PARAMETER DCA 7 /TO A TEMP TAD I 7 /PICK UP FINAL DATA DCA I K7 /TO LOC 7 IN FROM BANK RDF ATVX, TAD K6202 /MAKE A CIF FROM INSTRUCTION DCA ATV /SAVE IN THIS SEQUENCE JMP ATV-1 / /MASTER OFF BANK INDIRECT ROUTINE / MOBI, DCA AXC /SAVE AC TAD I OBIP /ADDRESS OF PARAMETER DCA DUMSUB TAD I DUMSUB /ACTUAL COMMON ADDRESS DCA 7 /SAVE IT RDF /FROM BANK TAD K6201 /MAKE A CDF FROM INSTRUCTION DCA .+3 /PLACE IN THIS SEQUENCE CDF 10 /CHANGE DATAA FIELD TO COMMON TAD I 7 /ACTUAL DATA NOP /BECOMES CDF AND CIF FROM INSTRUCTION DCA I K7 /TO LOCATION 7 IN FROM BANK RDF CDF 10 JMP ATVX / /MASTER INDIRECT DUMMY ARGUMENT SUBROUTINE / MDUM, DCA AXC /SAVE AC TAD I DUMP /PICK UP ADDRESS OF PAR DCA DUMSUB TAD I DUMSUB /PICK UP POINTER TO 2 WORD VECTOR DCA DUMTEM /TO A TEMPORARY TAD I DUMTEM /FIELD IS IN AS A CDF DCA ABORT /TO THIS SEQUENCE RDF /FROM FIELD TAD K6202 /MAKE A CIF INSTRUCTION DCA ATV /TO THIS SEQUENCE FOR EXIT ISZ DUMTEM /POINT TO LOC IN FIELD TAD I DUMTEM /ACTUAL LOC IN UNKNOWN FIELD DCA I K7 /TO FROM FIELD LOC 7 ABORT, NOP /BECOMES CDF UNKNOWN ISZ DUMSUB /BUMP RETURN ADDRESS ATV, NOP /BECOMES CIF FROM TAD AXC /RESTORE AC JMP I DUMSUB /EXIT AXC=CDZSKP DUMTEM=OBISUB OPIP, OPISUB OBIP, OBISUB DUMP, DUMSUB / /MASTER LINKAGE ROUTINE / MLINK, DCA AXC /SAVE AC RDF TAD K6201 /MAKE A CDF DCA DUMTEM TAD I LINKP /ADDRESS OF CODE WORD JMS RTS1 TAD DUMTEM /CDF FROM INSTRUCTION DCA I DUMSUB /TO FIRST WORD OF 2 WORD VECTOR ISZ DUMSUB /POINT TO DISPLACEMENT TAD LINK /ADDRESS OF CODE WORD IAC /INCREMENT TO FIRST ARGUMENT DCA I DUMSUB /TO SECOND WORD OF 2 WORD VECTOR JMP ATVX-1 / /MASTER RETURN ROUTINE / MRTN, DCA AXC /SAVE AC TAD I RTNP /ADDRESS OF CODE WORD JMS RTS1 TAD I DUMSUB /FIELD TO RETURN TO AS A CDF INSTR. TAD K2 DCA ATV ISZ DUMSUB TAD I DUMSUB DCA DUMSUB JMP ATV / /DATA / K2, 2 K100A, 100 K7700A, 7700 LINKP, LINK RTNP, RTN / /SUBROUTINE 1 / RTS1, 0 DCA LINK TAD I LINK /CODE WORD K200A, AND K77A /MASK OUT NUMBER OF ARGUMENTS TAD K200A /+DISPLACEMENT DCA ABORT /GIVES ADDRESS OF BORT ENTRY TAD ABORT TAD K100A /+DISPLACEMENT DCA ATV /GIVES ADDRESS OF TV DISPLACEMENT K6203, CDF CIF 00 /SET UP USE TABLES IN BANK 0 TAD I ABORT /TO CDF INSTRUCTION DCA RTSCDF /TO FIRST WORD OF 2 WORD VECTOR TAD I ATV /TO BANK DISPLACEMENT SNA /WAS IT LOADED JMP NOTIN /NO DCA DUMSUB /TO SECOND WORD OF 2 WORD VECTOR RTSCDF, 0 JMP I RTS1 NOTIN, CIF 10 JMS I K7700A K7, 7 1 /USER ERROR 1-PROGRAM NOT LOADED / // /DUTY-CYCLE-PROGRAMM AUF EBENE 12 /(ZAEHLT TOTZEIT) DUTY, RAR ISZ COUNT JMP .-1 ISZ COUNT JMP .-1 ISZ COUNT JMP .-1 ISZ CLOOP /1 MINUTE ? JMP DUTY / NEIN ISZ TOTMNT /ERHOEHE TOTZEIT (MINUTEN SEIT 0 UHR) NOP DCA DUTYAC TAD (-2404 /1284 DCA CLOOP /SETZE LOOP-ZAEHLER NEU TAD DUTYAC JMP DUTY / --- COUNT, 0 CLOOP, -2404 /1284 MAL 46,6968 MILLISEC = 1 MINUTE DUTYAC, 0 /ZWISCHENSPEICHER PAGE
/ / EINGANG INS BETRIEBSSYSTEM / DURCH EINEN INTERRUPT / -------------------------- / INT, DCA AC /AC ZUR VERSORGUNG VON SAVREG RAL DCA L / L ZUR VERSORGUNG VON SAVREG TAD 0 DCA PC /PC ZUR VERSORGUNG VON SAVREG RIB /SF = IF 6-8 + DF 9-11 DCA SF /SF ZUR VERSORGUNG VON SAVREG JMS SAVREG /REGISTER DER AKT. EBENE RETTEN JMP RETURN /SPRUNG IN DIE FLAG-ABFRAGE /// / / / EINGANG INS BETRIEBSSYSTEM / DURCH ORGANISATIONS-AUFRUF / -------------------------- / ORG, DCA AC /AC ZUR VERSORGUNG VON SAVREG RAL DCA L / L ZUR VERSORGUNG VON SAVREG TAD I (3 /PC AUS ZELLE 3 FIELD X HOLEN DCA PC /PC ZUR VERSORGUNG VON SAVREG RDF /ANWENDER-DATA-FIELD BIT 6-8 = X TAD CDFBEF /6201 DCA CDFX /62X1 RDF CLL RTR RAR RDF /SF = IF 6-8 + DF 9-11 DCA SF /SF ZUR VERSORGUNG VON SAVREG CDFBEF, CDF 0 JMS SAVREG /REGISTER DER AKT. EBENE RETTEN JMS HOLVER /HOLE AUFRUF-CODE DCA CALL /CODE DES AUFRUFES MERKEN TAD CALL TAD JMPBEF /ERRECHNE POINTER-ADRESSE DCA .+1 JMP I TAB /SPRUNG IN DIE AUFRUF-BEARBEITUNG /// JMPBEF, JMP I TAB / / /UP. ZUM HOLEN EINER VERSORGUNG /------------------------------ / HOLVER, NOP CDFX, CDF TAD I PC /HOLE VERSORGUNG INDIREKT CDF 0 ISZ PC /ERHOEHE PC FUER NAECHSTE ZELLE JMP I HOLVER /// CALL, 0 /CODE DES AUFRUFES TAB, CALL0 / 0 = PROGRAMM-ANFORDERUNG CALL1 / 1 = PROGRAMMENDE GLEICHE EBENE CALL2 / 2 = BAND LESEN CALL2 / 3 = BAND SCHREIBEN CALL2 / 4 = BAND LESEN, PROGR. START CALL5 / 5 = AUSGABE ZEICHENFOLGE CALL6 / 6 = EINGABE EINES ZEICHENS CALL7 / 7 = PROGRAMMENDE ANDERE EBENE / / /UP. ZUM RETTEN DER REGISTER IN SAVE-AREA /--------------------------------------- / SAVREG, NOP TAD IR0 DCA ISAVE0 /INDEXREGISTER RETTEN TAD LPR /NUMMER DER AKT.EBENE = A CLL RTL /MAL 4 TAD (ACSAVE-5 / + BEZUGSADRESSE DCA IR0 TAD AC /AC NACH ACSAVE EBENE A DCA I IR0 TAD L / L NACH LSAVE EBENE A DCA I IR0 TAD PC /PC NACH PCSAVE EBENE A DCA I IR0 TAD SF /SF NACH SFSAVE EBENE A DCA I IR0 JMP I SAVREG /// ISAVE0, 0 /ENTHAELT IND.REG.STAND IR0 BEI /EINGANG INS BETRIEBSSYSTEM / / / INTERRUPT-RETURN, AUSGANG AUS DEM / BETRIEBSSYSTEM FUER ALLE EINGAENGE / ---------------------------------- / INTRET, CLA CLL DCA IR0 /VERSCHIEBE-ZAEHLER LOESCHEN TAD APR SHIFT, CLL RAL /VERSCHIEBE APR ISZ IR0 /ERHOEHE EBENENR. SNL /HOECHSTANGEFORDERTE EBENE ? JMP SHIFT / NEIN CLA CLL TAD IR0 DCA LPR /HOECHSTE EBENE STARTEN TAD LPR /EBENEN-NUMMER N CLL RTL /MAL 4 TAD (SFSAVE-4 / + BEZUGSADRESSE DCA SF /ADRESSE VON SFSAVE EBENE N TAD I SF /SF RTL CLL RAL AND (70 TAD CDFBEF /6201 DCA REST2 TAD I SF /SF AND (70 TAD (6202 DCA REST1 TAD ISAVE0 DCA IR0 /INDEXREG.STAND ZURUECKHOLEN CMA TAD SF DCA SF /ADRESSE VON PCSAVE EBENE N TAD I SF /PC DCA PC CMA TAD SF DCA L /ADRESSE VON LSAVE EBENE N CMA TAD L DCA AC /ADRESSE VON ACSAVE EBENE N TAD I L / CLL RAR TAD I AC /AC REST1, CIF /SETZE INST.FIELD REST2, CDF /SETZE DATA FIELD ION /INTERRUPT EINSCHALTEN JMP I PC /SPRUNG INS ANWENDER-PROGRAMM /// PAGE
/ / EINGANG INTERRUPT SKIP CHAIN / ABFRAGE AUF GERAETE-FLAGS / ---------------------------- / / RETURN, SPL /SKIP ON POWER LOW JMP CH0 JMP PFAIL /// CH0, JMS DCABFR /DECTAPE FERTIG ? / /@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ NOP NOP / SRQ /INTERRUPT ? / JMP INTRET / NEIN, STARTE HOECHSTE EBENE /@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ JMS DCFLG /ABFRAGE DECTAPE FLAG ON? / CLSK /CLOCK-FLAG ON? JMP CH1 /NEIN CLSA /CLEAR CLOCK-FLAG JMS ANFORD /JA, PROGRAMMANFORDERUNG 1 /LEVELNR. CLOCK /STARTADRESSE 0 /IF + DF / CH1, PASK /FLAG DER PRUEFAUTOMATEN ? JMP CH10 / NEIN TAD MPA /MERKER F. AUTOMATENFLAG ? SZA CLA /FLAG ERSTMALIG ? JMP CH10 / NEIN ISZ MPA /SETZE MERKER AUTOMATENFLAG JMS ANFORD /PROGRAMMANFORDERUNG EBENEP /EBENENNR. STARTP /STARTADRESSE 0 /IF+DF / CH10, TSF /TTY-PRINTER-0 FLAG ON? JMP CH11 /NEIN JMS INTFSA /JA, AUSGABE 0 /PRINTERNR. / CH11, TSF1 /DECWRITER PRINTER FLAG ? JMP CH12 / NEIN JMS INTFSA 1 /PRINTERNR. / CH12, KSF /TTY-KEYBOARD-0-FLAG ON ? JMP CH13 /NEIN JMS INTFSE /JA, EINGABE 0 /KEYBOARDNR. / CH13, KSF1 /DECWRITER KEYBOARD FLAG ? JMP CH14 / NEIN JMS INTFSE 1 /KEYBOARDNR. / CH14, JMP CH15 /RESERVE NOP NOP NOP / NOP NOP NOP NOP / CH15, JMS DCFLG /DECTAPE FLAG ABFRAGE JMP INTRET /STARTE HOECHSTANGEFORD. /PRIORITAETSEBENE /// / /VERSORGUNGEN AUS DEM AUFRUF IN FIELD X /NACH PAGE 0 FIELD 0 UMSPEICHERN UND /KORRIGIERTE FORTSETZUNGSADRESSE IN /PC-SAVE EBENE A SICHERSTELLEN /------------------------------------- / VERS, NOP JMS DCFLAG /ABFRAGE AUF DECTAPE-FLAG TAD I VERS CMA IAC DCA AC /ZAEHLER FUER VERSORGUNGEN CMA TAD IR0 DCA L /ADRESSE PCSAVE EBENE A TAD (VERS1-1 DCA IR0 VERSA, JMS HOLVER DCA I IR0 /VERSORGUNG ABSPEICHERN ISZ AC /ZAEHLER ERHOEHEN JMP VERSA TAD PC /=FORTSETZUNGSADR. AKT. EBENE A DCA I L /ABSPEICHERN IN PCSAVE EBENE A ISZ VERS JMP I VERS /// / / / ANFORDERUNG EINES PROGRAMMES / ---------------------------- / ANFORD, NOP /ENTHAELT ADRESSE DER VERSORGUNG CLA ANFO1, TAD I ANFORD /EBENENUMMER N TAD (MASKTB-1 DCA AC /EBENE SCHON EINGETRAGEN ? TAD I AC /BIT N-1 AND APR SZA CLA JMP RETURN /WENN GLEICHE EBENE, BIT GESETZT /(ANFORDRUNG EINER SCHON ODER NOCH / ANGEFORDERTEN EBENE KOMMT NICHT / DURCH !) TAD I ANFORD /EBENENNR. CIA DCA NEGEB /NEG. EBENENNR. TAD (ZG /ANZAHL GERAETE DCA ZGER TAD (DVB-1 /DEVICE BUSY DCA IR0 /SETZE INDEX DEVICE BUSY ANFO2, TAD I IR0 /EBENE IN DEVICE BUSY TAD NEGEB /NEG. EBENENNR. SNA CLA /BENUTZT EBENE DIESES GERAET ? JMP RETURN / JA ISZ ZGER JMP ANFO2 /EINTRAG DER EBENE TAD I AC TAD APR /SETZE EBENE N IN APR DCA APR TAD I ANFORD /EBENENNUMMER N ISZ ANFORD CLL RTL /MAL 4 TAD (PCSAVE-5 /+BEZUGSADRESSE DCA IR0 /ADRESSE PCSAVE EBENE N TAD I ANFORD /CORELOC ISZ ANFORD DCA I IR0 /ABLEGEN NACH PCSAVE EBENE N TAD I ANFORD /SF= IF 6-8 + DF 9-11 EBENE N DCA I IR0 /ABLEGEN NACH SFSAVE EBENE N JMP RETURN /RETURN /// NEGEB, 0 /NEG. EBENENNR. ZGER, 0 /GERAETEZAEHLER / / / ORGANISATIONSAUFRUF ZUR / ANFORDERUNG EINES ANWENDERPROGRAMMES / ------------------------------------- / CALL0, JMS VERS /VERSORGUNGEN HOLEN 3 /ANZAHL DER VERSORGUNGEN TAD (VERS1 /ADRESSE DER ERSTEN VERSORGUNG DCA ANFORD /IN ANFORD ABLEGEN JMP ANFO1 /SPRUNG IN ANFORD /// PAGE
/ / / ORGANISATIONSAUFRUF / 2 = BAND LESEN / 3 = BAND SCHREIBEN / 4 = BAND LESEN, PROGRAMM STARTEN / -------------------------------- / CALL2, TAD (GNRDT /GERAETENUMMER FUER DECTAPE = 8 JMS DEVCHK /UP GERAET PRUEFEN JMP RETURN /AUSGANG WENN GERAET TAETIG /// TAD CALL /CODE DES AUFRUFES TAD (-4 SNA CLA /CODE 2 ODER 3, 4 VERSORGUNGEN IAC /CODE 4 5 VERSORGUNGEN TAD (4 DCA B2 JMS VERS /VERSORGUNGEN HOLEN B2, 4 /ANZAHL DER VERSORGUNGEN TAD CALL /CODE DES AUFRUFES TAD (-4 DCA DLS /DLS=0 WENN CODE 4 CLA CLL CMA RTL /-3 TAD CALL /CODE DES AUFRUFES SZA CLA /WENN CODE 3, WRITE, AC=0 IAC /WENN CODE 2 ODER 4, READ, AC=1 JMP DECPR /SPRUNG IN DIE DECTAPE PROGRAMME /// DLS, 0 /BEI CODE 2/3 UNGL 0, CODE 4 = 0 / / / AUSGANG AUS DEN DECTAPE PROGRAMMEN, / WENN DER DATENTRANSFER BEENDET IST. / ----------------------------------- / INTDEC, TAD (GNRDT /GERAETENR. DECTAPE DCA M /GERAETENUMMER M TAD M TAD (DVB /+BEZUGSADRESSE DCA SF /=ADRESSE DVB GERAET M TAD I SF /EBENENNUMMER A DCA AC JMS DEVRET /BITS AUS DVA NACH APR, DVA,DVB=0 TAD DLS SZA CLA /WENN DLS=0 WAR CODE 4 JMP RETURN /RETURN TAD AC /EBENENNUMMER A TAD (MASKTB-1 /+BEZUGSADRESSE DCA SF /ADRESSE BIT A-1 TAD I SF /NUR BIT A-1 =1 CMA /NUR BIT A-1 =0 AND APR DCA APR /BIT A-1 IN APR = 0 TAD VERS5 DCA STRT+1 /LEVELNO. N IAC TAD DCORE DCA STRT+2 /CORELOC TAD DUF RTR RAR TAD DUF AND (77 DCA STRT+3 /SF = IF 6-8 + DF 9-11 STRT, JMS ANFORD 0 /LEVELNO. N 0 /CORELOC 0 /IF + DF /// / / / ABMELDUNG EINES GERAETES / BITS AUS DVA NACH APR, / DVA UND DVB GERAET M LOESCHEN / ----------------------------- / DEVRET, NOP TAD M /GERAETENR. M TAD (DVA /+BEZUGSADRESSE DCA SF /=ADRESSE DVA GERAET M TAD I SF /DVA GERAET M TAD APR /BITS AUS DVA SIND IN APR = 0 DCA APR /DAHER UEBERTRAGEN MIT TAD MOEGL. DCA I SF /DVA GERAET M LOESCHEN TAD M /GERAETENR. M TAD (DVB /+BEZUGSADRESSE DCA SF /ADRESSE DVB GERAET M DCA I SF /DVB GERAET M LOESCHEN JMP I DEVRET /// / / PRUEFEN EINES GERAETES, DEVICE CHECK / GERAET FREI - DVA UND DVB BELEGEN / GERAET TAETIG - PCSAVE EBENE A RUECKSETZEN / ------------------------------------------- / DEVCHK, NOP DCA M /AC = GERAETENR. M TAD M TAD (DVB /+BEZUGSADRESSE DCA SF /= ADRESSE DVB GERAET M TAD I SF /DVB GERAET M SZA CLA /WENN GERAET M FREI JMP DEVCH1 /WENN GERAET M TAETIG TAD LPR /EBENENNR. A DCA I SF /NACH DVB GERAET M LADEN ISZ DEVCHK /ERHOEHE RUECKKEHRADRESSE FUER JMP DEVCH2 /AUSGANG GERAET FREI /// DEVCH1, TAD LPR /EBENENNR. A CLL RTL /MAL 4 TAD (PCSAVE-4 /+BEZUGSADRESSE DCA SF /= ADRESSE PCSAVE EBENE A CLA CLL CMA RAL /-2 TAD I SF DCA I SF /ANF.ADR. IM ANWENDERPROGRAMM DEVCH2, TAD M /GERAETENR. M TAD (DVA /+BEZUGSADRESSE DCA SF /= ADRESSE DVA GERAET M TAD LPR /EBENENNR. A TAD (MASKTB-1 /+BEZUGSADRESSE DCA L /ADRESSE BIT A-1 TAD I SF /DVA GERAET M AND I L /ADRESSE BIT A-1 SZA CLA JMP DEVCH3 TAD I SF /DVA GERAET M TAD I L /BIT A-1 DCA I SF /BIT A-1 IN DVA GERAET M SETZEN DEVCH3, TAD I L /NUR BIT A-1 = 1 CMA /NUR BIT A-1 = 0 AND APR DCA APR /BIT A-1 IN APR = 0 JMP I DEVCHK /// PAGE
/ / /TC01 SUBROUTINES REV. 7/67 /---------------------------- / / /GEAENDERT ZUR VERWENDUNG IM BETRIEBSSYSTEM PDP-8/E /ZUR HERKON-RELAIS FERTIGUNG / / DECPR, TAD (DR128 DCA DRET /READ-WRITE-RETURN AFTER SEARCH CLA CMA TAD VERS1 DCA DCORE /FIRST CORE LOCATION-1 OF TRANSFER TAD VERS2 DCA DUF /UNIT AND FIELD TAD VERS3 DCA DNCB /-NUMBER OF BLOCKS TO BE TRANSFERRED TAD VERS4 DCA DTEM /STORE BLOCK NO. / DSERH, TAD (DTBLK /DTBLK TO 7755 (CA) DCA I (7755 TAD (DTINT DCA MCOM /INTERRUPT ENTRANCE TAD DUF AND D7000 /PICK UP UNIT NUMBER TAD (614 /SET TO SEARCH,NORMAL,REVERSE DTLA /LOAD STATUS A DTLB /FIELD 0 JMP I RET4 /INTERRUPT RETURN INS BETRIEBSSYSTEM /// DR128, TAD D20 /WRITE (NOT READ),(40-20) TAD (30 /READ, CANCEL SEARCH (20+10) DTXA /SET FUNCTION TAD DCORE /FIRST CORE LOCATION-1 OF TRANSFER DCA I (7755 / TO CURRENT ADDRESS ISZ MCOM /POINT INTERRUPT ENTRANCE TO DINT DR127, DTXA /SEND READ OR WRITE TAD D7600 /SET WORD COUNT FOR 1 PAGE DCA I (7754 /-128 TO WORD COUNT TAD DNCB SNA /BLOCK COUNT NOT ZERO, CONTINUE JMP I DECINT /END OF TRANSFER, GO TO INTDEC JMP I RET4 /INTERRUPT RETURN INS BETRIEBSSYSTEM /// /EINGANG NACH INTERRUPT DTINT, JMP DTS3A / DINT, DTRB /READ STATUS B SPA CLA JMP DER /ERROR FLAG ISZ DNCB /COUNT BLOCKS JMP DR127 /CONTINUE OPERATION DTURNX, TAD D200 /COMPLEMENT MOTION AND DIRECTION TAD D400 JMP DR127 /// / DTS3A, DTRB /READ STATUS B RTL /LOOK AT BIT 2 SPA CLA /END ZONE? JMP DTURNX /YES (MOTION BIT=0), TURN DTRB SPA CLA JMP DER /ERROR FLAG BIT 0=1 DTRA D7000, RTL RTL /FOR-REV STATUS (BIT 3) IN LINK D7600, 7600 /GROUP 2 CLA TAD DTBLK CMA IAC TAD DTEM /LINK COMP. IF REQUIRED BLK NO. SNA /IS BIGGER I.E. MUST GO FORWARD JMP DTFIND /FOUND BLOCK CHECK DIRECTION CMA IAC SNL IAC /GO 2 MORE BLOCKS BEFORE TURNING SNL CLA TAD D400 /TURN IF HERE JMP DR127 /XOR TO A STATUS AND DISMIS /// DER, DTRA /ERROR ROUTINE, READ STATUS A AND D200 /STOP TAPE IF RUNNING, SET BIT 4 = 0 TAD D2 /DON'T CLEAR ERRORS BIT 10=1 DTXA DTRB /ERROR STATUS B JMP DTHLT /DECTAPE-FEHLER-AUSGANG /// /NACH CONTINUE: / /ABBRUCH DER LAUFENDEN EBENE, AUF DER DER /LESE- ODER SCHREIB-FEHLER AUFTRAT DTCONT, CLA CLL TAD (214 /CLEAR ERROR FLAG BY STOPPING /DECTAPE 0 DTLA TAD (DVB+GNRDT /DEVICE-BUZY-TABELLE: DECTAPE DCA SF TAD I SF /EBENENNR. JMS CAL7 /ABBRUCH CLA CMA DCA DLS /KEIN START BEI CODE 4 JMP INTDEC /// DTFIND, SNL CLA /TEST DIRECTION JMP DR127 /DONT TURN YET, STILL IN REVERSE DTXA /CLEAR FLAG TAD DUF DTLB /SET MEMORY FIELD JMP I DRET /EXIT TO COMPLETION RETURN /// DRET, 0 /DR128 IF WRITE, OR DR128+1 IF READ DUF, 0 /UNIT AND FIELD DNCB, 0 /-NUMBER OF BLOCKS TO BE TRANSFERRED DTEM, 0 /HOLDS REQUIRED BLK NO. DTBLK, 0 /BLOCK NO. DEPOSITED HERE BY CONTROL DCORE, 0 /FIRST LOCATION-1 OF TRANSFER RET4, RETURN /INTERRUPT RETURN INS BETRIEBSSYSTEM DECINT, INTDEC /RETURN INS BETRIEBSSYSTEM, /WENN DECTAPE-AUFRUF ERLEDIGT. /DIAGONALMATRIX MASKTB, 4000 /BIT0 DIAGONAL-MATRIX 2000 / 1 1000 /BIT2 D400, 400 / 3 CHANGE DIRECTION D200, 200 /BIT4 CHANGE STOP/GO 100 / 5 40 /BIT6 D20, 20 / 7 10 /BIT8 4 / 9 D2, 2 /BIT10 1 / 11 *1554 DTHLT, HLT /DECTAPE-FEHLER-HALT JMP DTCONT /DRUECKE "CONTINUE", FALLS /NICHT GERADE GESCHRIEBEN WIRD /ODER DIES UNGEFAEHRLICH IST PAGE
/ / /ORGANISATIONSAUFRUF ZUM /AUSDRUCKEN EINER ZEICHENFOLGE /AUF EINEM FERNSCHREIBER /------------------------------ / CALL5, JMS DEV /VERSORGUNGEN HOLEN /GERAET M PRUEFEN /AUSGANG WENN GERAET TAETIG 2 /ANZAHL DER VERSORGUNGEN TAD VERS2 /ADRESSE DES TEXTES UMSPEICHERN DCA AC JMS UPFS /POINTER FUER GERAET M LADEN TAD AC /ADRESSE DES TEXTES DCA I VERS1 /IN POINT+M ABSPEICHERN TAD CDFX /SETZE OUTPUT-MODE DCA I VERS2 /MODE+M = CDFX, DAHER UNGL 0 JMP CALL5A /// / / / INTERRUPT VOM FERNSCHREIBER / NACH AUSGABE EINES ZEICHENS / --------------------------- / INTFSA, NOP /EINSPRUNG BEI INTERRUPT VON FS TAD I INTFSA /GERAETENUMMER M DCA M JMS UPFS /POINTER FUER GERAET M LADEN CALL5A, JMS UPFSA /IOT-BEFEHLE LADEN TCFBF, TCF /CLEAR TELEPRINTER FLAG TAD I VERS2 /MODE+M = CDFX SPA /WENN INPUT-MODE JMP OUT /WENN OUTPUT-MODE CLA CMA DCA I VERS2 /SETZE OUTPUT-MODE JMP ECHINT /AUSGANG BEI ECHO-INTERRUPT /// OUT, DCA CDFBF TAD I VERS1 DCA L /ADRESSE NAECHSTES ZEICHEN CDFBF, CDF /CDFX TAD I L /ZEICHEN Z CDF 0 SZA /WENN Z = ENDEZEICHEN JMP E ECHINT, JMS DEVRET /BITS AUS DVA NACH APR, DVA,DVB=0 JMP RETURN /// E, DCA L /Z ZWISCHENSPEICHERN ISZ I VERS1 NOP JMS UPRINT /ZEICHEN AUS L DRUCKEN JMP RETURN /// UPRINT, NOP JMS UPFSA /IOT-BEFEHLE LADEN TAD L TLSBF, TLS /ZEICHEN DRUCKEN, FLAG LOESCHEN CLA CLL JMP I UPRINT /// / / HILFSPROGRAMM FUER FS- AUSGABE / ZUM LADEN DER IOT-BEFEHLE GERAET M / ---------------------------------- / UPFSA, NOP TAD Z M /GERAETENUMMER M TAD (ADR /ADRESSE DEVICE-CODE DCA AC TAD I AC /DEVICE-CODE TAD (6012 /ABGESCHNITTENER TCF DCA TCFBF CLA CLL IAC RTL /4 TAD TCFBF /TLS-BEFEHL BERECHNEN DCA TLSBF JMP I UPFSA /// / /HILFSPROGRAMM FUER TTY-EIN/AUSGABE /VERSORGUNGEN HOLEN UND GERAET PRUEFEN /-------------------------------------- / DEV, NOP JMS HOLVER /HOLE GERAETENUMMER JMS DEVCHK /UP GERAET PRUEFEN JMP RETURN /AUSGANG WENN GERAET TAETIG /// CLA CMA TAD Z PC /PC AUF GERAETENR. ZURUECKSETZEN DCA Z PC TAD I DEV /ANZAHL UMSPEICHERN DCA B JMS VERS /VERSORGUNGEN HOLEN B, 0 /ANZAHL VERSORGUNGEN ISZ DEV JMP I DEV /// / /POWER-FAIL-SERVICE-ROUTINE /------------------------- / / PFAIL, CLA CMA CDF 10 DCA I (MNETZ /SETZE MERKER F. NETZAUSFALL CDF 00 TAD (EBENEP /EBENE DES STEUERPROGRAMMS CLL RTL /MAL 4 TAD (PCSAVE-5 DCA IR0 /INDEX AUF PCSAVE TAD (STOP /ADRESSE AUFRUF HALT DCA I IR0 / F. ABBRUCH DER EBENE DCA I IR0 /SFSAVE DES AUFRUFES TAD DVB+GNRDT /DEVICE BUSY SNA CLA /DECTAPE BELEGT ? JMP POWLOW / NEIN /DECTAPE BELEGT BEI NETZAUSFALL TAD DVB+GNRDT /NR. DER EBENE CLL RTL TAD (PCSAVE-4 DCA AC TAD DLS /MERKER KODE 4 SNA CLA /KODE 4 ? CLA CMA / JA TAD (-7 TAD I AC DCA I AC /SETZE PC ZURUECK F. AUFRUF- / WIEDERHOLUNG TAD DVB+GNRDT TAD (MASKTB-1 DCA AC TAD I AC TAD APR DCA APR /TRAGE EBENE ALS ANGEFORDERT EIN DCA DVB+GNRDT /DAMIT WIEDERSTART MOEGLICH POWLOW, TAD (INTRT1 /ADRESSE PAGE 0 TAD (5400 /JMP I DCA 0 / FUER POWER UP HLT /HALT BEI POWER LOW /// PAGE
/ / /ORGANISATIONSAUFRUF ZUM BEENDEN /EINES ANWENDERPROGRAMMES /-------------------------------- / CALL1, TAD LPR /AKT . EBENE A TAD (MASKTB-1 DCA AC TAD LPR TAD (-EBENE1 /EBENENNR. SNA CLA /EBENE DES LA30 ? DCA M4 / JA, SETZE MERKER ZURUECK, / DAMIT ANDERES FORTRAN- / PROGRAMM STARTBAR TAD LPR TAD (-EBENEP SNA CLA /STEUERPR. ? DCA MPA /LOESCHE MERKER PRUEFAUTOMATENFLAG TAD I AC /NUR BIT A-1 =1 CMA /NUR BIT A-1 =0 AND APR DCA APR /BIT A-1 IN APR=0 JMP RETURN /// / / /ORGANISATIONSAUFRUF ZUR EINGABEE EINES /ZEICHENS VOM FERNSCHREIBER AUS /-------------------------------------- / CALL6, JMS DEV /VERSORGUNGEN HOLEN /GERAET M PRUEFEN /AUSGANG WENN GERAET TAETIG 1 /ANZAHL DER VERSORGUNGEN JMS UPFS /POINTER FUER GERAET M LADEN DCA I VERS2 /MODE+M = 0 = INPUT-MODE JMS UPFSE /IOT-BEFEHLE LADEN KCCBF, KCC /CLEAR KEYBOARD FLAG JMP RETURN /// / /ORGANISATIONSAUFRUF ZUR BEENDIGUNG EINES PROGRAMMES /--------------------------------------------------- / /VON EINER ANDEREN EBENE AUS / CALL7, JMS VERS /VERSORGUNGEN HOLEN 1 /ANZAHL DER VERSORGUNGEN TAD VERS1 /ZU BEENDENDE EBENE CALL7A, JMS CAL7 /BRECHE EBENE AB JMP RETURN /// / /UNTERPROGRAMM ZUM ABBRECHEN EINER EBENE /-------------------------------------- / CAL7, HLT CLL RTL /EBENE MAL 4 TAD (PCSAVE-4 DCA AC /ADRESSE PC-SAVE F. EBENE TAD (STOP /ADRESSE AUFRUF CODE 1 DCA I AC /SPEICHERE IN PC-SAVE ISZ AC /ADRESSE SF-SAVE F. EBENE DCA I AC /SETZE FELD F. AUFRUF JMP I CAL7 /// / /HILFSPROGRAMM FUER FS-EINGABE /ZUM LADEN DER IOT-BEFEHLE FUER GERAET M /----------------------------------------- / UPFSE, NOP TAD M /GERAETENUMMER M TAD (ADR /ADRESSE DEVICE-CODES DCA AC TAD I AC /DEVICE-CODE TAD (6002 /ABGESCHNITTENER KCC DCA KCCBF CLA CLL IAC RTL /4 TAD KCCBF DCA KRBBF JMP I UPFSE /// / / INTERRUPT VOM FERNSCHREIBER / NACH EINGABE EINES ZEICHENS / --------------------------- / INTFSE, NOP /EINSPRUNG BEI INTERRUPT VON FSE TAD I INTFSE /GERAETENUMMER M DCA M JMS UPFS /POINTER FUER GERAET M LADEN JMS UPFSE /IOT-BEFEHLE LADEN TAD M /GERAETENUMMER M TAD (DVB /+BEZUGSADRESSE DCA SF / = ADR. DVB GERAET M KRBBF, KRB /READ CHARACTER, CLEAR FLAG DCA L /ZEICHEN Z TAD L DCA AC /ASCII-ZEICHEN ALS EINGABE TAD I VERS2 /MODE+M SZA CLA /WENN INPUT-MODE JMP OUTMOD /WENN OUTPUT-MODE TAD I SF /DVB GERAET M = EBENENNR. N CLL RTL /MAL 4 TAD (ACSAVE-4 /+BEZUGSADRESSE DCA SF / = ADR. ACSAVE EBENE N TAD AC /ASCII-ZEICHEN ALS EINGABE DCA I SF /NACH ACSAVE EBENE N ABSPEICHERN ECHO, JMS UPRINT /ZEICHEN ABDRUCKEN JMP RETURN /// OUTMOD, TAD I SF /DVB GERAET M SNA CLA /GERAET FREI ? JMP BEFEHL / JA, UNTERSUCHE, OB EINGABE BEFEHL /ES WURDE TROTZ LAUFENDER AUSGABE EIN FERNSCHREIBER BEDIENT TAD AC /EINGEGEBENES ZEICHEN TAD (-310 /ASCII KODE : H SZA CLA /STOP-ZEICHEN F. AUSWERTUNG ? JMP RETURN / NEIN TAD M /GERAETENR. SZA CLA /KONSOLE ? JMP RETURN / NEIN TAD (EBENE0 /NR. DER AUSWERTE-EBENE, DIE DURCH /EINGABE V. H AUF TTY 0 /ABGEBROCHEN WERDEN KANN JMP CALL7A /BRECHE EBENE AB /// / /HILFSPROGRAMM FUER FS-EIN-UND AUSGABE /ZUR ERRECHNUNG DER POINTER FUER GERAET M /---------------------------------------- / UPFS, NOP TAD M /GERAETENUMMER M TAD (POINT /+BEZUGSADRESSE DCA VERS1 / = ADR. POINT+M TAD M TAD (MODE DCA VERS2 / = ADR. MODE+M JMS DCFLAG /DECTAPE-FLAG-ABFRAGE JMP I UPFS /// /DEVICE-CODES MAL 8 ADR, 30 /TTY 0 300 /TTY 1 (LA30) ZBLOCK 6 /RESERVE F. WEITERE FERNSCHREIBER PAGE
/ /VERGLEICH MIT OPERATORZEICHEN /----------------------------- / /EINGEGEBENES ZEICHEN = OPERATORZEICHEN: ECHO UND /PROGRAMMANFORDERUNG. /SONST: KEIN ECHO. / BEFEHL, DCA I VERS2 /MODE := 0 WEGEN ECHO TAD AC /ZEICHEN CLL RTL RAL TAD M /ZEICHEN, GERAETENUMMER CMA IAC DCA AC JMS DCFLAG /DECTAPE-FLAG ABFRAGE / BEF, JMS UPBEF /WIRD BEIM ERSTEN F GEAENDERT 3060 /F-GRUNDSTARTPROGRAMM EBENEP /EBENE GRUND1 /STARTADRESSE 0 /IF+DF / BEFL, JMS UPBEF 3141 /L-LOSENDEPROGRAMM /******************************** /EXTERN FUER LOSENDEPROGRAMM EBENE1 /EBENE LOSND1 0 / JMS UPBEF 3050 /E-VORAUSWERTEPR. EBENE0 VOR1 0 / JMS UPBEF 3230 /S-SOLLWERTAENDERUNGSPR. EBENE0 SOLLA1 0 / JMS UPBEF 2201 /CONTROL-SHIFT-P -SCHICHTENDEPR. EBENE1 /EBENE SCHT1 0 / JMS UPBEF 3070 /G-FABRIKTAGAENDERUNGSPR. EBENE0 /EBENE FABR 0 / JMS UPBEF 3051 /E-SONDERPRUEFUNGSPR. EBENE1 SOND 0 / JMP BEFB /RESERVE NOP NOP NOP NOP / NOP NOP NOP NOP NOP / NOP NOP NOP NOP NOP / NOP NOP NOP NOP NOP / NOP NOP NOP NOP NOP / BEFB, JMS UPBEF 3020 /"B"-BEDIENUNGSPROGRAMM EBENEB /EBENENNR. BEDI 0 / CLA CMA DCA I VERS2 /SETZE OUTPUTMODE JMP RETURN /// / /UP. FUER VERGLEICH MIT EINEM OPERATORZEICHEN /-------------------------------------------- / UPBEF, NOP TAD AC TAD I UPBEF SZA CLA JMP U1 /WENN AC UNGLEICH BEFEHLSCODE JMS UPRINT /EINGEGEBENES ZEICHEN DRUCKEN CLA IAC TAD UPBEF DCA ANFORD JMP ANFO1 /PROGRAMM-ANFORDERUNG U1, CLA CLL IAC RTL /4 TAD UPBEF DCA UPBEF JMP I UPBEF /// JP, JMP BEFL /BEFEHL F. VERHINDERUNG EINES / 2. GRUNDSTARTES / / /UP FUER ZUSAETZLICHE ABFRAGE DER DECTAPE FLAG /IM LAUFENDEN PROGRAMM. /--------------------------------------------- / DCFLAG, NOP DTSF /SKIP ON DECTAPE-FLAG JMP I DCFLAG /RUECKSPRUNG, WENN KEINE CLA CLL / FLAG GESETZT TAD (DCF2 /ADRESSE IN DECTAPE-UP UMSCHALTEN DCA RET4 TAD (DCF6 DCA DECINT JMP I MCOM /EINGANG IN DECTAPE-UP /// / /RUECKSPRUNG AUS DEN DECTAPE-ROUTINEN, WENN DIE /BANDBEARBEITUNG NOCH NICHT ABGESCHLOSSEN IST, /Z.B. WEITER SUCHEN. / DCF2, CLA CLL DCF2A, DCA MKDECT /MERKER F. ANSTEHENDE DECTAPE-BEARB. TAD (RETURN /ADR. IN DECTAPE-UP RUECKSTELLEN DCA RET4 TAD (INTDEC DCA DECINT JMP I DCFLAG /// DCF6, TAD DCFLAG /MERKER SETZEN JMP DCF2A /// / /ABFRAGE, OB ABSCHLIESSENDE DECTAPE-BEARBEITUNG NOCH ANSTEHT / DCABFR, NOP CLA CLL TAD MKDECT SNA CLA /BEARBEITUNG NOTWENDIG ? JMP I DCABFR / NEIN DCA MKDECT JMP INTDEC /DECTAPE-ROUTINEN ABSCHLIESSEN /// MKDECT, 0 /MERKER F. ANSTEHENDE / DECTAPE-BEARBEITUNG PAGE
/ / / SPEICHERBEREICH ALS SAVE-AREA / FUER HARDWARE-REGISTER-STAENDE / VON 12 SOFTWARE-EBENEN / ------------------------------ / ACSAVE, 0 /AC1 LSAVE, 0 /L 1 PCSAVE, 0 /PC1 SFSAVE, 0 /SF1 / 0 /AC2 0 /L 2 0 /PC2 0 /SF2 / 0 /AC3 0 /L 3 0 /PC3 0 /SF3 / 0 /AC4 0 /L 4 0 /PC4 0 /SF4 / 0 /AC5 0 /L 5 0 /PC5 0 /SF5 / 0 /AC6 0 /L 6 0 /PC6 0 /SF6 / 0 /AC7 0 /L 7 0 /PC7 0 /SF7 / 0 /AC10 0 /L 10 0 /PC10 0 /SF10 / 0 /AC11 0 /L 11 0 /PC11 0 /SF11 / 0 /AC12 0 /L 12 0 /PC12 0 /SF12 / 0 /AC13 0 /L 13 0 /PC13 0 /SF13 / 1 /AC14 /ANFANGS-STAND FUER DUTY CYCLE 1 /L 14 DUTY /PC14 0 /SF14 / / /TABELLE "DEVICE ANGEFORDERT" /(FUER JEDE EBENE 1 BIT) / DVA, 0 /TTY-0 0 /TTY-1 (LA30) ZBLOCK 6 /RESERVE 0 /DECTAPE (= GERAET NR. 8) / / /TABELLE "DEVICE BUSY" /(ENTHAELT DIE NUMMER DER EBENE, DIE DAS GERAET GERADE / BENUETZT) / DVB, 0 /TTY 0 0 /TTY 1 (LA30) ZBLOCK 6 /RESERVE 0 /DECTAPE (= NR. 8) / /REGISTER FUER ORGANISATIOSAUFRUFE /ZUR EIN-/AUSGABE UEBER FERNSCHREIBER / /LAUFENDE STRINGADRESSE BEI CODE 5 POINT, 0 /TTY 0 0 /TTY 1 (LA30) ZBLOCK 6 /RESERVE / /MODE: INPUT-MODE = 0 / OUTPUT-MODE = -1 BZW. 620X MODE, -1 /TTY 0 (ANFANG IN OUTPUT-MODE !) -1 /TTY 1 (LA30) -1 /RESERVE -1 -1 -1 -1 -1 / /UNTERPROGRAMM FUER DECTAPE-FLAG-ABFRAGE / DCFLG, NOP DTSF /SKIP ON DECTAPE-FLAG JMP I DCFLG JMP I MCOM /SPRUNG IN DIE DECTAPE-ROUTINEN /// PAGE
/ /ROUTINEN FUER LADEN UND /---------------------- / /STARTEN VON ANWENDERPROGRAMMEN AUF /GRUND VON OPERATORBEFEHLEN / STOP, IOF /ADRESSE EXTERN ******************* JMS 3 /HALT PROGRAMM DIESE EBENE 1 /AUFRUF-CODE F. HALT /// /EXTERN F. FORTRANPROGRAMME ***************************** EXTERN, JMP AUSWT1 /* START AUSWERTEPR. LOSENDE 1 JMP MISTR1 /* START LANGZEITAUSWERTEPR. 1 JMP KLSVT1 /* START LANGZEITAUSWERTEPR. 2 JMP AUSWT2 /* START AUSWERTEPR. LOSENDE 2 JMP SOLLB1 /* START SOLLWERTAENDERUNGSPR. TEIL 2 NOP /RESERVE NOP /RESERVE /// /TTY-0: F GRUND1, TAD JP /EIN BEFEHL DCA BEF /VERHINDERE 2. GRUNDSTART / JMS PRLES /STARTE GRUNDSTARTPROGRAMM 603;2000;614;637;227 /PARAMETER /// /TTY-0: G FABR, JMS PRLES /STARTE FABRIKTAGAENDERUNGSPR. 603;2000;614;637;746 /// /TTY-1: L LOSND1, JMS PRLES 777;3400;1032;1053;1252 /// /START DURCH LOSENDEPROGRAMM AUSWT1, JMS PRLES /STARTE AUSWERTEPR. LOSENDE 1 1115;3400;1150;1173;727 /// /START DURCH AUSWERTEPROGRAMM LOSENDE 1 AUSWT2, JMS PRLES /STARTE AUSWERTEPR. LOSENDE 2 1235;3400;1272;1315;551 /// /START DURCH VORAUSWERTEPROGRAMM MISTR1, JMS PRLES /STARTE LANGZEITAUSWERTEPR. / MITTELWERT/STREUUNG 1457;3400;1502;1523;632 /// /START DURCH VORAUSWERTEPROGRAMM KLSVT1, JMS PRLES /STARTE LANGZEITAUSWERTEPR. / KLASSENVERTEILUNG 1565;3400;1610;1631;616 /// /TTY-1: CONTROL-SHIFT-P SCHT1, JMS PRLES /STARTE SCHICHTENDEPR. 701;2000;712;735;237 /// / /UNTERPROGRAMM ZUM EINLESEN EINES FORTRAN-PROGRAMMES /--------------------------------------------------- / /IN FELD 1 UND 2, EINSCHLIESSLICH USER TABLE IN FELD 0 /UND FORTSETZEN AUF GLEICHER EBENE / /AUFRUF: / JMS PRLES / A /BLOCKNR. FELD 2 (ADRESSE 20200) / B /ANFANGSADRESSE FELD 1 (NACH COMMON) / C /ZUGEHOERIGE BLOCKNR. FELD 1 / D /BLOCKNR. USER TABLE (ADRESSE 00200) / E /STARTADRESSE MAIN / PRLES, HLT TAD LPR /LAUFENDE PRIORITAET TAD (-EBENEP SNA /GRUNDSTARTPROGRAMM ? JMP PRLES1 / JA TAD (EBENEP-EBENE0 SNA CLA /TTY-0 ? JMP PRLES2 / JA /EBENE FUER LA30 IOF JMS 3 /BRECHE EBENE FUER TTY-0 AB 7 /AUFRUF-KODE EBENE0 /EBENENNR. / ISZ M4 /SETZE MERKER F. EBENE 4 /FUER BEIDE EBENEN PRLES1, TAD I PRLES DCA BL2 /SPEICHERE BLOCKNR. FELD 2 ISZ PRLES TAD I PRLES /ANFANGSADRESSE FELD 1 DCA AD1 /SPEICHERE IN AUFRUF TAD AD1 CLL RTL RTL RTL TAD (-37 DCA PA1 /SPEICHERE BLOCKANZAHL IN FELD 1 ISZ PRLES TAD I PRLES DCA BL1 /SPEICHERE BLOCKNR. FELD 1 ISZ PRLES TAD I PRLES DCA USTB /SPEICHERE BLOCKNR. USER TABLE ISZ PRLES TAD I PRLES DCA MAIN /SPEICHERE STARTADRESSE / IOF JMS 3 /LIES USER TABLE 2 200 /ADRESSE 0 /BANDEINH. UND FELD -1 /BLOCKANZAHL USTB, 0 /BLOCKNR. / IOF JMS 3 /LIES PR.TEIL FELD 1 2 AD1, 0 /ANFANGSADRESSE 10 /FELD PA1, 0 /BLOCKANZAHL BL1, 0 /BLOCKNR. / IOF JMS 3 /LIES PR.TEIL FELD 2 2 200 /ANFANGSADRESSE 20 -36 /BLOCKANZAHL (200-7577) BL2, 0 /BLOCKNR. / CDI 20 /FELD V. MAIN JMP I MAIN MAIN, 0 /STARTADRESSE DES FORTRANPROGR. /// /EBENE FUER TTY-0 PRLES2, TAD M4 SZA CLA /LAEUFT SCHON EIN FORTAN- / PROGRAMM (FUER LA30 ? JMP STOP / JA JMP PRLES1 /// M4, 0 /MERKER EBENE FUER TTY-1 PAGE
/TTY-0: E VOR1, JMS PRLES /STARTE VORAUSWERTEPR. 1357;3400;1374;1415;553 /// /TTY-0: T SOLLA1, JMS PRLES /STARTE SOLLWERTAENDERUNGSP. TEIL 1 1673;3400;1730;1751;635 /// /START DURCH SOLLWERTAENDERUNGSPROGRAMM 1 SOLLB1, JMS PRLES /STARTE SOLLWERTAENDERUNGSPR. TEIL 2 2013;3400;2042;2063;565 /// TESTP1, JMS PRLES /STARTE INTERFACE-TESTPROGRAMM 311; 200; 337; 363; 232 /// JMS PRLES /RESERVE ZBLOCK 5 /// / /BEDIENUNGSPROGRAMM A: BEDIENUNG DER AUFRUFE /----------------------------------------- / /START DURCH B AUF TTY-0 BEDI, JMS PRINT A-1 JMP BEDI2 /// BEDI2A, JMS PRINT /AUSGABE V. CR, LF UND "A" A BEDI2, JMS PRINT /AUSGABE V. CR, LF UND ZW1 / 2 MAL LEERTASTE JMS EWORT DCA CAL JMS EWORT DCA CAL+1 JMS EWORT DCA CAL+2 JMS EWORT DCA CAL+3 JMS EWORT DCA CAL+4 JMS EWORT DCA CAL+5 / IOF JMS 3 CAL, 1 0 0 0 0 0 JMP BEDI2 /// BEDI2E, JMS PRINT /AUSGABE V. CR , LF UND "O" O JMP BEDI4 /STARTE BEDIENUNGSPR. O /// /EINGABE EINES WORTES OKTAL EWORT, NOP CLA EWRT1, DCA WORT JMS READ TAD (-257 SZA CLA /SLASH ? JMP EWRT2 / NEIN TAD WORT / JA JMP I EWORT /// EWRT2, TAD CHAR TAD (-270 SMA / >270 OKTAL ? JMP BEDI2 / JA TAD (10 SPA / < 260 OKTAL ? JMP BEDI2 / JA AND (7 DCA CHAR TAD WORT CLL RAL CLL RAL CLL RAL TAD CHAR JMP EWRT1 /// READ, NOP / IOF JMS 3 /EINGABE EINES ZEICHENS 6 /KODE 0 /TTY-NR. / DCA CHAR TAD CHAR TAD (-317 SNA /"O" ? JMP BEDI2E / JA TAD (7 SNA CLA /"H" ? JMP H TAD CHAR JMP I READ /// H, JMS PRINT /AUSGABE V. CR UND LF CRLF / JMP STOP /HALT PROGRAMM /// PRINT, NOP CLA TAD I PRINT DCA STRADR / IOF JMS 3 /AUSGABE EINER ZEICHENFOLGE 5 /KODE 0 /TTY-NR. STRADR, 0 / ISZ PRINT JMP I PRINT /// WORT, 0 CHAR, 0 / PAGE
/ /BEDIENUNGSPROGRAMM O: OKTALE EIN- UND AUSGABE /-------------------------------------------- / / BEDI4, JMS PRINT ZW1 /CR, LF, 2 MAL LEERTASTE JMS EWORT1 TAD (CDF DCA CDFY JMS EWORT1 JMP .+3 /// NEXT, CLA IAC TAD ADRS DCA ADRS EXAMIN, JMS PRINT /DRUCKE "=" ISTGL CDFY, CDF 00 /WECHSLE AUF EINGEGEBENES FELD TAD I ADRS CDF 00 JMS AWORT /AUSGABE DES ADRESSENINHALTES JMS PRINT /AUSGABE VON LEERTASTE ZWRAUM TAD CDFY DCA .+2 JMS EWORT1 CDF 00 DCA I ADRS /SPEICHERE NEUEN INHALT CDF 00 JMP EXAMIN /// /OKTALE AUSGABE EINES WORTES AWORT, NOP CLL RAL DCA WORT TAD (-4 DCA CNT UNPACK, TAD WORT RAL RTL DCA WORT TAD WORT AND (7 TAD (260 DCA ZCH JMS PRINT /DRUCKE ZEICHEN ZCH ISZ CNT /4. ZEICHEN ? JMP UNPACK / NEIN JMP I AWORT /// /OKTALE EINGABE EINES WORTES EWORT1, NOP EWRT3, DCA WORT JMS READ1 TAD (-257 SZA /SLASH ? JMP EWRT4 / NEIN TAD WORT JMP I EWORT1 /// EWRT4, TAD (-11 SMA / > 270 OKTAL ? JMP BEDI4 / JA TAD (10 SPA / < 260 OKTAL ? JMP BEDI4 / JA AND (7 DCA CHAR TAD WORT CLL RAL CLL RAL CLL RAL TAD CHAR JMP EWRT3 /// READ1, NOP / IOF JMS 3 /EINGABE EINES ZEICHENS 6 /KODE 0 /TTY-NR. / TAD (-310 SNA /"H" ? JMP H / JA TAD (7 SNA /"A" ? JMP BEDI2A / JA TAD (-15 SNA /"N" ? JMP NEXT / JA TAD (101 SNA /CR ? JMP BEDI4 / JA TAD ZW1 JMP I READ1 /// ZCH, 0 /ZEICHEN (ASCII-CODE) 0 CNT, 0 /ZAEHLER ADRS, 0 / ISTGL, 275 0 / ZW1, 215 212 240 ZWRAUM, 240 0 / CRLF, 215 212 212 0 / 302 /WEGEN BS A, 215 212 301 0 / O, 215 212 317 0 PAGE ZBLOCK 200 /RESERVE
/ /VARIABLE AUF PAGE 0 FUER STEUERPROGRAMM / FIELD 0 *11 AUT1, 0 /AUTOINDEX AUT2, 0 AUT3, 0 0 0 0 0 *76 TOTMNT, 0 /TOTZEIT: MINUTEN SEIT 0 UHR ANR, 0 /AUTOMATENNR. TYP, 0 /KONTAKTTYPNR. ANZ, 0 /ANZUGSWERT ZUSAMMEN- ... ABF, 0 /ABFALLWERT WID, 0 /WIDERSTANDSWERT ... HAENGEND IST, 0 /IST-KLASSE SOLLH, 0 /SOLL-KLASSE (HARDWAREMAESSIG) SOLLT, 0 /SOLLKLASSE (TATSAECHLICH) R0, 0 /MESSWERT 0 R3, 0 /MESSWERT 3 PSOL, 0 /P. SOLL-KLASSEN PD, 0 /ANFANGSADRESSE DATENBLOCK /FUER TEXTAUSGABE PI, TPA /INPOINTER F. TEXTAUSGABE PO, TPA /OUTPOINTER F. DITO PST, 0 /STRINGP. MPNL, 0 /MERKER "AUSGABEPUFFER NICHT LEER" MAP, 0 /MERKER TEXTAUSGABE LAUEFT MAUSDR, 0 /MERKER F. UP-BEENDIGUNG *123 Z1, 0 /ZAEHLER Z2, 0 Z3, 0 S1, 0 /ZWISCHENSPEICHER S2, 0 S3, 0 P1, 0 /POINTER P2, 0 P3, 0 M1, 0 /MERKER M2, 0 M3, 0 MUN, 0 /MERKER F. UNGEPRUEFTEN KONTAKT 0 0 0 0 0 0 0 0 /BIS 147 BZW. 155 $



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search