START:



>> MARKE



Praktikums-Betriebssystem OS0


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



MARKE:



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



>> Homepage-Beginn