was ist das für eine Sprache?

Kann mir einer sagen in welcher Sprache das geschrieben wurde? Laut dem Eintrag simpl32, denke ich mal, war da ein simpl-compiler mit im Spiel. Ist der Quellcode aus einer steinalten CNC-Steuerung, die Gott-sei-Dank noch in Diskettenform vorhanden war. Vielleicht kennt ja auch jemand die verwendeten Dateiendungen, daher eine Auflistung der Files.



Code:
        .include simpl32
        .include user.def

export data
  variable
    boolean m_editor m_alphaclear
enddata
 
data
  define
    let alpha_blink_rate = 40
  variable
     boolean m_nextalpha alpha_inv t.inv_sav
     byte disp_char alpha_row alpha_col
     integer alpha_pos col_alpha
enddata

; ar0 -> Pointer auf Variable
; ar2 -> Pointer auf Variablen - Kennzeichner
; dr0 -> Zähler bis zur Eingabestelle, Konstruktion -> ar0 [dr0]
; dr1 -> Input Alphanum

export routine init_alphanum
  reset m_nextalpha disp_char alpha_row alpha_col alpha_inv
  reset m_editor m_alphaclear
  clear alpha_pos col_alpha
endroutine

routine scan_tast
  clear dr1
  if N_NEXTALPHA
     toggle m_nextalpha
  elsif N_BLANK
     fill 0 (ar0) with " " t.width byte
     clear dr0 
  elsif N_INCALPHA
    increment dr0
    if  dr0 >= t.width
      let dr0 = t.width minus 1
    endif
  elsif N_DECALPHA
    decrement dr0
    if  dr0 < 0
      let dr0 = 0
    endif
  elsif N_SPACE
    let dr1 = " " byte
  elsif N_0
    let dr1 = "0" byte
  elsif N_1
    let dr1 = "1" byte
  elsif N_2
    let dr1 = "2" byte
  elsif N_3
    let dr1 = "3" byte
  elsif N_4
    let dr1 = "4" byte
  elsif N_5
    let dr1 = "5" byte
  elsif N_6
    let dr1 = "6" byte
  elsif N_7
    let dr1 = "7" byte
  elsif N_8
    let dr1 = "8" byte
  elsif N_9
    let dr1 = "9" byte
  elsif N_POINT
    let dr1 = "." byte
  elsif N_MINUS
    let dr1 = "-" byte
  elsif !m_nextalpha
    if N_A
      let dr1 = "A" byte
    elsif N_B
      let dr1 = "B" byte
    elsif N_C
      let dr1 = "C" byte
    elsif N_D
      let dr1 = "D" byte
    elsif N_E
      let dr1 = "E" byte
    elsif N_F
      let dr1 = "F" byte
    elsif N_G
      let dr1 = "G" byte
    elsif N_H
      let dr1 = "H" byte
    elsif N_I
      let dr1 = "I" byte
    elsif N_J
      let dr1 = "J" byte
    elsif N_K
      let dr1 = "K" byte
    elsif N_L
      let dr1 = "L" byte
    elsif N_M
      let dr1 = "M" byte
    elsif N_N
      let dr1 = "N" byte
    elsif N_O
      let dr1 = "O" byte
    elsif N_P
      let dr1 = "P" byte
    endif
  elsif m_nextalpha
    if N_Q
      let dr1 = "Q" byte
    elsif N_R
      let dr1 = "R" byte
    elsif N_S
      let dr1 = "S" byte
    elsif N_T
      let dr1 = "T" byte
    elsif N_U
      let dr1 = "U" byte
    elsif N_V
      let dr1 = "V" byte
    elsif N_W
      let dr1 = "W" byte
    elsif N_X
      let dr1 = "X" byte
    elsif N_Y
      let dr1 = "Y" byte
    elsif N_Z
      let dr1 = "Z" byte
    endif
  endif

  if dr1 <> 0
    let ar0 [dr0] = dr1  byte
    increment dr0
    if dr0 >= t.width
      let dr0 = t.width minus 1
    endif
  endif
endroutine

