These sources were recovered from xmsmall.dsk. The following steps were performed using the Contralto emulator:
- Copy
xmsmall.dsk
toblank.dsk
- In Contralto, insert
blank.dsk
in disk pack 0. - Boot the system
- In the Alto Executive, execute:
delete Smalltalk.Sources.5.5k xmsmall.boot
- Restart Contralto, inserting
xmsmall.dsk
in disk pack 0,blank.dsk
in disk pack 1. - Boot the system
- In the Alto Executive, execute
resume xmsmall.boot
- Once the Smalltalk UI appears, use the System Browser.
- In System Browser's left-most column, select
Sets and Dictionaries
- In the second column, select
SystemOrganizer
- In the third column, select
Filout and printing
- In the fourth column, select
printAll
- In the bottom pane, replace:
printAll
withfiloutAll
printCategory
withfiloutCategory
- Middle click in the bottom pane, and select
Compile
. A new method,filoutAll
should appear in the fourth column. - In the fourth column, select
filoutCategory:
- In the bottom pane, replace
dp0
withdp1
- Middle click in the bottom pane, and select
Compile
- In the bottom pane, type
SystemOrganization filoutAll
- Select the text
SystemOrganization filoutAll
- Middle click the text selection, and select
Do it
- As each category is written to disk, it will appear in the upper left hand corner of the screen in the
UserView
. This process will take some time. - Once completed, stop Contralto.
- Use aar to extract the files from blank.dsk. e.g.
aar x blank.dsk
- Use
dd
to fix the byte ordering in the files. e.g.for f in *.st; do dd if=$f of=$f.tmp conv=swab; mv $f.tmp $f; done
- At this stage, the files should resemble the first commit in this repo.
- restore_alto_files can be used to generate HTML from these files.
- Replace the low ASCII characters with variants modern OSes can use via:
perl -pi -e 's/\x01/≤/g' *.st
perl -pi -e 's/\x03/⦂/g' *.st
perl -pi -e 's/\x06/≡/g' *.st
perl -pi -e 's/\x07/◦/g' *.st
perl -pi -e 's/\x0e/≠/g' *.st
perl -pi -e 's/\x0f/↪/g' *.st
perl -pi -e 's/\x11/⇑/g' *.st
perl -pi -e 's/\x12/≥/g' *.st
perl -pi -e 's/\x13/ⓢ/g' *.st
perl -pi -e 's/\x15/¬/g' *.st
perl -pi -e 's/\x16/∢/g' *.st
perl -pi -e 's/\x17/⌾/g' *.st
perl -pi -e 's/\x18/▱/g' *.st
perl -pi -e 's/\x19/➲/g' *.st
perl -pi -e 's/\x1b/⇒/g' *.st
perl -pi -e 's/_/←/g' *.st