scene.org File Archive

File download

<root>­/­parties­/­2023­/­vccc23­/­christmas-diamonds/solarbreeze_superpet_ibm5110_apl_vc3-2023.zip

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.