>> MARKE
Voraussetzung: __IBM- oder ESER-Mainframe-Hardware
Programm-Autor: Rainer Feig
Einsatz: ________a) Praktikum im Lehrgebiet Operationssysteme
______________b) Hardware-Testung mit minimaler HS-Inanspruchnahme
Einsatzzeit: _____ um 1985
HS-Bedarf: _____ca. 750 Byte
Assembler-Zeilen: ca. 80
Kommandos: ___ a) LOAD - Laden eines Lademoduls auf vorzugebende Adresse
______________b) EXIT - Ausführen ab vorgegebener Adresse
______________c) DUMP - Protokollierung der HS-Belegung (von/bis)
Lademodul-Formate: a) HEX - Adresse und 8 Byte ab dieser Adresse hexadezimal
__________________________aa) für die Codierung von Maschinenbefehlen
__________________________bb) für die Codierung von HS-Plätzen
________________________________mit speziellen Hardware-Funktionen, z.B.
_________________________________________Kanalprogrammwörter CCW
_________________________________________Kanal-Adreßwörter CAW
_________________b) CHAR - Adresse und ab dieser Adresse abzuspeichernde Zeichen
_________________c) END – Lademodul-Ende-Kennzeichnung
Praktikumsziel: Einstellung der Studenten soll geändert werden,
daß ein Betriebssystem kein überirdisches System ist, sondern:
Ein Betriebssystem basiert auf Befehlen wie andere Programme auch,
allerdings sind im Kern einige wenige Funktionen auf speziellen HS-Plätzen
enthalten, die der Kommunikation mit der Hardware für die Auslösung
(oder Abfrage) von Funktionen an externen Geräten dienen (CCW, CAW).
(Anm.: Fehlerreaktionsroutinen hier nicht enthalten.)
Assembler-Text von OS0
Anm.: Die Anweisungen für die Ausgabe von OS0 auf Magnet-Datenträger sind verkleinert angegeben.
OS0GEN CSECT
PRINT NOGEN
SAVE (14,12)
LR 10,15
USING OS0GEN,10
ST 13,SAVE+4
ST 15,8(13)
LA 13,SAVE
OPEN (OS0RES,(OUTPUT))
PUT OS0RES,IPLPSW
PUT OS0RES,OS0
CLOSE (OS0RES)
L 13,4(13)
RETURN (14,12),RC=0
OS0RES DCB DDNAME=DDRES,BLKSIZE=4096,MACRF=(PM),RECFM=F,DSORG=PS
SAVE DC 18F'-1'
ORG OS0GEN+512
USING *,0
IPLPSW DC A(0,OS0-A)
IPLCCW1 CCW X'02',OS0-A,X'20',4096
IPLCCW2 CCW X'00',0,X'00',0
ORG IPLPSW+72
CAW DS CL4
ORG IPLPSW+512
OS0 ____MVC____CAW-A,CAW0-A * * * * * * * OS0-START
________SIO______X'01F'___________OS0 fragt Bediener: LOAD, EXEC OR DUMP ADRHEX?
________BNE_____*-4-A ___________________Bediener-Eingabe über Console:
________TIO______X'01F'__________________ Kommando (4-stellig) 1 blank
________BNE_____*-4-A __________________ hexadezimale Adresse (6-stellig)
________STM_____0,15,SAVEOS0-A ________ Registerinhalte sichern
________TR______EBER+5-A(6),TAB-192-A
________PACK___DWORT-A(9),EBER+5-A(7) ___ hex. Adresse von EBER --> Reg. 3
________L _______3,DWORT+4-A
________CLI______EBER-A,C'L' _____________Zeichenkette 'LOAD' auf EBER?
________BE_______LOAD-A __________________________________bei JA --> LOAD
________CLI_______EBER-A,C'E'__________________'EXEC' auf EBER?
________BE________EXECUTE-A______________________________bei JA --> EXECUTE
________CLI________EBER-A,C'D'_________________'DUMP' auf EBER?
________BE_________DUMP-A________________________________bei JA --> DUMP
FEHLER MVC______ABER-A(64),ERROR-A_________Fehlerprotokollierung
_________BAL ______14,YDUMP8-A
_________B_________OS0-A
ERROR __DC________CL64'ERROR: COMMAND IS NOT DEFINED'
LOAD ___ MVC______CAW-A,CAWLK-A * * * * * * * * * * * * * * * * * * L O A D * * * * *
_________ SIO________X'01F'___________________LK-Eingabe eines Lademoduls --> EBER
_________ BNE_______-4-A
_________ TIO________X'01F'_______________________Console statt LK-Leser!
_________ BNE _______*-4-A
_________ TR_________EBER-A(6),TAB-192-A_____________hex. Adresse von EBER --> Reg. 4
_________ PACK______DWORT-A(5),EBER-A(7)
_________ L __________4,DWORT-A
_________ CLI ________EBER+9-A,C'E'_________________________END ?
_________ BE _________OS0-A
_________ CLI ________EBER+9-A,C'C'_______________CHARACTER ?
_________ BE _________CHAR-A
_________ CLI ________EBER+9-A,C'H'_______________HEXADECIMAL ?
_________ BNE________FEHLER-A
HEX ____ TR _________EBER+15-A(16),TAB-192-A ______hex. Konstante von EBER --> ADR
_________ PACK_______DWORT-A(7),EBER+15-A(13)
_________ PACK_______DWORT+6-A(3),EBER+27-A(5)
_________ MVC________0(8,4),DWORT-A
_________ B___________ LOAD-A
CHAR ___ MVC_______ 0(8,4),EBER+15-A_________________Character-Konstante von LK-Spalte 16
_________ B__________ LOAD-A
DUMP ___ BAL________14,UPDUMP-A * * * * * * * * * * * * * * * D U M P * * * * * * * *
__________ LA _________3,SAVEOS0-A _________________________Register 0 - 7 dumpen
__________BAL_________14,UPDUMP-A
__________ LA __________3,SAVEOS0+32-A______________________Register 8 -15 dumpen
__________ BAL _________14,UPDUMP-A
__________ B____________OS0-A
UPDUMP__ UNPK _______ABER-A(15),0(8,3)___________________HS-Inhalt lt. Reg. 3 --> ABER
__________ UNPK________ABER+14-A(15),7(8,3)_________________interne --> externe Darstellung
__________ UNPK________ ABER+28-A(15),14(8,3)
__________ UNPK________ ABER+42-A(15),21(8,3)
__________ UNPK _______ ABER+56-A(9),28(5,3)
__________ TR __________ ABER-A(64),HEXTAB-A-240
YDUMP8 _ MVC_________CAW-A,CAWOUT-A
__________ SIO__________ X'01F'________________________________________ABER --> Console
__________ BNE ________ *-4-A
__________ TIO _________ X'01F'
__________ BNE ________ *-4-A
__________ BR __________14
EXECUTE _ LR _________15,3 * * * * * * * * * * * * * E X E C U T E * * * * * * * * * * *
__________ BALR ______14,15
__________B___________OS0-A
CAW0 ____DC_________A(CCW0-A)
CCW0 ____CCW______X'09',CONST-A,X'60',28__________Aufforderung zur Console-Eingabe
__________CCW______X'0A',EBER-A,X'20',11_________Eingabe des Kommandos LOAD, EXEC oder DUMP
A ________EQU_______IPLPSW
SAVEOS0 _DS________16F
HEXTAB__DC________C'0123456789ABCDEF'
CONST __ DC________CL28'* LOAD, EXEC OR DUMP ADRHEX?'____Eingabe-Aufforderungstext
EBER ____ DS________CL80_______________________________________Eingabebereich
DWORT __ DS________ D
TAB______ DC________X'00FAFBFCFDFEFF'
__________ DC_________41X'00'
__________ DC_________C'0123456789'
CAWOUT _ DC_________A(CCWOUT-A)
CCWOUT _ DC_________X'09',ABER-A,X'20',64
ABER _____ DS_________CL65_______________________________________Ausgabebereich
CAWLK ___DC_________A(CCWLK-A)
CCWLK ___CCW _______ X'0A',EBER-A,X'20',80
___________DS________ CL4000_______________________________Reserve für OS0-Erweiterung
___________END_______ OS0GEN
>> MARKE
>> START