File download
- File size:
- 1 651 400 bytes (1.57M)
- File date:
- 2024-01-03 14:15:18
- Download count:
- all-time: 2
Preview
- solarbreeze_superpet_ibm5110_apl_vc3-2023/file_id.diz 2.95K
- solarbreeze_superpet_ibm5110_apl_vc3-2023/result.png 9.41K
- solarbreeze_superpet_ibm5110_apl_vc3-2023/run-on-web-5110-emulator.png 74.07K
- solarbreeze_superpet_ibm5110_apl_vc3-2023/solarbreeze_superpet_ibm5110_apl_vc3-2023-video.mp4 10.43M
- solarbreeze_superpet_ibm5110_apl_vc3-2023/source.png 9.62K
- solarbreeze_superpet_ibm5110_apl_vc3-2023/source.utf8.txt 107B
file_id.diz
Vintage Computing Christmas Challenge 2023
Author: solarbreeze
Category: Christmas Challenge
System: IBM 5110
Language: APL
Len source code: 75 characters
Len exe file: N/A
Len code only: N/A
Instructions:
Run on the IBM 5110 emulator at
https://norbertkehrer.github.io/ibm_5110/emu5110.html
Click the switch marked APL and then the Restart switch to start APL.
Once APL is loaded, type in the program using the keyboard provided by the emulator.
The characters ⌽ and ⊖ use overstrikes.
For the ⌽ character use shift-O, cursor back, shift-M.
For the ⊖ character use shift-O, cursor back, shift-minus.
The IBM 5110's screen is too small to show the entire Christmas snow quilt lattice,
the top scrolls offscreen. The enclosed video shows the program execution.
The program will also run on the Commodore SuperPET.
Description:
' *'[1+Z,[1](Z←D[⍳6;]),[1]D←C,[1]⊖¯1 0↓C←B,B[;1+⍳5],B←A[;⍳3],⌽A←⌽(⍳4)∘.=⍳4]
The code builds up, reading right to left, as follows:
A←⌽(⍳4)∘.=⍳4
A
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
' *'[1+A]
*
*
*
*
B←A[;⍳3],⌽A←⌽(⍳4)∘.=⍳4
B
0 0 0 1 0 0 0
0 0 1 0 1 0 0
0 1 0 0 0 1 0
1 0 0 0 0 0 1
' *'[1+B]
*
* *
* *
* *
C←B,B[;1+⍳5],B←A[;⍳3],⌽A←⌽(⍳4)∘.=⍳4
C
0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0
0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0
0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0
1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1
' *'[1+C]
* * *
* * * * * *
* * * * * *
* * * *
D←C,[1]⊖¯1 0↓C←B,B[;1+⍳5],B←A[;⍳3],⌽A←⌽(⍳4)∘.=⍳4
D
0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0
0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0
0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0
1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1
0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0
0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0
0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0
' *'[1+D]
* * *
* * * * * *
* * * * * *
* * * *
* * * * * *
* * * * * *
* * *
Z,[1](Z←D[⍳6;])
0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0
0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0
0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0
1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1
0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0
0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0
0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0
0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0
0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0
1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1
0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0
0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0
' *'[1+Z,[1](Z←D[⍳6;])]
* * *
* * * * * *
* * * * * *
* * * *
* * * * * *
* * * * * *
* * *
* * * * * *
* * * * * *
* * * *
* * * * * *
* * * * * *
The final result is produced by concatenating the two previous shapes together.