Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.retrocomputing > #54338 > unrolled thread

Problema BASIC IBM su ROM

Started byMarco Maccaferri <m.maccaf@gmail.com>
First post2022-06-26 15:28 +0200
Last post2022-06-27 10:31 +0000
Articles 8 — 4 participants

Back to article view | Back to it.comp.retrocomputing


Contents

  Problema BASIC IBM su ROM Marco Maccaferri <m.maccaf@gmail.com> - 2022-06-26 15:28 +0200
    Re: Problema BASIC IBM su ROM Ammammata <ammammata@tiscali.it> - 2022-06-26 14:20 +0000
      Re: Problema BASIC IBM su ROM Marco Maccaferri <m.maccaf@gmail.com> - 2022-06-26 17:47 +0200
    Re: Problema BASIC IBM su ROM Marco Maccaferri <m.maccaf@gmail.com> - 2022-06-27 07:58 +0200
      Re: Problema BASIC IBM su ROM Ammammata <ammammata@tiscalinet.it> - 2022-06-27 07:22 +0000
        Re: Problema BASIC IBM su ROM Nuzzler <nuzzo_dde@yahoo.it> - 2022-06-27 01:23 -0700
          Re: Problema BASIC IBM su ROM Marco Maccaferri <m.maccaf@gmail.com> - 2022-06-27 11:55 +0200
            Re: Problema BASIC IBM su ROM Ammammata <ammammata@tiscalinet.it> - 2022-06-27 10:31 +0000

#54338 — Problema BASIC IBM su ROM

FromMarco Maccaferri <m.maccaf@gmail.com>
Date2022-06-26 15:28 +0200
SubjectProblema BASIC IBM su ROM
Message-ID<t99muo$fla$1@gioia.aioe.org>
Salve,

Sto cercando di far andare il BASIC IBM 1.10 su ROM con un emulatore che 
sto scrivendo ma mi da un problema: in pratica non mi permette di 
assegnare alcun valore alle variabili e mi restituisce sempre Syntax error.

Una cosa tipo:
a=1
Syntax error

Tutto il resto pare funzionare, per quel poco che si riesce a fare senza 
variabili... ho provato a leggere dei dati con DATA 1,2,3 e successvo 
READ a,b,c e funziona.

Mi stavo chiedendo, non è che per caso ha una qualche forma di 
protezione per evitare che venisse usato sui cloni ?

Forse è improbabile dato il periodo storico ma è una settimana che ci 
sbatto la testa e non ne vengo a capo. L'emulazione del processore 
dovrebbe essere corretta almeno al 98%, il resto del sistema non è 
ancora finito ma passa il POST del BIOS ed esegue il BASIC quindi non è 
proprio malaccio...

Grazie per qualsiasi suggerimento.

Saluti,
Marco

[toc] | [next] | [standalone]


#54339

FromAmmammata <ammammata@tiscali.it>
Date2022-06-26 14:20 +0000
Message-ID<XnsAEC2A641E5495ammammatatiscaliit@65.108.165.7>
In reply to#54338
Il giorno dom 26 giu 2022 03:28:55p, *Marco Maccaferri* ha inviato su 
it.comp.retrocomputing il messaggio news:t99muo$fla$1@gioia.aioe.org. 
Vediamo cosa ha scritto:

> Una cosa tipo:
> a=1
> Syntax error
> 

due cent: non è che prima vuole un comando tipo LET ?

LET A=1



-- 
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [  da casa  ] ...........

[toc] | [prev] | [next] | [standalone]


#54340

FromMarco Maccaferri <m.maccaf@gmail.com>
Date2022-06-26 17:47 +0200
Message-ID<t99v27$67n$1@gioia.aioe.org>
In reply to#54339
Il 26/06/22 16:20, Ammammata ha scritto:

