pouët.net

BKscope

Nick/Realname: Stanislav Maslovski
Group: FORTRAN LOVERS
Full name of work: BKScope
Duration: 3 min
Contact: stanislav.maslovski@gmail.com
Compo: БК-0010-01, 0011М 512b intro
Requirements: БК-0011М
Show notes:
  ,do .'',d;.      ..'::.    ':.     .''''.     .:'    .::'..      .;d,''. od,  
,..,.xooood.  .....,.... :'    ,. .'',cxxc,''. .,    ': ....,.....  .doooox.,..,
..cc..     o:. d.   .;;.  ..:dx'.'loo;....;ool'.'xd:..  .;;.   .d .:o     ..cc..
 0c  .....:;.  .   '...  oodl;: ,xd          dx, :;ldoo  ...'   .  .;:.....  c0 
:Xc  ....; .'.  ;.   ;.  ;:.   .ll            ll.   .:;  .;   .;  .'. ;....  cX:
dO; ..  .:....  ;. . ... ';.   .:: .c;,oo,;c. ::.   .;' ... . .;  ....:.  .. ;Od
:  .. ;,. l. ..'.  ...:c. ::;;lo'.d::cc::cc::d.'ol;;:: .c:...  .'.. .l .,; ..  :
 .,;,;.   .:,.',,:lll. .'d::ccc.;:            :;.ccc::d'. .lll:,,'.,:.   .;,;,. 
......'.  .'...Oc.   .;c;d'    xo.            .ox    'd;c;.   .cO...'.  .'......
;'.  . .,,cc.,0 ;.    ;xx .  ..Kc     .oo.     cK..  . xx;    .; 0,.cc,,. .  .';
:;. .. ..,.  .x ..',  ;dc ..,k,x,.' ol''''lo '.,x,k,.. cd;  ,'.. x.  .,.. .. .;:
x.   .c,.'. ...lc:cd:.,:.......  .l,'.,xx,.',l.  .......:,.:dc:cl... .'.,c.   .x
  ..':c.    .:x::.   ;l;         . .        . .         ;l;   .::x:.    .c:'..  
 ...'x'. .; ;dl.,. .,Xc        '.              .'        cX,. .,.ld; ;. .'x'... 
 '.,0  .cx;;ol..'..;;o'           ============           'o;;..'..lo;;xc.  0,.' 
 ..,0  .cx;;ol..'..;;o'              BKSCOPE             'o;;..'..lo;;xc.  0,.. 
 ...'k,.  ; ;dl.,. .,Xc        .. ============ ..        cX,. .,.ld; ;  .,k'... 
  ..';:.    .;xcc.   ,l:        .. .        . ..        :l,   .ccx;.    .:;'..  
k.   .c,.,. ...l:;cd:.,:.......  .o',.,kk,.,'o.  .......:,.:dc;:l... .,.,c.   .k
;;. ..  .'.  'k ..',  ;dl ..,k,k; . lc''''cl . ;k,k,.. ld;  ,'.. k'  .'.  .. .;;
;'   . .,,cc.,0 :.    ,xx .  ..Kc     .cc.     cK..  . xx,    .: 0,.cc,,. .   ';
....'.'.  .'...0l.   .;c;x,    dd'            'dd    ,x;c;.   .l0...'.  .'.'....
 .';,;.   .:'.',':lll. ..o::lll';;            ;;'lll::o.. .lll:','.':.   .;,;'. 
c  .. ;;. c  ..'.  ...cl. ;;,,cl'.occllccllcco.'lc,,;; .lc...  .'..  c .;; ..  c
d0; ..  .c....  ;.   ... ';.   .:c .:,'ll',:. c:.   .;' ...   .;  ....c.  .. ;0d
;Xc  ...., .'.  ,.   ,.  ;:.   .ll.          .ll.   .:;  .,   .,  .'. ,....  cX;
 0c   ....:;.  .   ....  oddo:: ,xx.        .xx, ::oddo  ....   .  .;:....   c0 
..:l'.     l:. d.   .;:' ...;dd'..ldd;....;ddl..'dd;... ':;.   .d .:l     .'l:..
' ',.xddddx.  .....,.... :'.   '. ...':xx:'... .'   .': ....,.....  .xddddx.,' '
  ,xd ...'d:.      ..,::'    ':.     .''''.     .:'    '::,..      .:d'... dx,  

