Looking at some of my older posts about z/Architecture, I decided to post a
sample console session (including some annotations) with the latest version of
the code with some work-in-progress patches that I haven't touched in a while.
Every OS needs a nice banner, right?
HH HH VV VV FFFFFFFFFFFF
HH HH VV VV FFFFFFFFFFFF
HH HH VV VV FF
HH HH VV VV FF
HH HH VV VV FF
HHHHHHHHHHHH VV VV FFFFFFF
HHHHHHHHHHHH VV VV FFFFFFF
HH HH VV VV FF
HH HH VV VV FF
HH HH VV VV FF
HH HH VVVV FF
HH HH VV FF
HVF VERSION v0.15-rc4-7-g62eac50
NOW 06:38:44 UTC 2009-04-15
LOGON AT 06:38:45 UTC 2009-04-15
IPL command isn't completely done, so for the time being, It has the device
number hardcoded in.
ipl
WARNING: IPL command is work-in-progress
GUEST IPL HELPER LOADED; ENTERED STOPPED STATE
You can see the device number in R2, the SSCH in R1, and the base address in
R12.
d g
GR 0 = 0000000000000000 0000000000010005
GR 2 = 0000000000000a00 0000000000000000
GR 4 = 0000000000000000 0000000000000000
GR 6 = 0000000000000000 0000000000000000
GR 8 = 0000000000000000 0000000000000000
GR 10 = 0000000000000000 0000000000000000
GR 12 = 0000000001000000 0000000000000000
GR 14 = 0000000000000000 0000000000000000
Execution will begin at 16MB, that's where the loader gets copied.
d psw
PSW = 00080000 81000000 00000000 00000000
The first few instruction of the loader...as disassembled by the built in
disassembler.
d s i1000000.20
R0000000001000000 B234C090 STSCH 144(R12)
R0000000001000004 4770C040 BC 7,64(R0,R12)
R0000000001000008 9680C095 OI 149(R12),128
R000000000100000C B232C090 MSCH 144(R12)
R0000000001000010 4770C040 BC 7,64(R0,R12)
R0000000001000014 D2070078C060 MVC 120(8,R0),96(R12)
R000000000100001A 5830007C L R3,124(R0,R0)
R000000000100001E 4133C03C LA R3,60(R3,R12)
There are real devices. Since this run was under Hercules, these were all
defined in the hvf.cnf.
q real
CPU RUNNING
STORAGE = 128M
CONS 0009 3215 SCH = 10000
RDR 000C 3505 SCH = 10001
PUN 000D 3525 SCH = 10002
PRT 000E 1403 SCH = 10003
GRAF 0040 3278 SCH = 10004
GRAF 0041 3278 SCH = 10005
TAPE 0580 3590 SCH = 10006
And there are virtual devices (including their subchannel information blocks).
q virtual
CPU STOPPED
STORAGE = 17M
CONS 0009 3215 ON CONS 0009 SCH = 10000
RDR 000C 3505 SCH = 10001
PUN 000D 3525 SCH = 10002
PRT 000E 1403 SCH = 10003
DASD 0191 3390 0 CYL ON DASD 0000 SCH = 10004
d schib all
SCHIB DEV INT-PARM ISC FLG LP PNO LPU PI MBI PO PA CHPID0-3 CHPID4-7
10000 0009 00000000 0 01 80 00 00 80 ---- FF 80 00000000 00000000
10001 000C 00000000 0 01 80 00 00 80 ---- FF 80 00000000 00000000
10002 000D 00000000 0 01 80 00 00 80 ---- FF 80 00000000 00000000
10003 000E 00000000 0 01 80 00 00 80 ---- FF 80 00000000 00000000
10004 0191 00000000 0 01 80 00 00 80 ---- FF 80 00000000 00000000
Let 'er rip! Well, it gets past SSCH (well, kind of) and then it stopped when
it didn't know what to do with a DIAG.
be
INTRCPT: INST (b234 c0900000)
STSCH handler (raw:0000b234c0900000 addr:0000000001000090 sch:10005)
INTRCPT: INST (8300 00010000)
Unknown/mis-handled intercept code 04, err = -4
Ah, condition code 3, that's why the loader gave up with DIAG, instead of
attempting MSCH.
d psw
PSW = 00083000 81000048 00000000 00000000
d s i1000040.10
R0000000001000040 980FC0C4 LM R0,R15,196(R12)
R0000000001000044 83000001 DIAG X'000001'
R0000000001000048 980FC0C4 LM R0,R15,196(R12)
R000000000100004C 83000000 DIAG X'000000'
What version is this anyway? Is it 6:45 already?!
q cplevel
HVF version v0.15-rc4-7-g62eac50
IPL at 06:38:44 UTC 2009-04-15
q time
TIME IS 06:45:26 UTC 2009-04-15
P.S. I just realized that the post id for this post is 360. How apt! :)