These sources were recovered from xmsmall.dsk. The following steps were performed using the Contralto emulator:
- Copy
xmsmall.dsktoblank.dsk - In Contralto, insert
blank.dskin disk pack 0. - Boot the system
- In the Alto Executive, execute:
delete Smalltalk.Sources.5.5k xmsmall.boot - Restart Contralto, inserting
xmsmall.dskin disk pack 0,blank.dskin 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:
printAllwithfiloutAllprintCategorywithfiloutCategory
- Middle click in the bottom pane, and select
Compile. A new method,filoutAllshould appear in the fourth column. - In the fourth column, select
filoutCategory: - In the bottom pane, replace
dp0withdp1 - 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
ddto 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