Differences between revisions 58 and 59
Revision 58 as of 2025-09-09 16:28:31
Size: 40238
Editor: asbesto
Comment:
Revision 59 as of 2025-09-09 16:58:29
Size: 40290
Editor: asbesto
Comment:
Deletions are marked like this. Additions are marked like this.
Line 391: Line 391:
== DECNET BRIDGE == == OLD DECNET BRIDGE NOTES NOT TO BE CONSIDERED ==

THIS IS OBSOLETE

Appunti VAX VMS

LAST CONFIG BY KATOLAZ

vax-bridge-doc_20250901.tar.gz

This document is a minimal howto to setup/use vax emulators (opensimh)
under openbsd, allowing TCP/IP and DECNET networking.

This is not a complete guide. You are expected to use your brain after
having read these minimal instructions.

If in doubt, just ask.

KatolaZ


BUILD OPENSIMH
==============

mkdir src
git clone https://github.com/open-simh/simh.git src/opensimh
cd src/opensimh
mkdir BIN
gmake BIN/vax
cp BIN/*vax* ~/bin (or whatever)


BUILD DECNET BRIDGE
===================

cd ~/src
tar -zxf pkg/decnet-bridge_0.10-2.tar.gz
cd decnet_bridge
### only needed on versions <= 0.10-3: patch < 0001_timeval.patch
gmake

CREATE NETWORK DEVICES
======================

for snorry tap0
        # ifconfig tap0 up 
for glorry tap1
        # ifconfig tap1 up

for TCP/IP routing: 
        # ifconfig vether0 10.69.1.1 255.0.0.0

ethernet bridge:
        # ifconfig bridge0 create 
        # ifconfig bridge0 add tap0 add tap1 add vether0 add vio0
(replace vio0 above with the correct egress interface)

The configs above should be made permanent by adding the corresponding 
/etc/hostname.intrf files. 

CONFIGURE PF
============

Example of pf rules for basic networking:

    snorry = 10.20.1.70
    glorry = 10.20.1.71
    
    ### allow vax hosts to get on the internet
    match out on egress from 10.0.0.0/8 to any nat-to egress
    
    ### port-map telnet to the corresponding VAX host
    
    pass in on egress proto tcp from any to any port 17123 rdr-to $glorry port 23
    pass in on egress proto tcp from any to any port 17023 rdr-to $snorry port 23


The config above allows the vaxen hosts to get on the internet, and 
forwards some telnet ports to the corresponding host. Adapt to your
pf config as needed. Your firewall is your business, not mine.

RECOMPILE THE OPENBSD KERNEL
============================

TL;DR:

Recompile the kernel with

    option HZ=1000

install the new kernel, reboot, and check that you see something like:

# sysctl | grep kern.clockrate
kern.clockrate=tick = 1000, hz = 1000, profhz = 10000, stathz = 1000

i.e., that tick is 1000 and hz is 1000.

A longer explanation follows.

OpenSimh (and simh) has issues with all those hosts where the minimum
sleep is much longer than the precision of the system clock. The main
issue here is that simh needs to sleep for a number of ms when the
simulated cpu is an "idle" state.  The problem here is that a process
can only be awaken from a sleep during the kernel shedule loop of the
host OS. So for instance, if simh decides that it can sleep for 3ms, it
calls the corresponding syscall to sleep, and the kernel will awake the
simh process in the shedule loop FOLLOWING the expiration of the sleep
time.  If the kernel option HZ is set to 100, the scheduler loop runs at
a frequency of 100Hz (eectively, every 10ms). For reasons that are not
entirely clear to me at this point, the minimum duration of a sleep is
instead 20ms. This means that, if simh decides to sleep for 3ms, it will
in general sleep for at least 20ms before the kernel shedules the
process for execution again. As a consequence, the simulator loses track
of time: when it is back, it is convinced that 3ms have elasped, but in
reality 20ms have passed. There is a procedure to take into account
*MINOR* differences in this time-keeping algorithm, but if the
difference between the clock resolution and the minimum sleep time is
too large, the algorithm explodes, and the guest starts lacking behind.
The obvious consequence is that the guest will see time passing more
slowly than the host.

A simple solution to this issue is to make sure that the kernel
sheduling loop runs at a higher frequency than the guest scheduling
loop. This happens automagically in Linux and other platforms, as in
Linux HZ is set by default to 1000, since a certain subversion of kernel
2.6. In most BSDs this is not the case, as the default is stil to run
with HZ=100.

hence, we decided to run the OpenBSD kernel with HZ=1000. This is
achieved by adding

option HZ=1000

in the kernel config file (GENERIC or GENERIC.MP), recompiling and
installing the new kernel, and rebooting.


START decnet-bridge
===================

There is an OpenBSD rc.d service file under rc.d/decnet_bridge. You
should put it under /etc/rc.d/, assing proper permissions, and probably
add it to pkg_flags in /etc/rc.conf.local. This is your call, not mine.

The server should be started with the flags "-r 300 -d". These are the
default in the rc.d script. The server will do it's init stuff and then
will drop provileges and log to /var/log/decnet-bridge.log (the log is
pretty useless atm).

Debugging is available through the "-g" argument, which obviously (!)
does not work if the -d (daemon) flag is enabled.

THE VIRVAX ACCOUNT
==================

The emulators run under the account virvax@bridge.freaknet.org. The user
virvax is chrooted into a minimal environment, which contains the
necessary stuff to run and monitor the emulators.

The chrooting is managed directly through sshd_condfig, using an
appropriate Match User block. The access to the virvax user is
restricted to a few trusted users.

Upon login, just run:

        $ tmux att

and you will join the tmux session where the two simulators run.

BEWARE: CTRL+E STOPS SIMH IMMEDIATELY - THIS IS THE SAME AS PLUGGING THE
CORD FROM THE MAINS - DON'T DO THAT UNLESS YOU ARE.... WELL, JUST DON'T
DO THAT, OK?

VAXEN IMAGES
============

The system images and the opensimh startup scripts are in the folder
~/img of the virvax home directory. The emulator is lauched from within
~/img/.

N.B.: Each machine now has IT'S OWN nvram.bin FILE.


START THE VAXEN
===============

The script `start_vaxen` tries to start both machines into a tmux
session.  If any of the two emulators is up already, the script does
nothing. If that happens, you have a problem, and you should fix it
before starting the simulator again.

Restarting stuff without knowing why it stopped in the first place is
useless, and stupid, and something that not even an amoeba would do.
Yes, I know systemd does that all the time, but there are programmers
and so-called system administrators whose intellectual ability is, in
fact, much lower than that of an amoeba. Most of the systemd developers,
and many of the self-professed "modern Unix system administrators" fall
into that class. Do not add yourself to that lot.

decnet_bridge.conf

!
! This is the DECnet Bridge configuration file.
!
! Comments start with '!'. Empty lines are ignored.
!
! The bridge section defines all nodes that act as bridges,
! and to which we are connected.
!
! Packets will not be accepted from other sources than these, and
! these destinations are used in the different options further down.
!
[bridge]
!<handle> <ip>:<port> or
!<handle> <local interface>
!
local        vether0
ipv7net      athena.ipv7.net:4711
moriarty     151.3.6.130:4711
mancausoft   casa.mancausoft.org:4711
!osprey      patata.homeip.net:4711
!hkz         belzebub.servebeer.com:4711
!poetry      poetry.homelinux.org:4711
!omonimo     frinfrin.homelinux.org:4711
!sandrokan   wopr.sandrokan.it:4711
!sand        piger.spatof.org:4711
!pcod        80.67.116.45:4711
hobbit       decnet.bizzi.org:4711
!xent         81.174.56.23:4711
ss4          ss4net.duckdns.org:4711
ventresca    casa.bizzi.org:4711


!
! The DECnet section specifies which bridges to send DECnet packets
! that appear on the local ethernet(s).
!
[decnet]
!<handle>
!
local
ipv7net
moriarty
mancausoft
!osprey
!hkz
!poetry
!omonimo
!sandrokan
!sand
!pcod
hobbit
ss4
!xent
ventresca

!
! The LAN section specifies which bridges to send LAT, MOP and/or
! InfoServer packets that appear on the local ethernet(s).
!
[lan]
local
ipv7net
moriarty
mancausoft
!poetry
hobbit
!xent
ss4
ventresca

!
! The forward section specifies which bridges are to receive data
! sent to this bridge from other ones (and back). If specified
! for local ethernets it is used to "join" them.
!
[forward]
!<handle>
!

!
! The passive section specifies which bridges are to receive data
! only while they are sending something to us first
!
[passive]
!<handle>
!

!
! The anyport section specifies from which bridges we accept data even
! if their UDP source port isn't the one we espect and to which we send
!
[anyport]
!<handle>
!ipv7net
!moriarty
!hobbit
!

start-vaxen.sh

snorry=$(ps ax | grep -Ei "vax snorry.ini" | grep -v "grep" | wc -l)
glorry=$(ps ax | grep -Ei "vax glorry.ini" | grep -v "grep" | wc -l)

vaxen=""

[ $snorry -gt 0 ] && vaxen="SNORRY "
[ $glorry -gt 0 ] && vaxen="GLORRY ${vaxen}"


if [ "x$vaxen" != "x" ]; then
        printf "%s is up - Please check and start it manually\n" $vaxen
        exit 1
fi


tmux    new-session -c ~/img -n GLORRY '/usr/bin/vax glorry.ini' \; \
        new-window -n SNORRY '/usr/bin/vax snorry.ini '

/etc/rc.d/decnet-bridge

daemon="/usr/local/sbin/decnet-bridge"
daemon_flags="-r 300 -d"

. /etc/rc.d/rc.subr

pexp="${daemon} .*"

rc_cmd $1

Elenco licenze UTILI by Gerry

Licenza     Prodotto
----------  ----------------------------------
VAX-VMS     Sistema operativo

VAXCLUSTER  Clustering
VMSCLUSTER  Idem per Alpha (?)
VOLSHAD     Volume shadowing (mirror software)

DVNETRTG    DECnet con routing
UCX         TCP/IP

FTSV        File Transfer Spooler (freeware)

BASIC       Compilatore e interprete Basic
BLISS32     Compilatore BLISS (freeware)
C           Compilatore C (anche C++?)
COBOL       Compilatore COBOL
DIBOL       Compilatore DIBOL
FORTRAN     Compilatore FORTRAN (anche F90?)
PASCAL      Compilatore Pascal
SCAN        Compilatore Scan (freeware?)

QUALE simh

last version from git!

apt install git gcc make libpcap-dev libsdl2-dev
git clone https://github.com/simh/simh.git
cd simh
make vax

make quel che ti serve ovviamente

OLD DECNET BRIDGE NOTES NOT TO BE CONSIDERED

THIS IS OBSOLETE

deve stare su una macchina DIVERSA da dove gira il simh. gli serve una eth tutta sua non condivisa col vax emulato.

Sta su corazzini, bella li'

decnet-bridge_0.9-3.tar.gz

Password reset di un sistema

by Zappolo

avviare simh
./vax
sim> boot
al prompt >>>
dare i seguenti comandi

B /R5:1 DUA0
SET/STARTUP OPA0:
SET WINDOW_SYSTEM 0
SET WRITESYSPARAMS 0
CONTINUE

SPAWN
@SYS$SYSTEM:STARTUP
SET DEFAULT SYS$SYSTEM:
RUN SYS$SYSTEM:AUTHORIZE
MODIFY SYSTEM /PASSWORD=newpassword

problemi di SNORRY

L'immagine DD ha delle inconsistenze.

Confrontata con l'immagine storica del disco fisico, ho trovato dove questa FINISCE all'interno del dump della scheda da 2GB del disco emulato. Dopo di esso ci sono solo ZERI e poi merda linux rimasta dentro la scheda...

Quindi ho fatto

  dd if=snorry.img of=fisico.img bs=512 count=2070235

e l'ho fatto partire in emulazione su wopr. da li' ho dato ana/disk

Asbesto Molesto, [30.01.20 12:00]
SNORRY::SYSTEM$ ana / disk dua0:
Analyze/Disk_Structure for _SNORRY$DUA0: started on 30-JAN-2020 12:00:08.09

%ANALDISK-W-CHKSCB, invalid storage control block, RVN 1
SNORRY::SYSTEM$

Asbesto Molesto, [30.01.20 12:02]
Disk SNORRY$DUA0:, device type RA92, is online, mounted, file-oriented device,
    shareable, available to cluster, error logging is enabled.

    Error count                    0    Operations completed               5430
    Owner process                 ""    Owner UIC                      [SYSTEM]
    Owner process ID        00000000    Dev Prot            S:RWPL,O:RWPL,G:R,W
    Reference count               91    Default buffer size                 512
    Total blocks             2070235    Sectors per track                    73
    Total cylinders             2182    Tracks per cylinder                  13

    Volume label         "SNORRYSYS"    Relative volume number                0
    Cluster size                   9    Transaction count                   189
    Free blocks              1233315    Maximum files allowed            103511
    Extend quantity                5    Mount count                           1
    Mount status              System    Cache name      "_SNORRY$DUA0:XQPCACHE"
    Extent cache size             64    Maximum blocks in extent cache   123331
    File ID cache size            64    Blocks currently in extent cache      0
    Quota cache size             240    Maximum buffers in FCP cache        548
    Volume owner UIC           [1,1]    Vol Prot    S:RWCD,O:RWCD,G:RWCD,W:RWCD

  Volume Status:  ODS-2, subject to mount verification, protected subsystems
      enabled, file high-water marking, write-through caching enabled.

Asbesto Molesto, [30.01.20 12:05]
immagine da 2GB:

Asbesto Molesto, [30.01.20 12:05]
SNORRY::SYSTEM$ ana /disk dua0:
Analyze/Disk_Structure for _SNORRY$DUA0: started on 30-JAN-2020 12:05:27.66

%ANALDISK-I-SHORTBITMAP, storage bitmap on RVN 1 does not cover the entire devic
e
SNORRY::SYSTEM$

Asbesto Molesto, [30.01.20 12:05]
Disk SNORRY$DUA0:, device type RA92, is online, mounted, file-oriented device,
    shareable, available to cluster, error logging is enabled.

    Error count                    0    Operations completed               5418
    Owner process                 ""    Owner UIC                      [SYSTEM]
    Owner process ID        00000000    Dev Prot            S:RWPL,O:RWPL,G:R,W
    Reference count               91    Default buffer size                 512
    Total blocks             3887112    Sectors per track                    73
    Total cylinders             4097    Tracks per cylinder                  13

    Volume label         "SNORRYSYS"    Relative volume number                0
    Cluster size                   9    Transaction count                   189
    Free blocks              1233315    Maximum files allowed            103511
    Extend quantity                5    Mount count                           1
    Mount status              System    Cache name      "_SNORRY$DUA0:XQPCACHE"
    Extent cache size             64    Maximum blocks in extent cache   123331
    File ID cache size            64    Blocks currently in extent cache      0
    Quota cache size             240    Maximum buffers in FCP cache        548
    Volume owner UIC           [1,1]    Vol Prot    S:RWCD,O:RWCD,G:RWCD,W:RWCD

  Volume Status:  ODS-2, subject to mount verification, protected subsystems
      enabled, file high-water marking, write-through caching enabled.

SNORRY::SYSTEM$

Asbesto Molesto, [30.01.20 12:06]
immagine di snorry trimmata alla dimensione fisica:

Asbesto Molesto, [30.01.20 12:06]
Default buffer size                 512
    Total blocks             2070235    Sectors per track                    73
    Total cylinders             2182    Tracks per cylinder                  13

Asbesto Molesto, [30.01.20 12:06]
immagine di snorry 2GB:

Asbesto Molesto, [30.01.20 12:06]
Default buffer size                 512
    Total blocks             3887112    Sectors per track                    73
    Total cylinders             4097    Tracks per cylinder                  13

Asbesto Molesto, [30.01.20 12:07]
non e' che il FS e' stato espanso

Asbesto Molesto, [30.01.20 12:07]
e' che vede il device per quanto e' grosso

Asbesto Molesto, [30.01.20 12:07]
@gerriunderscore @Mancausoft

Asbesto Molesto, [30.01.20 12:07]
e l'errore di ana/disk e' DIVERSO tra i due

Asbesto Molesto, [30.01.20 12:07]
l'immagine precisa del disco trimmata giusta dice

Asbesto Molesto, [30.01.20 12:07]
%ANALDISK-W-CHKSCB, invalid storage control block, RVN 1
SNORRY::SYSTEM$

Asbesto Molesto, [30.01.20 12:08]
mentre l'immagine disco da 2GB dice

Asbesto Molesto, [30.01.20 12:08]
%ANALDISK-I-SHORTBITMAP, storage bitmap on RVN 1 does not cover the entire devic
e
SNORRY::SYSTEM$

Asbesto Molesto, [30.01.20 12:08]
che e' ben diverso

un ana/disk/repair ripara il fs trimmato correttamente...

Un successivo BACKUP /IMAGE ha copiato ogni file senza problemi

ho creato altri 2 devices

dua0 boot, dua1 copia di boot trimmata e ana/disk/repair-ata, dua2 idem

ho formattato dua2, initialize

l'ho montata FOREIGN

e ho dato backup /image da dua2 a dua3

SNORRY::SYSTEM$ mount /foreign dua2:
%MOUNT-I-MOUNTED, SNORRYNEW mounted on _SNORRY$DUA2:
SNORRY::SYSTEM$ backup /image dua1: dua2:
%BACKUP-I-NOBACKUP, DUA1:[SYS0.SYSEXE]ERRORLOG.DMP;1 data not copied, file marke
d NOBACKUP
%BACKUP-I-NOBACKUP, DUA1:[SYS0.SYSEXE]PAGEFILE.SYS;1 data not copied, file marke
d NOBACKUP
%BACKUP-I-NOBACKUP, DUA1:[SYS0.SYSEXE]SWAPFILE.SYS;1 data not copied, file marke
d NOBACKUP
%BACKUP-I-NOBACKUP, DUA1:[SYS0.SYSEXE]SYSDUMP.DMP;1 data not copied, file marked
 NOBACKUP

ha copiato tutto

pero' dua3 da:

Asbesto Molesto, [30.01.20 13:59]
il disco backuppato da' cio':

Asbesto Molesto, [30.01.20 13:59]
SNORRY::SYSTEM$ ana /disk
_Device: dua0:
Analyze/Disk_Structure for _SNORRY$DUA0: started on 30-JAN-2020 13:58:44.96

%ANALDISK-W-CHKSCB, invalid storage control block, RVN 1
%ANALDISK-I-BADHIGHWATER, file (1423,2,1) ERRORLOG.DMP;1
  inconsistent highwater mark and EFBLK
%ANALDISK-W-ALLOCCLR, blocks incorrectly marked allocated
  LBN 1126638 to 1126646, RVN 1
%ANALDISK-W-INCQUOTA, QUOTA.SYS indicates 627067 blocks used,
  actual use is 627057 blocks for [SYSTEM]
%ANALDISK-W-FREESPADRIFT, free block count of 1232973 is incorrect (RVN 1);
  the correct value is 1232982
SNORRY::SYSTEM$

Alla fine, secondo me:

Asbesto Molesto, [30.01.20 12:37]
allora. 2GB.

Asbesto Molesto, [30.01.20 12:37]
la mia ipotesi e':

Asbesto Molesto, [30.01.20 12:37]
il sistema ha girato con l'immagine da 2GB, e tempo fa fu pure fatto un ana/disk/repair, me lo ricordo

Asbesto Molesto, [30.01.20 12:37]
quindi ha CAPITO che il disco e' da 2GB

Mancausoft, [30.01.20 12:37]
si esatto

Asbesto Molesto, [30.01.20 12:37]
MA il fs e' rimasto da 1.05 gb (rvn invalid storage block)

Katolaz, [30.01.20 12:37]
710 messaggi

Mancausoft, [30.01.20 12:37]
[In reply to Asbesto Molesto]
non e' detto

Asbesto Molesto, [30.01.20 12:37]
ora se lo resizi

Asbesto Molesto, [30.01.20 12:37]
si vede il disco ristretto e da' errore

Katolaz, [30.01.20 12:37]
che minchia siete PAZZI?

Mancausoft, [30.01.20 12:37]
[In reply to Asbesto Molesto]
io non ho sto errore

Asbesto Molesto, [30.01.20 12:37]
quindi ti dice quella cosa

Katolaz, [30.01.20 12:37]
che cazzo e' successo?

Katolaz, [30.01.20 12:38]
MORTO MEDIALAB?

Mancausoft, [30.01.20 12:38]
perche' io uso i parametri giusti a simh

Asbesto Molesto, [30.01.20 12:38]
MA se metti il fs alla dimensione fisica del disco

Mancausoft, [30.01.20 12:38]
se metti parametri a cazzo in simh hai quell'errore

Katolaz, [30.01.20 12:38]
CROLLATO IL VATICANO?

Asbesto Molesto, [30.01.20 12:38]
improvvisamente gli coincide tutto tranne RVS 1

Asbesto Molesto, [30.01.20 12:38]
allora, un colpo di ana/disk/rep

Asbesto Molesto, [30.01.20 12:38]
e si sistema

Mancausoft, [30.01.20 12:38]
se metti il parametro giusto a simh non hai quell'errore

Mancausoft, [30.01.20 12:38]
[In reply to Asbesto Molesto]
no

Asbesto Molesto, [30.01.20 12:38]
IMHO si

Asbesto Molesto, [30.01.20 12:38]
zero errori su ana/disk per me e' RISOLUTIVO

edit dei files

intanto usa vmsterm (in fondo a questo doc) per connetterti. usa xterm!

poi,

edit /edt nomefile

all'asterisco, scrivi CHANGE

editi visualmente!

quando hai finito, ctrl-z

torna all'asterisco, scrivi exit, e lui salva.

Se premi "Home" ti apre search! Scrivi il testo da cercare, premi nuovamente home e va sul testo trovato!

NOTA: SU VMSTERM/XTERM, IL CUT'N PASTE DA MOUSE FUNZIONA COL TASTO CENTRALE SUL MIO THINKPAD.

recall dei comandi / history

recall /all

Dove stanno i files

alias cagate e definizioni stanno dentro

SYS$SYSCOMMON:[SYSMGR]SYLOGIN.COM 

cercare:

SNORRY::SYSTEM$ set def [000000]
SNORRY::SYSTEM$ dir [...]games*;*

$ DIR [.mydirectory...]my*file.spec*;*

would find any file beginning with MY followed by any sequence, ending
its name with FILE, and with its type specification beginning with
SPEC in MYDIRECTORY and all the tree down inside.

$ DIR $Disk:[user...]myfile.typ;4

would search for 4th version of MYFILE.TYP in all the USER's directory
tree.

$ DIR $Disk:[user.*...]myfile.typ

would look inside all subdirectories AND their subtrees in USER.

        Furthermore, since this feature is one of DIRECTORY SPECIFICATION
and no of DIR, you can use it for any program that allows ambiguous file
specification (e.g.):

$ SEARCH [...]*.*;* MY_SEARCH_SEQUENCE

would search in all the files contained in the directory tree that hangs
from the current directory for "my_search_sequence" and report all the
files that contain it.

Login banner e welcome:

dentro SYS$SYSROOT:[SYSMGR] ci sono ANNOUNCE.TXT e WELCOME.TXT

Snorry: 

stanno in dua0:[games]

dua0:[GAMES.STARTREK]STARTREK.EXE

startrek.com deve avere i path giusti all'interno (dua0: nell'emulatore)


Glorry:

dua0:[games]

molti eseguibili .com puntano a dka200: che era di glorry, va settato a dua0: 

vax.ini dell'emulatore simh glorry

set log ./glorry.log
load -r ./ka655.bin
attach nvr ./nvram.bin

set cpu 64m
set cpu idle
set rq0 ra92
attach rq0 ./glorry.img

; disable unused stuff
; rl01/02
set rl disable
; magtape
set ts disable
; floppy lo abilito
set ry disable

; deqna is faster!
SET XQ TYPE=DEQNA
set xq mac=08-00-2B-0C-AC-CA
attach xq eth2

; create a tape device, you never know
set tq enable
set tq tk70
att tq0 mua0.tape

; se attivi questo, perdi lo schermo qua sotto screen
; set console telnet=17100

set cpu conhalt
dep bdr 0
boot cpu
exit

you need the correct ka655.bin or ka655xbin or whatever the hell your fucking simh version need, to avoid a lot of diag / boot errors!

call it "vax.ini" in the same dir of the disk image,

launch vax from root user

With the above setup, vax will boot automagically. If you need to tweak and boot manually, simply write

boot dua0:

at the simh prompt.

ET VOILA', AVEC LA MERDE

ethernet holocaust

vax.ini ha settato "eth0". su corazzini parte da eth3 PERCHE' UDEV MERDA PORCODIO.

ma eth0 viene visto su eth3, che ha l'ip di corazzini.

ora se tiri su anche eth4 ed eth5, puoi avere altri vax.ini su eth1 ed eth2.

HAI CAPITO PORCODIO?

problemino con mmm.exe

Sto gioco ha bisogno di una patch:

> suspend



ENTER FILENAME TO STORE IT UNDER (0 TO ABORT REQUEST)



?a.sav



YOUR CURRENT SITUATION IS SAVED AND WILL BE GOOD FOR ANY REVISION 16

YOU CAN NOW QUIT OR CONTINUE. ENTER RESTORE, AT ANY TIME, TO LOAD THE

SITUATION YOU SUSPENDED



WHEN YOU ARE FINISHED, PURGE THE FILE.

           

> restore



ENTER FILENAME IT WAS SUSPENDED UNDER (0 TO ABORT REQUEST)



?a.sav

%FOR-F-INPSTAREQ, input statement requires too much data

  unit 55  file SYS_USERS:[LUTHER]A.SAV;1

  user PC 0002278B


SNORRY::LUTHER$ 


Non e' grave, visto che il gioco al massimo dura 450 mosse,
ma e' una cosa abbastanza antipatica.

Si aggiusta facilmente cambiando un byte con patch:
$ patch mmm.exe
PATCH>depo/long
LOC>0002278B
NEW>5901043D
NEW>exit
old:    0002278B:  5901283D
new:    0002278B:  5901043D
PATCH>update
%PATCH-I-WRTFIL, updantig image file DUA1:[GIASSI]MMM.EXE;2
Non mi ricordo di aver avuto questo problema quando ci ho giocato 
30 e passa anni fa, ma e' possibile che non sapessi nemmeno 
che il comando per salvare fosse 'suspend'.

da una mail di Sandro Giassi

Creare utenti by Gerry

N.B. Tutto questo funziona a patto che l'utente DEFAULT non abbia subito modifiche "strane" e che SYS_USERS sia un nome logico valido

In AUTHORIZE

Cercare il primo UIC (ottale!) libero con

SHOW [200,*]/BRIEF

poi

ADD <utente>/PASSWORD=<qualcosa>/OWNER="Nome Utente"/ACCOUNT=USERS/UIC=[200,<qualcosa>]/DEVICE=SYS_USERS/DIRECTORY=[<utente>]/NOPWDLIFETIME/FLAG=NODISUSER

ADD/PROXY *::<utente> <utente>/DEFAULT

In DISKQUOTA (se le quote sono attive, cfr. QUOTA.SYS)

Uno solo dei seguenti in base alle esigenze:

ADD [<utente>] (così aggiunge con i default presi da [0,0])

ADD [<utente>]/PERMQUOTA=<qualcosa>/OVERDRAFT=<qualcosa> (se si omette uno dei due qualificatori, per quel valore prende i default da [0,0])

Al prompt (dopo aver creato l'utente)

CREATE/DIRECTORY SYS_USERS:[<utente>]/OWNER=[<utente>]

Licenze vax/vms

ATTENZIONE

Il file delle licenze che ti mandano oggi e' pieno di CR / LF ad minchiam. VA CONVERTITO CON dos2unix prima di caricarlo sul vax altrimenti da' un mare di errori.

IMPORTANTE NON FARLE SCADERE ALTRIMENTI I CAZZI IN CULO SI MOLTIPLICANO A DISMISURA

sucati le licenze da decus usa, anzi no, da montagar.com, anzi no, da encompass, anzi no! da https://www.hpe.com/h41268/live/index_e.aspx?qid=24548 , anzi no! da STOCAZZO, FANCULO LE LICENZE, W LA PIRATERIA PORCODDIO

usa i numeri decus:

<suco> guarda e' qui
<asbesto> asbesto@gemini:~/licenzevms$ ls
<asbesto> cazzo  glorry  glorry~  howto  snorry  snorry~
<asbesto> asbesto@gemini:~/licenzevms$
<suco>  /AUTHORIZATION=DECUS-USA-904422-1257142 -
<asbesto> perfetto, allora ce l'ho
<suco> 904422
<suco> e' il mio id
<asbesto> snorry:/AUTHORIZATION=DECUS-USA-908286-1224202 -
<asbesto> bene
<suco> quello al momento e' l'unica cosa che ti serve per generare le licenze

se le licenze sono gia' scadute devi caricare come prima cosa UCX, che e' il tcpip.

Gerardo Cacciari, [23.03.19 12:47]
dicevo: il db delle licenze è l'unico file *.ldb in sys$system
e dicevo anche che però in caso di cluster bisogna stare piu attenti a quel che si fa
ma visto che questo non è un cluster basta cancellare fisicamente quel file

GLORRY::SYSTEM$ dir sys$system:*.ldb.*

Directory SYS$COMMON:[SYSEXE]

LMF$LICENSE.LDB;1

Total of 1 file.
GLORRY::SYSTEM$

GLORRY::SYSTEM$ del/conf sys$system:LMF$LICENSE.LDB;1
DELETE SYS$COMMON:[SYSEXE]LMF$LICENSE.LDB;1 ? [N]: y
GLORRY::SYSTEM$



ora creare database nuovo: dare semplicemente

LIC CRE

Gerardo Cacciari, [23.03.19 13:00]
ora carichi le licenze che ti servono, quelle fondamentali
vms tcp e decnet
rispettivamente

vax-vms ucx dvnetend


creo un fiile con dentro ste 3 licenze, copy/paste in un .com:

Gerardo Cacciari, [23.03.19 13:07]
non importava il resto, i vari enable e disable
l'importante sono i license register
il resto non serve a niente e fa solo casino
tanto non hai licenze caricate e non hai licenze nel db (dato che è nuovo)

quindi solo le tre parti LICENSE REGISTER

crea peto.com
(copy/paste)
CTRL-Z

dopodiche' lancio

@peto

poi LIC LOAD

e le carica tutte

con SH LIC vedi le licenze caricate.

eventualmente (glorry) vedi anche licenze infinite che sono rimaste in memoria ma non stanno piu' nel DB che e' stato cancellato prima.

se ora riavvio, vien su con quelle licenze caricate :)

ma carichiamo le 4 licenze infinite di glorry:

GLORRY::SYSTEM$ set def dua0:[data.lic]
GLORRY::SYSTEM$ dir

Directory DUA0:[DATA.LIC]

BLISS_PAK.COM;1     DIBOL_PAK.COM;1     FTSV_PAK.COM;1      SCAN_PAK.COM;1
VMS_PAKS_END_20110719.BCK;1             VMS_PAKS_END_20140124.COM;1
VMS_PAKS_END_20160513.COM;1             VMS_PAKS_END_20170714.COM;1

Total of 8 files.
GLORRY::SYSTEM$

quindi eseguo @bliss_pak etc. etc. 


e poi RIAVVIARE!!!

al riavvio puoi settare il TCPIP. 


POI carichi il file delle licenze, infine, con ftp, su una tua utenza, ci vai e lo lanci

Gerardo Cacciari, [23.03.19 15:00]
SNORRY::RPT$ sho log users
   "USERS" = "SYS_DISK:[USERS]" (LNM$SYSTEM_TABLE)
SNORRY::RPT$ sho log sys_users
   "SYS_USERS" = "SNORRY$DKA0:[USERS.]" (LNM$SYSTEM_TABLE)
SNORRY::RPT$

Gerardo Cacciari, [23.03.19 15:00]
Uno è rooted e l'altro no

ergo

set def sys_users
set def [asbesto]

@filedelcazzo

e attendi

SE hai rete / ti sei ricordato prima della scadenza:

crea un file con le licenze base e layered insieme, ascii

entra nel vax da system

sucati con ftp IN ASCII il file delle licenze

rinominalo .com

poi:

lic dis *
lic del *
@nomedelfile.com
lic load
lic ena *

fine!

Configurazione tcpip

lancia @sys$manager:tcpip$config

va solo cambiata l'interfaccia, per glorry, poiche' ha gia' i settings. ora e' su emu ed e' differente

poi va eliminata la vecchia interfaccia di glorry, che pare essere ze0

vedi tutto da "tcpip", "sh int" "sh con int"

ergo

set conf nointerf ze0

exit o ctrl-z e tcpip e' a posto!

riavviare tcpip per vedere se ci sono errori strani lo fai dal menu di @sys$manager:tcpip$config

POI va fatto questo:

$! RPT 23-MAR-2019
$
$  ON ERROR THEN GOTO END_LOOP
$  ON CONTROL_Y THEN GOTO END_LOOP
$
$  IF F$SEARCH("POST_DECNET_SETUP.TMP;*") .NES. "" THEN -
      DELETE/NOLOG POST_DECNET_SETUP.TMP;*
$
$  MCR NCP SHOW KNOWN LINES TO POST_DECNET_SETUP.TMP
$  OPEN/READ LINE_LIST POST_DECNET_SETUP.TMP
$
$LOOP:
$  READ/END=END_LOOP LINE_LIST LINE_ENTRY
$
$  LINE_ITEM = F$EDIT(LINE_ENTRY,"TRIM,COMPRESS")
$  LINE_ITEM = F$ELEMENT(0," ",LINE_ITEM)
$
$   IF (LINE_ITEM .EQS. "") .OR. -
       (LINE_ITEM .EQS. "Known") .OR. -
       (LINE_ITEM .EQS. "Line") THEN GOTO LOOP
$
$  WRITE SYS$OUTPUT "Line/Circuit ",LINE_ITEM
$
$  MCR NCP SET    CIRCUIT 'LINE_ITEM' STATE OFF
$  MCR NCP SET    LINE    'LINE_ITEM' STATE OFF
$
$  MCR NCP SET    LINE    'LINE_ITEM' BUFFER SIZE 1456
$  MCR NCP DEFINE LINE    'LINE_ITEM' BUFFER SIZE 1456
$  MCR NCP SET    CIRCUIT 'LINE_ITEM' HELLO TIMER 90
$  MCR NCP DEFINE CIRCUIT 'LINE_ITEM' HELLO TIMER 90
$
$  MCR NCP SET    LINE    'LINE_ITEM' STATE ON
$  MCR NCP SET    CIRCUIT 'LINE_ITEM' STATE ON
$
$  GOTO LOOP
$
$END_LOOP:
$  CLOSE LINE_LIST
$  IF F$SEARCH("POST_DECNET_SETUP.TMP;*") .NES. "" THEN -
      DELETE/NOLOG POST_DECNET_SETUP.TMP;*
$
$  EXIT

ora, DECNET E BRIDGE SEMENTALE

Problemi al disco

anal /disk

ana/disk/repair

porcoddio

decnet settings

$! RPT 23-MAR-2019
$
$  ON ERROR THEN GOTO END_LOOP
$  ON CONTROL_Y THEN GOTO END_LOOP
$
$  DEFINE/USER SYS$OUTPUT NL:
$  DEFINE/USER SYS$ERROR NL:
$  DELETE/NOLOG POST_DECNET_SETUP.TMP;*
$
$  MCR NCP SHOW KNOWN LINES TO POST_DECNET_SETUP.TMP
$  OPEN/READ LINE_LIST POST_DECNET_SETUP.TMP
$
$LOOP:
$  READ/END=END_LOOP LINE_LIST LINE_ENTRY
$
$  LINE_ITEM = F$EDIT(LINE_ENTRY,"TRIM,COMPRESS")
$  LINE_ITEM = F$ELEMENT(0," ",LINE_ITEM)
$
$   IF (LINE_ITEM .EQS. "") .OR. -
       (LINE_ITEM .EQS. "Known") .OR. -
       (LINE_ITEM .EQS. "Line") THEN GOTO LOOP
$
$  MCR NCP SET    CIRCUIT 'LINE_ITEM' STATE OFF
$  MCR NCP SET    LINE    'LINE_ITEM' STATE OFF
$
$  MCR NCP SET    LINE    'LINE_ITEM' BUFFER SIZE 1456
$  MCR NCP DEFINE LINE    'LINE_ITEM' BUFFER SIZE 1456
$  MCR NCP SET    CIRCUIT 'LINE_ITEM' HELLO TIMER 90
$  MCR NCP DEFINE CIRCUIT 'LINE_ITEM' HELLO TIMER 90
$
$  MCR NCP SET LINE       'LINE_ITEM' STATE ON
$  MCR NCP SET CIRCUIT    'LINE_ITEM' STATE ON
$
$  GOTO LOOP
$
$END_LOOP:
$  CLOSE LINE_LIST
$  DELETE/NOLOG POST_DECNET_SETUP.TMP;*
$
$  EXIT

vmsterm

vmsterm

funge bene, usa xterm, permette EDIT da rt11!!!

#               vmsterm
#               from an original script by Bob Ess
#               key translations by Erik Ahlefeldt
#
#               Script file using Xterm and telnet to connect to a VMS host
#               and give a decent vt220 emulation.
#
#               Some adjustment made by asbesto@freaknet.org
#               25-DEC-2014
#
# Usage statement
Usage(){
        echo
        echo " Usage  : vmsterm -options"
        echo
        echo " Options: -80   for 80 column terminal"
        echo "          -132  for 132 column terminal"
        echo "          -bg colorname"
        echo "          -fg colorname"
        echo "          -fn fontname"
        echo "          -fb bold fontname"
        echo "          -host [crusher.saltmine.com] [earth] [192.168.7.7]"
        echo "          -port portnum"
        echo ""
        echo " Example: \"vmsterm -80 -fg white -bg black -fn 9x15 -fb 9x15b -host earth\""
        echo "          Starts a VMS session with an 80 column terminal"
        echo "          with a black background, white foreground, a normal"
        echo "          font of 9x15 and a bold font of 9x15b, and connects"
        echo "          to the node 'earth'"
        echo ""
        echo " Example: \"vmsterm -host earth -port portnum\""
        echo "          Starts a VMS session with default terminal settings "
        echo ""
        echo " Example: \"vmsterm -help\""
        echo "          Displays vmsterm options "
        echo
        exit 1
}
 
# Default to a black foreground with a white background.
# Use the 9x15 and 9x15bold fonts. Connect to 192.168.3.3 by default.
#
FG=black
BG=white
HOST="museo.freaknet.org"
PORT="1134"
FONT=10x20
BFONT=9x15bold
COLS=80
 
# Parse the command line arguments
#
while [ $# != 0 ];
do
        case $1 in
                -80)    COLS=80
                        FONT=spc12x24c
                        BFONT=spc12x24b
                        shift
                        ;;
                -132)   COLS=132
                        FONT=9x15
                        BFONT=9x15b
                        shift
                        ;;
                -fg)    shift
                        FG=$1
                        shift;;
                -bg)    shift
                        BG=$1
                        shift;;
                -fn)    shift
                        FONT=$1
                        shift;;
                -fb)    shift
                        BFONT=$1
                        shift;;
                -host)  shift
                        HOST=$1
                        shift;;
                -port)  shift
                        PORT=$1
                        shift;;
                -help)  Usage;;
                *)      Usage;;
        esac
done

xterm   -title "VMSTERM" -sb -sl 1000 -geo ${COLS}x24 -fg ${FG} -bg ${BG} \
        -cr blue -fn ${FONT} -fb ${BFONT} -xrm \
        'XTerm*VT100.translations: #override \n \
        ~Shift  <Key>F1:        string(0x1b)    string("OP") \n \
        ~Shift  <Key>F2:        string(0x1b)    string("OQ") \n \
        ~Shift  <Key>F3:        string(0x1b)    string("OR") \n \
        ~Shift  <Key>F4:        string(0x1b)    string("OS") \n \
        ~Shift  <Key>F5:        string("Break") \n \
        ~Shift  <Key>F6:        string(0x1b)    string("[17~") \n \
        ~Shift  <Key>F7:        string(0x1b)    string("[18~") \n \
        ~Shift  <Key>F8:        string(0x1b)    string("[19~") \n \
        ~Shift  <Key>F9:        string(0x1b)    string("[20~") \n \
        ~Shift  <Key>F10:       string(0x1b)    string("[21~") \n \
        ~Shift  <Key>F11:       string(0x1b)    string("[23~") \n \
        ~Shift  <Key>F12:       string(0x1b)    string("[24~") \n \
        Shift   <Key>F1:        string(0x1b)    string("[23~") \n \
        Shift   <Key>F2:        string(0x1b)    string("[24~") \n \
        Shift   <Key>F3:        string(0x1b)    string("[25~") \n \
        Shift   <Key>F4:        string(0x1b)    string("[26~") \n \
        Shift   <Key>F5:        string(0x1b)    string("[28~") \n \
        Shift   <Key>F6:        string(0x1b)    string("[29~") \n \
        Shift   <Key>F7:        string(0x1b)    string("[31~") \n \
        Shift   <Key>F8:        string(0x1b)    string("[32~") \n \
        Shift   <Key>F9:        string(0x1b)    string("[33~") \n \
        Shift   <Key>F10:       string(0x1b)    string("[34~") \n \
        Shift   <Key>F11:       string(0x1b)    string("[28~") \n \
        Shift   <Key>F12:       string(0x1b)    string("[29~") \n \
                <Key>Print:     string(0x1b)    string("[28~") \n \
                <Key>Cancel:    string(0x1b)    string("[29~") \n \
                <Key>Pause:     string(0x1b)    string("Om") \n \
                <Key>Insert:    string(0x1b)    string("[2~") \n \
                <Key>Delete:    string(0x1b)    string("[3~") \n \
                <Key>Home:      string(0x1b)    string("[1~") \n \
                <Key>End:               string(0x1b)    string("[4~") \n \
                <Key>Prior:     string(0x1b)    string("[5~") \n \
                <Key>Next:      string(0x1b)    string("[6~") \n \
                <Key>BackSpace: string(0x7f)    \n \
                <Key>Num_Lock:  string(0x1b)    string("OP") \n \
                <Key>KP_Divide: string(0x1b)    string("OQ") \n \
                <Key>KP_Multiply: string(0x1b)  string("OR") \n \
                <Key>KP_Subtract: string(0x1b)  string("OS") \n \
                <Key>KP_Add:    string(0x1b)    string("Ol") \n \
                <Key>KP_Enter:  string(0x1b)    string("OM") \n \
                <Key>KP_Decimal: string(0x1b)   string("On") \n \
                <Key>KP_0:      string(0x1b)    string("Op") \n \
                <Key>KP_1:      string(0x1b)    string("Oq") \n \
                <Key>KP_2:      string(0x1b)    string("Or") \n \
                <Key>KP_3:      string(0x1b)    string("Os") \n \
                <Key>KP_4:      string(0x1b)    string("Ot") \n \
                <Key>KP_5:      string(0x1b)    string("Ou") \n \
                <Key>KP_6:      string(0x1b)    string("Ov") \n \
                <Key>KP_7:      string(0x1b)    string("Ow") \n \
                <Key>KP_8:      string(0x1b)    string("Ox") \n \
                <Key>KP_9:      string(0x1b)    string("Oy") \n \
        ~Shift  <Key>Up:                string(0x1b)    string("[A") \n \
        Shift   <Key>Up:                scroll-back(1,lines) \n \
        ~Shift  <Key>Down:      string(0x1b)    string("[B") \n \
        Shift   <Key>Down:      scroll-forw(1,lines) \n \
                <Key>Right:     string(0x1b)    string("[C") \n \
                <Key>Left:      string(0x1b)    string("[D")' \
         -e telnet $HOST $PORT

Immagine X fatta al CUD

emiliano, [18.07.20 12:34]

Config:

attach nvr nvram.bin

set cpu 128m
set cpu idle=vms

set rq0 ra92
attach rq0 discoX.img

boot cpu

emiliano, [18.07.20 12:34] questo il config, poi però sono in grado di farlo partire solo così:

>>>B/R5:1

e poi

SYSBOOT>  USE DEFAULT

SYSBOOT>  SET STARTUP_P1 "MIN"

SYSBOOT>  CONTINUE

Asbesto Molesto, [18.07.20 12:35] MIN sta ovviamente per MINCHIA.

emiliano, [18.07.20 12:36] naturalmente se vuoi resettare la pw di SYSTEM devi aggiungere a questi comandi la solita procedura

prima di

CONTINUE

SYSBOOT>  SET WINDOW_SYSTEM 0

SYSBOOT>   SET WRITESYSPARAMS 0

SYSBOOT>   SET STARTUP_P1 "MIN"

SYSBOOT>  CONTINUE


CategoryMuseo

VAXAppunti (last edited 2025-09-09 16:58:29 by asbesto)