> Il giorno dom 26 giu 2022 03:28:55p, *Marco Maccaferri* ha inviato su
> it.comp.retrocomputing il messaggio news:t99muo$fla$1@gioia.aioe.org.
> Vediamo cosa ha scritto:
> 
>> Una cosa tipo:
>> a=1
>> Syntax error
>>
> 
> due cent: non è che prima vuole un comando tipo LET ?
> 
> LET A=1

E' abbastanza evoluto da non richiederlo, ma non cambia niente.
Nessuna assegnazione funziona:

let a=1
LET A=1
A$="abc"

Sempre syntax error. Come se non riconoscesse il simbolo uguale.

Anche da programma fa la stessa cosa

10 a=1
run
Syntax error in 10

Però se faccio

print a=1
  0
Ok

Per questo mi chiedevo se ci fosse qualche subdola protezione, perchè è 
il classico "malfunzionamento trappola" per scovare i pirati...

[toc] | [prev] | [next] | [standalone]


#54342

FromMarco Maccaferri <m.maccaf@gmail.com>
Date2022-06-27 07:58 +0200
Message-ID<t9bgu2$13hm$1@gioia.aioe.org>
In reply to#54338
Il 26/06/22 15:28, Marco Maccaferri ha scritto:

> Sto cercando di far andare il BASIC IBM 1.10 su ROM con un emulatore che
> sto scrivendo ma mi da un problema: in pratica non mi permette di
> assegnare alcun valore alle variabili e mi restituisce sempre Syntax error.
> 
> Una cosa tipo:
> a=1
> Syntax error
> 
> Tutto il resto pare funzionare, per quel poco che si riesce a fare senza
> variabili... ho provato a leggere dei dati con DATA 1,2,3 e successvo
> READ a,b,c e funziona.
> 
> Mi stavo chiedendo, non è che per caso ha una qualche forma di
> protezione per evitare che venisse usato sui cloni ?

Naturalmente il giorno dopo aver postato ho trovato il problema... si 
trattava ovviamente di un errore nell'emulazione del processore, avevo 
dimenticato di verificare l'override del segmento DS nelle istruzioni CMPS.

Grazie e scusate per il rumore...

Saluti,
Marco

[toc] | [prev] | [next] | [standalone]


#54343

FromAmmammata <ammammata@tiscalinet.it>
Date2022-06-27 07:22 +0000
Message-ID<XnsAEC35F5EC5421ammammatatiscalineti@127.0.0.1>
In reply to#54342
Il giorno Mon 27 Jun 2022 07:58:25a, *Marco Maccaferri* ha inviato su
it.comp.retrocomputing il messaggio news:t9bgu2$13hm$1@gioia.aioe.org.
Vediamo cosa ha scritto: 

> avevo 
> dimenticato di verificare l'override del segmento DS nelle istruzioni
> CMPS 

Ah, ecco...

«Mascetti: Tarapìa tapiòco! Prematurata la supercazzola, o scherziamo?
Vigile: Prego?
Mascetti: No, mi permetta. No, io... scusi, noi siamo in quattro... come se 
fosse antani anche per lei soltanto in due, oppure in quattro anche scribài 
con cofandina? Come antifurto, per esempio?
Vigile: Ma che antifurto, mi faccia il piacere! Questi signori qui stavano 
sonando loro, 'un s'intrometta!
Mascetti: Ma no, aspetti, mi porga l'indice. Ecco, lo alzi così, guardi, 
guardi, guardi... lo vede il dito? Lo vede che stuzzica? E prematura anche! 
Ma allora io le potrei dire, anche con il rispetto per l'autorità, che 
anche soltanto le due cose come vicesindaco, capisce?
Vigile: Vicesindaco? Basta 'osì, mi seguano al commissariato, prego!
Perozzi: No, no, no, attenzione! No! Pàstene soppaltate secondo l'articolo 
12, abbia pazienza, sennò... posterdati, per due, anche un pochino antani 
in prefettura...
Mascetti: Senza contare che la supercazzola prematurata ha perso i contatti 
col tarapìa tapiòco!
Perozzi: Dopo!»



