Close
0%
0%

nedoPC SDK

Software Development Kit for DIY programmable devices and retro computers

Public Chat
Similar projects worth following
I work on nedoPC SDK since 2001 (prior 2004 it was called RW1P2). SDK uses my own high-level programming language Robby (previously known as RW1 v2) that is kind of simplified C which is having only 16-bit variables and intermediate byte-code representation.

As I wrote above, before 2004 nedoPC SDK was called RW1P2 (Robot Warfare 1 Platform 2). A few versions was officially released:

  • RW1P2 v1.0 (28-APR-2001) - cross development for Orion-128 and ZX-Spectrum using 8080 coding and tiled graphics
  • RW1P2 v1.1 (15-MAY-2001) - cross development for Orion-128 and ZX-Spectrum
  • RW1P2 v1.2 (16-JAN-2002) - cross development for Orion-128, ZX-Spectrum and Radio-86RK
  • RW1P2 v1.2.1 (18-JAN-2002) - cross development for Orion-128, ZX-Spectrum and Radio-86RK
  • RW1P2 v1.3 (20-JAN-2002) - cross development for Orion-128, ZX-Spectrum, Radio-86RK and Spetsialist
  • RW1P2 v1.4 (12-JUN-2002) - cross development for Orion-128, ZX-Spectrum, Radio-86RK, Specialist and also Z80 specific coding for ZX-Spectrum (with TR-DOS support) and PetersPlus Sprinter
  • RW1P2 v1.5 beta aka Sprinter SDK (26-APR-2003) - only Z80 specific coding for PetersPlus Sprinter and only for Windows
  • Never released version of nedoPC SDK (last update 23-JAN-2006) - added pixel level graphics for ZX-Spectrum and nedoPC font 8x8 pixels

Also almost since the beginning I wrote some m68k-code to support Palm Pilots and x86-code to support IBM PC in RW1P2, but this effort was never completed.

CREDITS:

It looks like in 2001 I took 16-bit math subroutines for 8080 microprocessor from SMALL C v2.1 by Jim Hedrix ( http://www.cpm.z80.de/small_c/smallc21.zip )  - more precisely from CLIB.ARC text file and it's having its own copyright: Small-C Library:  Copyright 1984 J. E. Hendrix, L. E. Payne

Also I used opensource software (with unspecified license) of 2 other people:

  • bin2rss.c by Viktor Pykhonin and
  • bin2trd.c by Copper Feet (Vyacheslav Mednonogov)

History of RW1 programming language started in 1998 when I released shareware game for programmers called "Robot Warfare 1" (it was featured in a few Russian computer magazines and British magazine "Computer Shopper" in 1999):

Programming language RW1 v2 (created by me in about 2000) was more C-like and this version becomes programming language Robby:


Purpose of this particular Hackaday project is resurrection of nedoPC SDK as a new fully open source software development kit for DIY programmable devices and retro computers with new GitLab repository: https://gitlab.com/nedopc/sdk

  • Robot Warfare 1

    SHAOS05/19/2018 at 18:35 0 comments

    As I wrote in details of this project, programming language that I use here came from my "hobby" game "Robot Warfare 1" that I released in 1998 as shareware - it was used to program robots - something like this:

       % ================= WSIMPLE.RW1 ==================
       % Example of simple robot 
       % with an eye
       % and a gun.
       % Run:    RW1_DUEL.EXE  WSIMPLE.RW1
    
       ROBOT "WinSimple Robot"
    
         COLOR FFD010
    
         FRONT EYE
         LEFT  GUN
    
       START:
    
         ACT FRONT        % Look in front
         if N!=6 : L1     % If there is a robot there then
            RIGHT
            ACT LEFT      % shoot
            LEFT
            GOTO START
         L1:
         if N!=3 : L3     % If there is a box with missles then
            STEP          % go ahead
            GOTO START
         L3:              % If there is neither box nor robot then
                          % it means that there is a barrier in the direction 
         if D==1 : L4     % If the distance from it is greater then 1 then
            STEP          % make a step
            GOTO START
         L4:
         RIGHT            % If the barrier is in the next cell
         GOTO START       % turn to right
    
       END
    

    In 1999-2000 I upgraded this programming language for "Robot Warfare 1" v2  to make it more C-like (in the same time I released its compiler as open source software under GPL) - now simplest robot looks like this:

    robot "NewSimple"
    author "SANYA"
    
    color 000030
    
    front eye
    left  gun
    right gun
    
    +rw1_std.rwi
    
    main()
    {
       act front
       if(N==@t_robot) call shoot1
       else
       {
          say "See &N ( &D ) M=&M E=&E !"
          if(N==@t_box||D>1) step
          else
          {
             if(R>500) right
             else left
          }
       }
    }
    
    shoot1()
    {
      right
      A = @left
      for(aa=0,aa<3,aa++)
      {
         call shoota
      }
      left
    }
    
    shoota()
    {
      act A
      act A
      act A
      act A
      act A
    }
    
    

    then I created RW1P2 - crosscompiler that compiles robot bytecode to i8080 assembler program using some set of rules and libraries, for example we can have a tile 8x8:

       ########  => #FF
       #      #  => #81
       # #  # #  => #A5
       #      #  => #81
       #      #  => #81
       #  #####  => #9F
       #      #  => #81
       ########  => #FF
    

    with black ink and red paper - it's hexadecimal 40:

       ;8x8-2/16
       ;myspr.spr file
       MYSPR  DB  #FF,#81,#A5,#81,#81,#9F,#81,#FF,#40 ;@ 

     then tile compiler will turn it into binary with header file that could be included into the program:

       // MY.RW1
       robot "MY"
       author "Shaos"
       +myspr.rwi
       main()
       {
          dx = 20
          dy = 10
          for(xx=0,xx<dx,xx++)
          {
            for(yy=0,yy<dy,yy++)
            {
               select xx yy // choose cell for tile output
               set @MYSPR // print tile there
            }
          }
       }
    

    Most significant thing that I did on this programming language was port of "Just Another Tetris" (GPL software by Mattias Wadman) to PetersPlus Sprinter computer in 2002 (and other computers supported by RW1P2):


    P.S. Another pretty noisy thing written in this programming language was ASCII PCB and schematics online editor at the end of 2012, but it is totally different story ;)

View project log

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates