[Simh] UDA-50 - want to use 'odd byte count'

Andreas Cejna Andreas.Cejna at gnc.at
Wed Aug 1 18:11:47 EDT 2007


Hi Falko,

here's the vax780.ini I use in one of my vaxes:


============ BOF ==========
;
;
;
; This virtual machine has 64M memory
set cpu 64m
set cpu conhalt
set cpu idle
;
; Configure some massbus
;
set rp0 rm03
set rp1 rm05
set rp2 rm80
set rp3 rp04
set rp4 rp06
set rp5 rp07
attach rp0 ..\data\hd_rp0_rm03.dsk
attach rp1 ..\data\hd_rp1_rm05.dsk
attach rp2 ..\data\hd_rp2_rm80.dsk
attach rp3 ..\data\hd_rp3_rp04.dsk
attach rp4 ..\data\hd_rp4_rp06.dsk
attach rp5 ..\data\hd_rp5_rp07.dsk
;set rp0 badblock
;set rp1 badblock
;set rp2 badblock
;set rp3 badblock
;set rp4 badblock
;set rp5 badblock
;
; use also cartridge drives
;
set rl enable
set rl0 rl01
set rl1 rl02
attach rl0 ..\data\hd_rl0_rl01.dsk
attach rl1 ..\data\hd_rl1_rl02.dsk
;set rl0 badblock
;set rl1 badblock
;
set hk0 rk06
set hk1 rk07
attach hk0 ..\data\hd_hk0_rk06.dsk
attach hk1 ..\data\hd_hk1_rk07.dsk
;set hk0 badblock
;set hk1 badblock
;
;
;set uba autoconfigure
;
;
; Define disk drive types. RA92 is largest-supported VAX drive.
set rqb enable
set rqc enable
set rqd disable
set rq0 ra92
set rq1 ra92
set rqb0 cdrom
set rqc0 rx50
set rqc1 rx50
;
; Attach defined drives to local files
attach rq0 ..\data\hd_dua0.dsk
attach rq1 ..\..\acvax01\data\hd_dua0.dsk
attach -r rqb0 ..\..\\common\hobbiest73.iso
attach rqc0 ..\..\common\fl_rx50_vupometer.dsk
attach rqc1 ..\..\common\fl_rx50_license.dsk
;
; Tape
;
set tq tk50
;set tqb offline
;set tqc offline
;
; Serial Lines
;
set dz lines=16
attach -m DZ 4713
;
; Disable unused devices. It's also possible to disable individual devices,
; using a construction like "set rq2 disable" if desired. 
;
set ts disable
; 
; Attach Ethernet to a network interface
;
set xu enable
set xu type=delua
set xu mac=14-12-68-47-11-03
attach xu eth0
;
; reroute console output
;
set console telnet=4712
;
; Now start the emulator
boot rq0
============ EOF ==========

Remember to have the vmb.exe in your bin directory. VMS 7.3 works fine although all the big massbus disks are not officially supported by VMS 7.3 (e.g. you cannot build shadow sets with RP07 drives). 

Kind regards
Andreas



-----Ursprüngliche Nachricht-----
Von: Hoyer Falko [mailto:Falko.Hoyer at austrocontrol.at] 
Gesendet: Donnerstag, 26. Juli 2007 14:52
An: simh at trailing-edge.com
Betreff: Re: [Simh] UDA-50 - want to use 'odd byte count'

Hi Andreas,

thanks for the reply - 

taking your approach into account the following questions arise:
----------------------------------------------------------------
- if using the massbus-adapter simulation then the maximum disk-size would be 512MB (RP07) - correct?

- we are currently using VMS-7.3 and as far as I know 5.5-2 is the latest running on a 780.

- we tried to compile simh for a VAX780 and we could not configure the simvax.ini file correctly:
do we need the "load ...ka655" stuff in that case ?
has somebody a working .ini file for VAX-780 for reference ?