export routine soft_alphanum
  set REPEAT_En9 REPEAT_En10
  if !m_nextalpha
    D_FNSOFT Fn1 SY_CHAR_A_B
    D_FNSOFT Fn2 SY_CHAR_C_D
    D_FNSOFT Fn3 SY_CHAR_E_F
    D_FNSOFT Fn4 SY_CHAR_G_H
    D_FNSOFT Fn5 SY_CHAR_I_J
    D_FNSOFT Fn6 SY_CHAR_K_L
    D_FNSOFT Fn7 SY_CHAR_M_N
    D_FNSOFT Fn8 SY_CHAR_O_P
  else
    D_FNSOFT Fn1 SY_CHAR_Q_R
    D_FNSOFT Fn2 SY_CHAR_S_T
    D_FNSOFT Fn3 SY_CHAR_U_V
    D_FNSOFT Fn4 SY_CHAR_W_X
    D_FNSOFT Fn5 SY_CHAR_Y_Z
  endif
  D_FNSOFT Fn9  SY_CHAR_SPA
  D_FNSOFT Fn10 SY_CHAR_NXT
endroutine

export routine input_alphanum
  if newonkey
    store ar0 dr0 dr1
    if t.entry <> col_alpha or m_alphaclear
      clear dr0 alpha_pos
      let col_alpha = t.entry
      reset m_alphaclear
    endif
    let ar0 = t.pointer
    let dr0 = alpha_pos
    call scan_tast
    let alpha_pos = dr0
    endstore
  endif
endroutine

export routine disp_inv_alphanum
  if alpha_blink_timer = 0 or newonkey
    if newonkey
      reset alpha_inv
      let alpha_blink_timer = alpha_blink_rate
    elsif alpha_blink_timer = 0 
      toggle alpha_inv
      let alpha_blink_timer = alpha_blink_rate
    endif
   
    store ar0 dr0 ar2
    if t.entry <> col_alpha or m_alphaclear
      clear dr0 alpha_pos
      let col_alpha = t.entry
      reset m_alphaclear
    endif
    let ar0 = t.pointer
    let dr0 = alpha_pos
    let disp_char = ar0 [dr0] byte

;-- Nur für EDITOR --------------------------------
    if m_editor
      let  ar2 = e.tabcol mult VARSIZE plus e.intable
    else
      let ar2 = t.variable
    endif
;--------------------------------------------------
;-- Test !!!---------------------------------------
    let ar3 = t.fixd (ar2)  ; REL oder nicht?

;--------------------------------------------------
    let alpha_row = t.vrow (ar2) byte
    let alpha_col = t.vcol (ar2) byte
    increment alpha_col by alpha_pos byte
    let t.inv_sav = t.inv byte
    let t.inv = alpha_inv byte
    AT_CUR alpha_row alpha_col
    D_ASC  disp_char 1
    decrement alpha_col by alpha_pos byte
    AT_CUR alpha_row alpha_col
    let t.inv = t.inv_sav byte
    endstore
  endif
endroutine

Hier mal die Auflistung der Files,

