ZS is initialized
OBP CRC check: OK
Clearing TLB Entries
Initializing Tsunami Cache
Probing for RAM @ 0x06000000
Probing for RAM @ 0x04000000
Probing for RAM @ 0x02000000
Top RAM bank @ 0x02000000
Available Memory 0x04000000
Context Table allocated, Available Memory 0x03ffc000
RAMsize allocated, Available Memory 0x03fec000
Level 1 Table allocated, Available Memory 0x03febc00
Mapping RAM @ 0xffef0000
RAMbase --> RAMsize mapped, Available Memory 0x03feba00
Mapping ROM @ 0xffd00000
ROMbase --> ROMsize mapped, Available Memory 0x03feb800
Mapping ROM @ 0x00000000
0 --> ROMsize mapped, Available Memory 0x03feb500
Available Memory 0x03feb000
ttya initialized
Probing Memory Bank #0 32 Megabytes
Probing Memory Bank #1 32 Megabytes
Probing Memory Bank #2 Nothing there
Probing Memory Bank #3 Nothing there
Incorrect configuration checksum;
Setting NVRAM parameters to default values.
Setting diag-switch? NVRAM parameter to true
Probing /iommu@0,10000000/sbus@0,10001000 at 0,0 p9000
Probing /iommu@0,10000000/sbus@0,10001000 at 4,0 espdma esp sd st SUNW,bpp led
Probing /iommu@0,10000000/sbus@0,10001000 at 1,0 ts102
Probing /iommu@0,10000000/sbus@0,10001000 at 2,0 SUNW,DBRIs3
Probing /iommu@0,10000000/sbus@0,10001000 at 3,0 Nothing there
ZS is initialized
OBP CRC check: OK
Clearing TLB Entries
Initializing Tsunami Cache
Probing for RAM @ 0x06000000
Probing for RAM @ 0x04000000
Probing for RAM @ 0x02000000
Top RAM bank @ 0x02000000
Available Memory 0x04000000
Context Table allocated, Available Memory 0x03ffc000
RAMsize allocated, Available Memory 0x03fec000
Level 1 Table allocated, Available Memory 0x03febc00
Mapping RAM @ 0xffef0000
RAMbase --> RAMsize mapped, Available Memory 0x03feba00
Mapping ROM @ 0xffd00000
ROMbase --> ROMsize mapped, Available Memory 0x03feb800
Mapping ROM @ 0x00000000
0 --> ROMsize mapped, Available Memory 0x03feb500
Available Memory 0x03feb000
ttya initialized
Probing Memory Bank #0 32 Megabytes
Probing Memory Bank #1 32 Megabytes
Probing Memory Bank #2 Nothing there
Probing Memory Bank #3 Nothing there
Probing /iommu@0,10000000/sbus@0,10001000 at 0,0 p9000
Probing /iommu@0,10000000/sbus@0,10001000 at 4,0 espdma esp sd st SUNW,bpp led
Probing /iommu@0,10000000/sbus@0,10001000 at 1,0 ts102
Probing /iommu@0,10000000/sbus@0,10001000 at 2,0 SUNW,DBRIs3
Probing /iommu@0,10000000/sbus@0,10001000 at 3,0 Nothing there
Tadpole S3 SPARCbook, Keyboard Present
ROM Rev. 2.9 V1.00
64 MB memory installed, Serial #10690881.
Ethernet address 0:0:83:a3:21:41, Host ID: 80a32141.
Spinning discs down .. done
Boot device: /iommu/sbus/ledma@4,8400010/le@4,8c00000 File and args:
Automatic network cable selection succeeded : Using AUI Ethernet Interface
Type help for more information
ok boot /iommu/sbus/espdma@4,8400000/esp/sd@5,0 bsd
Boot device: /iommu/sbus/espdma@4,8400000/esp/sd@5,0 File and args: bsd
>> OpenBSD BOOT 2.3
Booting bsd @ 0x4000
3145804+437948 [52+149536+131969]
[ using 281932 bytes of bsd ELF symbol table ]
console is ttya
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
Copyright (c) 1995-2010 OpenBSD. All rights reserved. http://www.OpenBSD.org
OpenBSD 4.7 (GENERIC) #152: Fri Mar 19 02:33:48 MDT 2010
deraadt@sparc.openbsd.org:/usr/src/sys/arch/sparc/compile/GENERIC
real mem = 66699264 (63MB)
avail mem = 59355136 (56MB)
mainbus0 at root: Tadpole_S3
cpu0 at mainbus0: TMS390S10 @ 50 MHz, on-chip FPU
cpu0: physical 4K instruction (32 b/l), 2K data (16 b/l) cache enabled
obio0 at mainbus0
clock0 at obio0 addr 0x71200000: mk48t08 (eeprom)
timer0 at obio0 addr 0x71d00000 delay constant 23
zs0 at obio0 addr 0x71100000 pri 12, softpri 6
zstty0 at zs0 channel 0: console
zstty1 at zs0 channel 1
zs1 at obio0 addr 0x71000000 pri 12, softpri 6
zskbd0 at zs1 channel 0: keyboard, type 5, layout 0x2e
wskbd0 at zskbd0 mux 1
zsms0 at zs1 channel 1
wsmouse0 at zsms0 mux 0
slavioconfig at obio0 addr 0x71800000 not configured
auxreg0 at obio0 addr 0x71900000
auxreg1 at obio0 addr 0x71910000
tctrl0 at obio0 addr 0x42000020 pri 11
tctrl0: main power available, lid down
clk-ctrl at obio0 addr 0x713c0000 not configured
btcham0 at obio0 addr 0x71380000: id 0x3a, revision 0xa0
com0 at obio0 addr 0x713a0000 pri 13: ns16550a, 16 byte fifo
com0: probed fifo depth: 0 bytes
iommu0 at mainbus0 addr 0x10000000: version 0x1/0x4, page-size 4096, range 64MB
sbus0 at iommu0: clock = 25 MHz
"p9000" at sbus0 class display slot 0 offset 0x100000 not configured
dma0 at sbus0 slot 4 offset 0x8400000: rev 2
esp0 at dma0 offset 0x8800000 pri 4: ESP200, 40MHz
scsibus0 at esp0: 8 targets, initiator 7
probe(esp0:3:0): max sync rate 10.00MB/s
sd0 at scsibus0 targ 3 lun 0:SCSI2 0/direct fixed
sd0: drive offline
sd1 at scsibus0 targ 5 lun 0:SCSI2 0/direct d
sd1: 3067MB, 512 bytes/sec, 6281856 sec total
cd0 at scsibus0 targ 6 lun 0:SCSI2 5/cdrom reme
bpp0 at sbus0 slot 4 offset 0xc800000: DMA2
ledma0 at sbus0 slot 4 offset 0x8400010: rev 2
le0 at ledma0 offset 0x8c00000 pri 6: address 00:00:83:a3:21:41
le0: 16 receive buffers, 4 transmit buffers
tslot0 at sbus0 slot 1 offset 0x2000000 pri 11: 2 slots
pcmcia0 at tslot0 socket 0
pcmcia1 at tslot0 socket 1
"SUNW,DBRIs3" at sbus0 class ISDN slot 2 offset 0x40 not configured
vscsi0 at root
scsibus1 at vscsi0: 256 targets
softraid0 at root
bootpath: /iommu@0,10000000/sbus@0,10001000/espdma@4,8400000/esp@4,8800000/sd@50
root on sd1a swap on sd1b dump on sd1b
WARNING: / was not properly unmounted
Automatic boot in progress: starting file system checks.
/dev/rsd1a: 2695 files, 32121 used, 810934 free (78 frags, 101357 blocks, 0.0% )
/dev/rsd1a: MARKING FILE SYSTEM CLEAN
/dev/rsd1e: 9 files, 8 used, 164293 free (21 frags, 20534 blocks, 0.0% fragment)
/dev/rsd1e: MARKING FILE SYSTEM CLEAN
/dev/rsd1d: 22231 files, 288694 used, 569387 free (1787 frags, 70950 blocks, 0.)
/dev/rsd1d: MARKING FILE SYSTEM CLEAN
setting tty flags
pf enabled
starting network
starting system logger
starting initial daemons: ntpd.
savecore: no core dump
checking quotas: done.
building ps databases: kvm dev.
clearing /tmp
starting pre-securelevel daemons:.
setting kernel security level: kern.securelevel: 0 -> 1
creating runtime link editor directory cache.
preserving editor files.
ssh-keygen: generating new DSA host key...
ssh-keygen: generating new RSA host key... done.
ssh-keygen: generating new RSA1 host key... done.
starting network daemons: sshd sendmail inetd.
starting local daemons:.
standard daemons: cron.
Thu Dec 31 12:09:33 GMT 1987
OpenBSD/sparc (tadpole.hecnet.eu) (console)
login:
Friday, 13 August 2010
Successful install of OpenBSD 4.7 on a SPARCbook 3
Here is the proof:
Thursday, 5 August 2010
Epson Geneva PX-8 Portable Computer Serial RS/232 Cable
Thought it was worth posting this as there doesn't appear to be a reference for how to wire up a serial cable or RS/232 cable for the Epson PX-8 Mini DIN-8 to a PC DB9 female connector.
If the cable you're using contains a CG/E Common Ground wire you can connect this to the shell of the DB9. It's best to scratch the shell just above the connections then solder the wire directly onto the shell.
| PX-8 | PC-DB9 |
|---|---|
| 1 | 5 |
| 2 | 2 |
| 3 | 3 |
| 4,5 | 1 |
| 6 | 4 |
| 7 | 6 |
| 8 | 7,8 |
Saturday, 21 November 2009
DEC Legacy Event, April 17th & 18th 2010, Windermere, UK
I am organising a DEC Legacy Event on the 17th & 18th April 2010 in Windermere, UK.
The event's purpose is to bring together people with an interest in the company Digital Equipment Corporation and their legacy of hardware, software and ethos. I am hoping to attract people willing to exhibit their DEC computer hardware and software at the event. There will be tables setup around the main hall on which equipment can be presented.
Whilst the format for the event is still fluid, I envisage that it will involve a mixture of the following:
- Walkabout sessions giving the opportunity to talk to owners of DEC hardware and to 'have a play'
- Demonstrations of equipment or software by their owners (languages, applications, games etc)
- Sit down presentations about specific topics of interest
- A programming competition (if there is enough interest)
- Buy & sell hardware, software, relevant items
- Raffle (with suitably themed items) on behalf of the National Museum of Computing
Saturday, 3 October 2009
Wednesday, 23 September 2009
Simple Volume Shadowing of the System Disk under OpenVMS
I am not an OpenVMS expert. I had to read the manual a couple of times and consult with the Hoff to get the commands sorted to do this, so hopefully it will save you some time.
Volume Shadowing on OpenVMS at it's very simplest can be used to provide RAID-1 mirroring using two or more locally attached hard drives. In my case I have a single hard drive (DKA300:) which acts as my system and data disk. I wanted a complete hot mirror of this drive in case of hardware failure. I have used two identical drives to do this.
If you are an OpenVMS hobbyist you will have the license required for volume shadowing. You can easily check:
You then need to setup the system parameters so that when you reboot OpenVMS your current system disk is included in a shadow set to which another drive (or drives) can then be added. Edit the file SYS$SYSTEM:MODPARAMS.DAT and add the following lines:
A sensible value for ALLOCLASS is 100, but it can be anything from 1 to 255. If you have previously added the box to a cluster this parameter may already be defined. SHADOWING must be 2 to enable shadowing. SHADOW_SYS_DISK must be 1 to enable shadowing for the system disk, and SHADOW_SYS_UNIT defines the virtual unit number which is appended to the virtual drive name DUAx:
You then need to run AUTOGEN to save these parameters. I used the following two commands:
The second command may fail on errors, if this is the case and you are happy to proceed add the keyword FEEDBACK to the end.
This will reboot the system and (hopefully) when it's started up you should see the virtual unit when you run the SHOW DEVICE command:
To add a new member to the volume set use the MOUNT command, like this:
MOUNT/CONFIRM/SYSTEM DSA0: /SHADOW=($100$DKA300,$100$DKA400) OVMSVAXSYS
This command specifies the existing system disk $100$DKA300 and the new disk $100$DKA400. You will need to confirm that you want to overwrite the contents of the new drive. The command initiates a copy of the data on the system disk to the new drive. SHOW DEVICE will indicate the copy progress:
After the copy is complete the two shadow set members will contain identical data, so that if one of the drives should fail it can be replaced without losing any data.
I encourage you to consult the Volume Shadowing for OpenVMS manual for more information.
Volume Shadowing on OpenVMS at it's very simplest can be used to provide RAID-1 mirroring using two or more locally attached hard drives. In my case I have a single hard drive (DKA300:) which acts as my system and data disk. I wanted a complete hot mirror of this drive in case of hardware failure. I have used two identical drives to do this.
If you are an OpenVMS hobbyist you will have the license required for volume shadowing. You can easily check:
$ SHOW LICENSE VOLSHAD
Active licenses on node ORAC:
------- Product ID -------- ---- Rating ----- -- Version --
Product Producer Units Avail Activ Version Release Termination
VOLSHAD DEC 0 0 100 0.0 (none) 16-OCT-2009
You then need to setup the system parameters so that when you reboot OpenVMS your current system disk is included in a shadow set to which another drive (or drives) can then be added. Edit the file SYS$SYSTEM:MODPARAMS.DAT and add the following lines:
ALLOCLASS=100
SHADOWING=2
SHADOW_SYS_DISK=1
SHADOW_SYS_UNIT=0
A sensible value for ALLOCLASS is 100, but it can be anything from 1 to 255. If you have previously added the box to a cluster this parameter may already be defined. SHADOWING must be 2 to enable shadowing. SHADOW_SYS_DISK must be 1 to enable shadowing for the system disk, and SHADOW_SYS_UNIT defines the virtual unit number which is appended to the virtual drive name DUAx:
You then need to run AUTOGEN to save these parameters. I used the following two commands:
$ @SYS$UPDATE:AUTOGEN SAVPARAMS GENPARAMS
$ @SYS$UPDATE:AUTOGEN GENPARAMS REBOOT
The second command may fail on errors, if this is the case and you are happy to proceed add the keyword FEEDBACK to the end.
This will reboot the system and (hopefully) when it's started up you should see the virtual unit when you run the SHOW DEVICE command:
$ show dev d
Device Device Error Volume Free Trans Mnt
Name Status Count Label Blocks Count Cnt
DSA0: Mounted 0 OVMSVAXSYS 16637880 337 1
$100$DKA200: (ORAC) Online wrtlck 0
$100$DKA300: (ORAC) ShadowSetMember 0 (member of DSA0:)
To add a new member to the volume set use the MOUNT command, like this:
MOUNT/CONFIRM/SYSTEM DSA0: /SHADOW=($100$DKA300,$100$DKA400) OVMSVAXSYS
This command specifies the existing system disk $100$DKA300 and the new disk $100$DKA400. You will need to confirm that you want to overwrite the contents of the new drive. The command initiates a copy of the data on the system disk to the new drive. SHOW DEVICE will indicate the copy progress:
$ show dev d
Device Device Error Volume Free Trans Mnt
Name Status Count Label Blocks Count Cnt
DSA0: Mounted 0 OVMSVAXSYS 16637880 337 1
$100$DKA200: (ORAC) Online wrtlck 0
$100$DKA300: (ORAC) ShadowSetMember 0 (member of DSA0:)
$100$DKA400: (ORAC) ShadowCopying 0 (copy trgt DSA0: 43% copied)
After the copy is complete the two shadow set members will contain identical data, so that if one of the drives should fail it can be replaced without losing any data.
I encourage you to consult the Volume Shadowing for OpenVMS manual for more information.
Sunday, 6 September 2009
VAX APL LK201 Keyboard
From the VAX APL Users Guide page 1-3 comes an image of the LK201-EC variant with APL keycaps:

