Coder Social home page Coder Social logo

bcomp's Introduction

bcomp (Basic Computer)

This is simple computer model studied in ITMO University since 1982 by first year students. Its features are simple instructions set (inspired from PDP-8 and PDP-11), simple microprogram model and logic scheme to easy learn basics of computer architecture.

All documentation is unfortunativelly in Russian. You can look at https://se.ifmo.ru/courses/csbasics for details. There is also lectures track on https://www.youtube.com/playlist?list=PLBWafxh1dFuwbs2bc_ba_1FIm4SzFYg2p

There are two branches for old model v1 (this model was studied until year 2019) and next generation model v2 (current). Folder "docs" is for old model and would be deleted in the future for v2.

bcomp's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bcomp's Issues

Добавьте ВУ-10 "Пульт от ядерки"

Чтобы можно было в любой момент по указанию практика прервать выполнение "полезной программы" и обработать должным образом

In Nightmare Mode, there is only Russian language available

The English and Russian languages seem to work normally when I launch BComp in "normal" mode using -Duser.language key, like this:
$ java -jar -Duser.language=en bcomp-ng.jar
However, the language setting seems to have no impact on Nightmare mode (-Dmode=nightmare). Say, when I launch BComp with the following command:
$ java -jar -Duser.language=en -Dmode=nightmare bcomp-ng.jar
the hotkey labels are still displayed in Russian.
issue
This occurs at least on my Linux operating system, but may happen on other platforms as well.
I understand that this issue does not impact the working process of BComp, but still ask you to review this.

Direct load with hexademical written as decimal results in NPE

Sadly, BCOMP-NG does not properly handle STDOUT redirection, so here is manual Copy-paste from system console log.txt of event caused by
following code:

ORG 0x1C
START: LOOP START
       LD   #FF

Similar issue occurs with following code:

ORG FF
START: LOOP START

But with a different error message: log2.txt

In all of these events nothing is #printed in BCOMP log window.
image

Weirdly, when only ORG FF is present in the program without any functional code assembler compilation error is correctly printed into BCOMP log window and no JVM errors are noticed
image

ВУ-0 (Таймер) генерирует одно прерывание многократно

После гененрирования первого прерывания ВУ-0 продолжает генерировает его многократно, по выходу из первого прерывания.

Способ репликации:

        ORG     0x0
V0:     WORD    $INT0, 0x180

        ORG     0x40
START:  DI
        CLA
        LD      #0x8    ;ENABLES INTERRUPT ON TIMER
        OUT     0x1
        LD      #0xA    ;SETS THE INTERRUPT TIME TO 1 SECOND
        OUT     0x0
        CLA
        EI

LP:     ADD #0x1
        JUMP LP

INT0:   
        NOP
        IRET

Однако, если перед выходом из прерывания записывать в DR значение, то прерывание больше не генерируется:

; То же что и в прошлом примере

INT0:   
        NOP
        LD     #0xA
        OUT      0x0
        IRET

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.