Auflistung der Ordnerpfade
Volumenummer: 00003467 A057:648A
C:.
----NAT
----MA779
| MA779.BN0
| MA779.LNK
| MA779.MAP
| MA779.PRJ
| MA779.X
| NSDBG.WAT
| NSLAB.CFG
| SIMPL32
| USER.DEF
|
----DMPWIN
| AMP.WIN
| AUS.WIN
| AXPARA.WIN
| BAHN_CLR.WIN
| BILD_CAL.WIN
| CAL.WIN
| CC.WIN
| CHARS.WIN
| CHAR_A_B.WIN
| CHAR_C_D.WIN
| CHAR_E_F.WIN
| CHAR_G_H.WIN
| CHAR_I_J.WIN
| CHAR_K_L.WIN
| CHAR_M_N.WIN
| CHAR_NXT.WIN
| CHAR_O_P.WIN
| CHAR_Q_R.WIN
| CHAR_SPA.WIN
| CHAR_S_T.WIN
| CHAR_U_V.WIN
| CHAR_W_X.WIN
| CHAR_Y_Z.WIN
| COS.WIN
| CP.WIN
| DCHARS.WIN
| DIV.WIN
| DRASPD.WIN
| DRU.WIN
| EIN.WIN
| ENABLE.WIN
| HANDAUFN.WIN
| MEM.WIN
| MIN.WIN
| MUL.WIN
| NEXT.WIN
| NULL.WIN
| PAR.WIN
| PLU.WIN
| PRES.WIN
| QUI.WIN
| REC.WIN
| RESAUSL.WIN
| RESHUB.WIN
| RESROLLE.WIN
| RESWAG1.WIN
| RESWAG2.WIN
| ROHRAUFN.WIN
| ROHRENTL.WIN
| SENV.WIN
| SIN.WIN
| SPA.WIN
| SSTP.WIN
| START.WIN
| STOP.WIN
| TAN.WIN
| TANDEM.WIN
| TEACH.WIN
| VOLT.WIN
| WELDA.WIN
| WELDI.WIN
| WELD_EN.WIN
| WUR.WIN
|
----M
| ##.DM
| ##.M
| A3_0.CRD
| A3_0.PIO
| ABSDATA.M
| ALPHANUM.M ->Auszug siehe Code-Window.
| AXPARA.M
| BOXES.M
| CHECKLIM.M
| COMMANDS.TXT
| DEFAXES.M
| FEHLER.M
| GRENZDAT.M
| HAANE.CRD
| HANDLERS.M
| HYDRTEST.M
| INCDEC.M
| INTERCEP.M
| JOYSTICK.M
| KEYHAANE.M
| L1_0.CRD
| L1_0.PIO
| L1_1.CRD
| L1_1.PIO
| LOGIC.M
| MA779.M
| MASKEN.M
| MESSEN.M
| MOTOREN.TXT
| MSGS.M
| PORT3.M
| RESTPSAV.M
| RESTPULV.M
| ROHRABL.M
| ROHRAUFN.M
| SCHLITT.M
| SENSORS.M
| SOFTERRS.TXT
| TANDEM.M
| TEACH.M
| TEACHSAV.M
| TERMINAL.M
| TIMINT.M
| V3_0.CRD
| V3_0.PIO
| VIDCHARS.M
| VIDIMAGE.M
| VIDSYMB.M
| WELD.M
| WELDEDIT.M
| Z2_0.CRD
| Z2_0.PIO
|
----MACROS
PRINTMAC.I32
SIMPL32A.L32
SIMPL32A.LIB

nicht wundern wenn ihr über google den Text noch woanders findet, habe auch in anderen Foren die Frage gestellt, mit sehr nüchternem Ausgang - keine Antwort. Falls es ein simpl-code ist, hat jemand noch nen simpl-compiler irgendwo 'rumliegen'?

Gruss Robert
 
Also ich weiß nur, das es nicht C/C++, VB, Java, Java-Script, PHP, SQL, XML, Basic, BlitzBasic, Perl, Pascal, Lisp, Fortran, Ada, Smalltalk und Prolog sein kann.

Das sind zumindestens die wichtigsten Programmiersprachen und es bleiben noch jede Menge übrig die in Frage kommen können.
Ich selbst kenne den Syntax nicht und konnte auch nichts aus Suchmaschinen finden.
 
also programier sprache kenn ich auch nicht aber ich hab mal n bisschen nach den dateiendungen gegooglet und folgendes gefunden zu der *.prj bei wiki gefunden


.prj CodeVision-AVR Compiler für Mikrocontroller von Pavel Haiduc


möglciherweise ist dies der compiler also die datei mit dem namen
MA779.PRJ

nur hätte ich keine plan über den aufruf und hab auch nichts zu dem dateinamen gefunden aber vieleicht hilfts dir ja
 
Super! Ich werde mir das Programm CodeVision-AVR mal genauer ansehen. Habe heute mal den Eprom aus dem Terminal gezogen und ausgelesen, der Inhalt der .Rom passt. Ist nur doof das der mit Fenster ist... Bis auf ein paar Codesegmente davor und danach ist der gleich. Warscheinlich n Boot-Loader oder so. N schöner M27C1001, und was für eine Platzverschwendung, gerade mal 39,5K Programm benutzt. Ich liebe die guten alten DOS-Progs:
Vergleichen der Dateien MA779_extract.rom und TERMINAL_EXTRACT.ROM
FC: Keine Unterschiede gefunden
Also war das Programm und der source für die GUI, geil.

Ok, das ist ja schonmal viel Wert,

Danke und Gruss Robert
 
Die *.M Dateien sollten könnten zu einer Sprache namens MUMPS (ISO-M) gehören. Die ist zwar schon uralt, aber wird immer noch genutzt.

Hier ist die Seite der deutschen Usergroup.

MfG
onezero
 
Zurück
Oben