With this image as a reference I designed a set of replacement keycaps for an existing LK201 using the Open Office Drawing tool (source file) and the excellent Simpl APL Unicode Font:

These were printed out using a laser printer on the self-adhesive transparency paper provided as part of the Hooleon Keyboard Sticker Label Making Kit. These were then cut out using a scalpel and mounted on backing stickers which are opaque. A final top sticker adds a textured finish and protects the printed label.This is the resulting keyboard:
Left Hand Side:

Right Hand Side:

I've also uploaded a short video to YouTube demonstrating how you interact with VAX APL V4.0 using this keyboard together with a VT320 terminal.

With this image as a reference I designed a set of replacement keycaps for an existing LK201 using the Open Office Drawing tool (source file) and the excellent Simpl APL Unicode Font:

These were printed out using a laser printer on the self-adhesive transparency paper provided as part of the Hooleon Keyboard Sticker Label Making Kit. These were then cut out using a scalpel and mounted on backing stickers which are opaque. A final top sticker adds a textured finish and protects the printed label.This is the resulting keyboard:
Left Hand Side:

Right Hand Side:

I've also uploaded a short video to YouTube demonstrating how you interact with VAX APL V4.0 using this keyboard together with a VT320 terminal.
Wednesday, 12 August 2009
Embedding the SimPL APL font on a web page using Cufón
I came across Cufón a while ago whilst browsing the excellent nettuts+ website.
Having started coding in APL I was wondering about the best way to present developed code on my blog. One option is to use my java transcoding technique to load my Soliton Sharp APL code into jEdit (my favourite editor) using my custom character set transcoder to convert the custom eight-bit ASCII encoding used by Soliton into standard Unicode APL characters.
Cufón allows you to embed any arbitrary truetype font or fonts into a webpage via javascript and then use the font directly within the html by replacing a standard html tag. You can either download the utility or use their website to process a truetype font located on your hard disk to generate a javascript file containing your selected truetype glyphs. The generated file in this example is simpl_400.font.js (see code below).
I chose the excellent free font created by Phil Chasney called SImPL to embed within this blog.
The code required within the head tag of this page to embed the font is very simple:
The results can be seen with the following APL characters above ASCII location 127 in the SOLITON-APL encoding:
and an example of some APL code:
Having started coding in APL I was wondering about the best way to present developed code on my blog. One option is to use my java transcoding technique to load my Soliton Sharp APL code into jEdit (my favourite editor) using my custom character set transcoder to convert the custom eight-bit ASCII encoding used by Soliton into standard Unicode APL characters.
Cufón allows you to embed any arbitrary truetype font or fonts into a webpage via javascript and then use the font directly within the html by replacing a standard html tag. You can either download the utility or use their website to process a truetype font located on your hard disk to generate a javascript file containing your selected truetype glyphs. The generated file in this example is simpl_400.font.js (see code below).
I chose the excellent free font created by Phil Chasney called SImPL to embed within this blog.
The code required within the head tag of this page to embed the font is very simple:
<script src="http://www.wickensonline.co.uk/styles/cufon-yui.js" type="text/javascript"></script>
<script src="http://www.wickensonline.co.uk/styles/simpl_400.font.js" type="text/javascript"></script>
<script type="text/javascript">
Cufon.replace('h1');
</script>
The results can be seen with the following APL characters above ASCII location 127 in the SOLITON-APL encoding:
¨¯≤≥≠∨×⍪⌹∵⌿
⍲¡€£¥¬⍱⌻⍂≡⌷¿
⍺⊥∩⌊∊∇∆⍳∘⎕∣⊤○
⍴⌈↓∪⍵⊃↑⊂⊢⍀⊣÷
⌶⊖⍎⍝⍷⍫⍒⍋⍸⍤⍞⍕⍥
⍟⍉⌽⍧←⍙→⋄
and an example of some APL code:
∇mbrt1[⎕]∇
[0] z←mbrt1
[1] rrz←(0.1×⍳21)−1 ⍝ array from ¯1 to +1 stepsize 0.1
[2] iiz←(0.1×⍳21)−1 ⍝ array from ¯1 to +1 stepsize 0.1
∇cmplsq[⎕]∇
[0] z← cmplsq ⍵
[1]
[2] ⍝ Function: Complex Square
[3] ⍝ Perform a complex square of the argument ⍵, returning array r,i in z
[4]
[5] r←⍵[0] ⍝ extract real part into r
[6] i←⍵[1] ⍝ extract imaginary part into i
[7] rn←(r⋆2)−(i⋆2) ⍝ real result
[8] in←r×i×2 ⍝ imaginary result
[9] z←rn,in ⍝ z is array of real and imaginary results
Subscribe to:
Posts (Atom)