C        1         2         3         4         5         6         7         8
C2345678901234567890123456789012345678901234567890123456789012345678901234567890
C                                                                              C
C     This program was inspired by the legendary Altair 8800 "Kaleidoscope"    C
C  program written by Li-Chen Wang in 1976 for the Cromemco Dazzler graphical  C
C         adapter.  His original algorithm was ported to БК-0010/11М.          C
C                                                                              C
C     In order to enable sound generation, some details of the bit mixing      C
C  code were changed.  The original program for the Intel 8080 microprocessor  C
C   used  89  instructions.  My program for K1801BM1 microprcessor is          C
C	        252  bytes long and has  96  instructions.                     C
C                                                                              C
C       And it generates sound! In fact, it is tuned for better sound.         C
C                                                                              C
C           ****************************************************               C
C          * TRY PRESSING "СТОП" WHEN PLAYING AND LOOK FOR EGGS *              C
C           ****************************************************               C
C                                                                              C
C    While working on this code, a HARDWARE BUG was found in the K1801BM1      C
C  microprocessor, which was not known for MORE THAN 35 YEARS from the time    C
C                when K1801BM1 first entered the market!                       C
C                                                                              C
C                   In this sequence of instructions:                          C
C                                                                              C
C                           MOVB   <src>, <dst>                                C
C                           BCC    <label>                                     C
C                                                                              C
C   the control is transfered to <label> independently of the state of the     C
C         carry flag that was there before the MOVB instruction                C
C                  (which must not affect the carry).                          C
C                                                                              C
C          A workaround is to insert another instruction (ex. NOP)             C
C                           in between the two.                                C
C                                                                              C
C             ( NO, THIS PROGRAM WAS NOT WRITTEN IN FORTRAN )                  C
C                                                                              C
C                            HAPPY PUNCHING!!!                                 C
C                                                                              C
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

Quick How-To:

  Download an emulator for THE GREAT Soviet personal computer БК-0011М.

  On Linux, I recommend bk-terak-emu [1]. On Android, bkemu [2]. On Windows,
  the BK emulator from gid [3]. The program was tested under all of them.
  Gid's emulator can also run from under wine on Linux. However, I recommend
  bk-terak-emu for a smoother playback.

  You can either load the bin file into the emulator (in bkemu) or use the
  provided MK-DOS disk image (in bk-terrak-emu and gid's BK).

  For bk-terak-emu under Linux, run
     bk -3 -c -A bkscope.bkd

  For gid's BK.exe on Windows, run the program and select the machine type
  "БК0011М + стандартный НГМД" from the drop-down menu "Конфигурация".
  Next, click on the diskette image, navigate to BKSCOPE.BKD, and click "Open".
  Now, restart the emulated machine by selecting the item "Рестарт БК" from
  the menu "Конфигурация" (the first item in the menu).

  When in MK-DOS, use the arrow keys to navigate, and hit <RETURN> to run.
  Do not forget to look for EGGS :-)

  For bkemu on Android, from the app menu select "Change Model" and
  then "ВК 0011M (MSTD)". Next, from the app menu select "Open .BIN image"
  and navigate to the downloaded bkscope.bin. A notification should appear
  saying "Start address 01000, length 252", this means the program is loaded
  to the memory. Now, tap on the keyboard icon on the top bar. Enter MON
  and hit <RETURN>. Now you are in the monitor (BIOS). Enter 1000 and
  hit G. The program will start.

References:

  [1] https://github.com/frantony/bk-terak-emu
  [2] https://github.com/3cky/bkemu-android; Google Play
  [3] http://gid.pdp-11.ru/