-- 
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........

[toc] | [prev] | [next] | [standalone]


#54344

FromNuzzler <nuzzo_dde@yahoo.it>
Date2022-06-27 01:23 -0700
Message-ID<606270f6-e940-46fa-ba1b-45a096f2c641n@googlegroups.com>
In reply to#54343
Il giorno lunedì 27 giugno 2022 alle 09:22:32 UTC+2 Ammammata ha scritto:

> > avevo dimenticato di verificare l'override del segmento DS nelle istruzioni 
> > CMPS

> Ah, ecco... 

CMPS: "compares two strings (actually, two arrays)". 
Ganzo.

Segmento DS: "Data Segment"
http://www-lia.deis.unibo.it/Courses/FondII/80861.pdf
"Lo spazio di memoria indirizzabile dalla CPU è diviso in segmenti logici 
(massimo 64k byte). La CPU può accedere direttamente a 4 segmenti per
volta (massimo 256k byte)"

Override di un segmento: 
https://www.includehelp.com/embedded-system/segment-override-prefix-8086-microprocessor.aspx
"the effective address is calculated by appending the segment registers value
and adding up the value of the respective offset. But what if we want to choose
some other offset than the assigned one.
This freedom is provided to us in 8086 microprocessor through the concept of
Segment override prefix."

Mi pare che la gestione della memoria nei processori x86 possa diventare una
bella fonte di grattacapi...

Nuzzler

[toc] | [prev] | [next] | [standalone]


#54345

FromMarco Maccaferri <m.maccaf@gmail.com>
Date2022-06-27 11:55 +0200
Message-ID<t9bur9$10uf$1@gioia.aioe.org>
In reply to#54344
Il 27/06/22 10:23, Nuzzler ha scritto:

> CMPS: "compares two strings (actually, two arrays)".
> Ganzo.
> 
> Segmento DS: "Data Segment"
> http://www-lia.deis.unibo.it/Courses/FondII/80861.pdf
> "Lo spazio di memoria indirizzabile dalla CPU è diviso in segmenti logici
> (massimo 64k byte). La CPU può accedere direttamente a 4 segmenti per
> volta (massimo 256k byte)"
> 
> Override di un segmento:
> https://www.includehelp.com/embedded-system/segment-override-prefix-8086-microprocessor.aspx
> "the effective address is calculated by appending the segment registers value
> and adding up the value of the respective offset. But what if we want to choose
> some other offset than the assigned one.
> This freedom is provided to us in 8086 microprocessor through the concept of
> Segment override prefix."
> 
> Mi pare che la gestione della memoria nei processori x86 possa diventare una
> bella fonte di grattacapi...

Abbastanza... ma più per la programmazione che per l'emulazione 
(semprechè ti ricordi di applicare l'override... :-) ).

Saranno quasi 30 anni che non programmo in assembler 8086 ma ricordo che 
a volte si impazziva a capire perchè un programma non funzionava per poi 
scoprire che si leggevano i dati dal segmento sbagliato...

[toc] | [prev] | [next] | [standalone]


#54347

FromAmmammata <ammammata@tiscalinet.it>
Date2022-06-27 10:31 +0000
Message-ID<XnsAEC37F6D5ECAEammammatatiscalineti@127.0.0.1>
In reply to#54345
Il giorno Mon 27 Jun 2022 11:55:53a, *Marco Maccaferri* ha inviato su 
it.comp.retrocomputing il messaggio news:t9bur9$10uf$1@gioia.aioe.org. 
Vediamo cosa ha scritto:

> Saranno quasi 30 anni che non programmo in assembler 8086 

per me sono di più :/ e ovviamente non ricordo assolutamente nulla

-- 
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........

[toc] | [prev] | [standalone]


Back to top | Article view | it.comp.retrocomputing


csiph-web