apart from that - if we still keep on with vax-3900:
----------------------------------------------------
as far as I understood the disk-controller used here (and using RA92) is a RQDX3 which is/was for the Q-bus.
looking in the "VMS I/O User's Reference Manual" for the description of QIO services to disk - we can see that the UDA50  (but NOT the RQDX3) is mentioned for not supporting odd byte count:

"P2---The number of bytes that are to be read from the disk, or written from memory to the disk. An even number must be specified if the controller is an RK611, RL11, RX211, or UDA50."

now, I'm currently not sure if my assumption is true - do we really use the UDA50 in the VAX-3900 emulation and not the RQDX3 ?
If so, why is then odd byte count transfer impossible ?

any suggestions are very welcome (also if somebody has an idea how to patch the PDP11_RQ.C file).

regards
Falko

-----Original Message-----
From: Andreas Cejna [mailto:Andreas.Cejna at gnc.at] 
Sent: Mittwoch, 11. Juli 2007 12:28
To: Hoyer Falko; simh at trailing-edge.com
Subject: AW: [Simh] UDA-50 - want to use 'odd byte count'


Hi,
have you tried to run the emulated VAX 11/780. You have the chance to run massbus devices there.

Hope this helps

Kind Regards
Andreas


----- Originalnachricht -----
Von: simh-bounces at trailing-edge.com im Auftrag von Hoyer Falko 
Gesendet: Mit, 11.7.2007 08:50
An: simh at trailing-edge.com
Betreff: [Simh] UDA-50 - want to use 'odd byte count'

Hi,

I'm using SIMH and want to use our special written application software on it. this application was originally designed to run on massbus controller-disks or now we are using HSC's.

This SW uses QIOW to read/write to/from the disk and supplies:

qio.p1= buffer start address
qio.p2= transfer size
qio.p3= disk block address

My problem now:
the simh is emulating a UDA-50 controller which does not allow a odd byte count (and I know this is according spec) - but our SW do this. Currently I don't want to do a change to our application because it is too sensitive and still running on the "real VAX (6x00)". so for us the easier approch would be to modify SIMH.

Without any change we got the QIO status "%SYSTEM-F-IVBUFLEN, invalid buffer length" (= 034C hex)- as expected on UDA-50 - if an attemt to write odd byte count is made.

now we tried to modify pdp11_rq.c by ourself by incrementing (the user
supplied) byte count in case of odd value - but without full success.

the change we tried was as follows :

==== part of pdp11_rq.c ================

/* Data transfer commands */

t_bool rq_rw (MSC *cp, int32 pkt, t_bool q)
{
uint32 lu = cp->pak[pkt].d[CMD_UN];                     /* unit # */ uint32 cmd = GETP (pkt, CMD_OPC, OPC);                  /* opcode */ uint32 sts; UNIT *uptr;

/* insert start hy/pa */
uint32 ll = GETP32 (pkt, RW_BCL);
if (ll & 1) {
     fprintf (sim_deb, "+++ len  = %d +++\n", ll);
     ll++;
     PUTP32 (pkt, RW_BCL, ll);
     ll = GETP32 (pkt, RW_BCL);
     fprintf (sim_deb, "+++ len  = %d +++\n", ll);
}
/* insert end hy/pa */

if (uptr = rq_getucb (cp, lu)) {                        /* unit exist? */ ..... rest unchanged ..... ==============================

with this change applied now we get the following status instead: %SYSTEM-F-INCSEGTRA, incomplete segmented transfer request posted (= 2234 hex) which is again not what I like.

my question: how can I make this odd byte count possible on that controller-simulation and/or from where (which code) is this status code
(%x2234) actually coming from ?

any help would be very appreciated.

many thanks in advance
Falko
_______________________________________________
Simh mailing list
Simh at trailing-edge.com http://mailman.trailing-edge.com/mailman/listinfo/simh

_______________________________________________
Simh mailing list
Simh at trailing-edge.com
http://mailman.trailing-edge.com/mailman/listinfo/simh




More information about the Simh mailing list