amine
Eurobricks Citizen-
Posts
194 -
Joined
-
Last visited
Content Type
Profiles
Forums
Gallery
Everything posted by amine
-
This is what I mean, what is the reason for this. It can only be connected to the interface A on the constant output....
-
@Toastie @diegobaca@evank Is it possible to transform the interface A as a RCX like Box ? Running it on classic batteries ? And adding an arduino screen ? We could then call it the advanced interface A or the Super interface A. Are we sure the constant 4 volts output on the interface A isn't reversible ? I have seen a picture with a dc adapter terminated with a Lego connector.
-
It seems vice emulator have settings for handling the C64 user port and the PC serial com ports. But I don't know if it can redirect the data from one to another, probably not.
-
In the Danish museum I just figured out LegoLines has written CPM.... I don't understand very well what does it mean.. https://datamuseum.dk/aa/cpm/1b/1b8e2c0ec.html
-
Thank you Diego that historically the main computers that supported the interface A. There was also Dosvice that I tried but I couldn't get it working with either dosbox x or dosbox. https://vice-emu.sourceforge.io/ https://sourceforge.net/projects/vice-emu/files/releases/binaries/dos/vice31.zip/download This is a dos version of the BBC BASIC. https://www.bbcbasic.co.uk/bbcbasic/bbcdos.html
-
I would like to try to communicate with the interface A from different dos emulators. Patching the emulators or patching the Rom could work ....?
-
upgrading ASAP DOS BBC emulator https://emutopia.com/index.php/emulators/item/307-acorn-bbc-micro/102-b-em proper CWSDPMI.EXE file to replace the original for compatibility with dosbox https://www.delorie.com/djgpp/dl/ofc/simtel/v2misc/csdpmi5b.zip/ F11 for the emulator menu and ctrl F10 for dosbox mouse *CAT for exploring the disk select INTRO and type LOAD "INTRO" and RUN you can find lego lines image here https://www.mybbcmaster.nl/educ_lego.html herse is lego lines intro screen we can try the 9760 disk https://www.flaxcottage.com/Educational/software/LEGO/Data/Data_Download.zip LOAD "DATLOAD" RUN @evank @diegobaca @Toastie if I peek and Poke from the emulator can I acces the interface A ? For fun I also tryed APPLER the AppleII dos emulator https://learn.adafruit.com/appler-apple-ii-emulator-for-dos/installation-and-setup download the bin folder on github and install in tc connect https://github.com/zajo/appler Pc64 the C64 emulator works well https://www.zimmers.net/anonftp/pub/cbm/crossplatform/emulators/pc64/pc64e122.zip now the problem is how to get out of those emulator and go to the interface A ......?
-
I used a fake name, the file was too complicated to edit them I just renamed comal as Gwbasic.
-
There was some missing confirmation keys when quitting and overwriting files on Lego lines , I have corrected those issues and reuploaded the fixed lines2.exe on archive. Also for test here is how to blink the first interface A output for two secs using Comal 80. Keep in mind You need to define wait() with your own procedure. the line 110 means repeat nothing until the computer timer reach the time limit fixed at line 100 save "filename" for saving load "filename and list for loading run for executing bye is used for quitting comal 80
-
Received it 👍 thanks Diego !!! @Toastie @diegobaca To quit Lego lines the original command is ctrl+F8 but in my dosbox installation I can force quitting with ctrl+F9 on TC logo and logowriter I type dos in the bottom command line and that bring me back to dos. for comal 80 type "bye" to quit
-
Breaking News @Bliss @Jos Visser @evank @Toastie @alexGS @diegobaca I tryied Comal 80 for IBM with the interface A on a real 9771 isa card and it works great !! https://archive.org/details/comal-80 If you want to test quickly try only these two commands: use system out (925,1) the 925 refer to the port number of the 9771 card and the number 1 to turn on the first output and 0 to turn it off out (925,0) turn off the first output This is nice because there are activities on the 9760 set that use comal 80 on C64 instead of basic
-
@Bliss @Jos Visser @evank @Toastie @alexGS @diegobaca Hello Jos welcome !!! I think this is Jos official githib. https://github.com/josvisser66/opencomal The Win precompiled executable is available on startdot https://stardot.org.uk/forums/viewtopic.php?t=22800 Or directly at Jos website http://www.josvisser.nl/tmp/opencomal.exe The UNICOMAL PC Dos IBM version also is archived on The Danish Data Historical Association (DDHF). https://www.datamuseum.dk/wiki/Bits:30003627 https://datamuseum.dk/bits/30003627 I uploaded that disk from the Danish museum to archive https://archive.org/details/comal_202608 All versions of comal are already archived here: https://archive.org/details/@amiblitz94 The Comal 80 for IBM https://archive.org/details/comal-80 Here is a nice series of tutorial on youtube. I used google AI for translating an example from the Lego line manual: Here is the complete translation and technical explanation of the COMAL program . Text and Code Translation Introductory Text 5. Comal The interface can be addressed with the help of the Comal package 'System' via the 'OUT' and 'INP' instructions. The physical address of the interface (hexadecimal 39D or decimal 925) is known. Input and output are done byte-wise with 8 bits in parallel. The lamps and the buttons are controlled via their bit weight. The waiting time in the time control must be calculated via the 'TIMER' value. With the help of hardware-oriented procedures and constants, a model-oriented programming environment can be created. Translated Source Code 0010 // Traffic Light Control 0020 USE system 0030 green:=1 0040 yellow:=2 0050 red:=4 0060 redyellow:=6 0070 turn_lights_off 0080 main_street(green) 0090 side_street(red) 0100 // 0110 REPEAT 0120 x$:=KEY$ 0130 IF button_pressed=1 THEN demand_light 0140 IF button_pressed=2 THEN night_operation 0150 UNTIL x$<>"" 0160 END 0170 // 0180 PROC demand_light 0190 main_street(yellow) 0200 wait(1.5) 0210 main_street(red) 0220 wait(1) 0230 side_street(redyellow) 0240 wait(1.5) 0250 side_street(green) 0260 wait(3) 0270 side_street(yellow) 0280 wait(1.5) 0290 side_street(red) 0300 wait(1) 0310 main_street(redyellow) 0320 wait(1.5) 0330 main_street(green) 0340 wait(3) 0350 ENDPROC demand_light 0360 // 0370 PROC night_operation 0380 turn_lights_off 0390 WHILE (button_pressed<>0) DO 0400 side_street(yellow) 0410 wait(1) 0420 turn_lights_off 0430 wait(1) 0440 ENDWHILE 0450 wait(1) 0460 side_street(red) 0470 main_street(green) 0480 ENDPROC night_operation 0490 // 0500 PROC turn_lights_off 0510 out(925,0) 0520 ENDPROC turn_lights_off 0530 // 0540 PROC main_street(nr) 0550 out(925,nr*8+(inp#(925) BITAND 7)) 0560 ENDPROC main_street 0570 // 0580 PROC side_street(nr) 0590 out(925,nr+(inp#(925) BITAND 56)) 0600 ENDPROC side_street 0610 // 0620 FUNC button_pressed 0630 CASE (inp#(925) BITAND 192) OF 0640 WHEN 0 0650 RETURN 0 0660 WHEN 128 0670 RETURN 2 0680 OTHERWISE 0690 RETURN 1 0700 ENDCASE 0710 ENDFUNC button_pressed 0720 // 0730 PROC wait(n) CLOSED 0740 ti:=TIMER+n 0750 REPEAT UNTIL ti<=TIMER 0760 ENDPROC wait Technical Explanation 1. Hardware Interface & Bit Mapping The program communicates directly with a hardware interface at decimal I/O port address 925 using an 8-bit architecture (bits 0 to 7): Bits 0–2 (Side Street Lights): Map directly to Green (1), Yellow (2), and Red (4). Bits 3–5 (Main Street Lights): Shifted left by 3 positions (nr * 8). Green becomes 8, Yellow becomes 16, and Red becomes 32. Bits 6–7 (Buttons): Used for inputs. The BITAND 192 instruction masks out all other bits to isolate these two pins. 2. Main Execution Loop (Lines 0110–0160) The program starts by setting the main street to green and the side street to red. It then runs an infinite loop checking for hardware button presses. The loop safely breaks if any keyboard key (KEY$) is pressed on the host computer. 3. Operational Modes Demand Light (demand_light): Triggered when a pedestrian or car registers on Button 1. It executes a full, sequenced traffic light cycle to safely give the side street a green window before reverting back to main street priority. Night Operation (night_operation): Triggered by Button 2. It switches the system into a flashing yellow alert mode for the side street until the button state changes, after which it safely resets back to the default state. 4. Low-Level Control Functions Bitwise Isolation (BITAND): When updating one street's lights, the program reads the current byte (inp#(925)), uses a bitmask to preserve the state of the other street/buttons, adds the new lamp values, and writes it back out. Timer Delay Loop (wait): Since legacy systems do not have a built-in pause function, this creates a hardware delay by reading the system TIMER ticks and looping tightly until the targeted duration has elapsed. now what I need to do is to test the comal example in both the unicomal and opencomal exe and make sure the program is working.
-
That's so amazing. I am contacting the developper of open comal to see if his Dos software can work with Diego's interface. The developper explain in his website that he would like to use opencomal to program mindstorms. "My restless mind is already contemplating various extensions and activities: packages (the UniComal USE statement), native code integration (e.g. modules written in C), porting it to Win32 (should be really easy but I don't like to use Windows), compiling it for MsDos (I already got the code for that, but no MsDos system :-) and in my most careless moments I am even thinking about porting it to my Lego Mindstorms "brick" (so as to let OpenComal programs control the robots you can build with MindStorms)." You can read about Comal here. https://www.josvisser.nl/opencomal/www/article.html
-
@Normann1974You can find the 1090 1092 cards scan here: https://lukazi.blogspot.com/2014/07/lego-legos-first-programmable-product.html?m=1 @Toastie @evank At least we know what to look for. Also the cables are very unusual, the adaptor on the right is directly terminated with a lego connector. I dont understand the purpose of this modification.
-
@Normann1974 @Toastie @alexGS I am dying to see all the documents of that precious folder. Pictures pictures!!! By the way this disk "Hold styr på robotterne" ("Control the robots") is very very rare and contains examples from a book to control robots using comal on C64 and piccoline. Nothing to do then with lego lines. https://bibliotek.dk/materiale/hold-styr-paa-robotterne-med-comal-80_boerge-r-christensen-f-1931-/work-of%3A870970-basis%3A08262705
-
@Normann1974I think only the brochure has been scanned https://www.retro-commodore.eu/2021/08/27/lego-technic-control-1988/ https://www.retro-commodore.eu/download.php?file=LEGO_Technic_Control_1988.pdf You can post more pictures using this https://postimages.org/ After uploading your pictures just copy the second link I am very curious about that disk if it was Lego Lines it should be title the same on the disk.
-
It seems we are getting a 100% english Lego Lines after all, google AI was abble to locate the confirmation keys. I am currently making the changes and it seems to work. Probably the same method can be applied for C64 version. "I have located the exact instruction offsets within the binary where the confirmation keys are verified. The program performs classic x86 assembly CMP AL, imm8 (Compare AL register with immediate byte) checks to validate the user input against both lowercase 'o' (6Fh) and uppercase 'O' (4Fh). Here are the target offsets and the bytes you need to modify: 🛠️ Hex Modification Details Lowercase confirmation ('o' ➡️ 'y'): File Offset: 0x103E Original Bytes: 3C 6F (cmp al, 'o') Change To: 3C 79 (cmp al, 'y') Uppercase confirmation ('O' ➡️ 'Y'): File Offset: 0x1042 Original Bytes: 3C 4F (cmp al, 'O') Change To: 3C 59 (cmp al, 'Y') 🔍 Context from Binary assembly 0x103E: 3C 6F cmp al, 6Fh ; Checks for 'o' 0x1040: 74 04 jz +4 ; Jump if equal (to confirmation logic) 0x1042: 3C 4F cmp al, 4Fh ; Checks for 'O' 0x1044: 75 03 jnz +3 ; Jump if not equal (skips confirmation) Use code with caution. By changing 6F to 79 and 4F to 59 using any hex editor (like HxD or xxd), the prompt will successfully accept 'y' and 'Y' as valid confirmation keys instead." UPDATE......... To change the confirmation key from 'o' / 'O' to 'y' / 'Y', you need to locate the conditional character comparison sequence inside the binary file and modify the target ASCII character hex values. 🔍 Locating the Target Sequence In the compiled 16-bit x86 assembly structure of this program, the keyboard input check uses the following sequence to detect the confirmation keys: Original Hex Pattern: 80 3D 4F 74 ... 80 3D 6F 75 Text/Character Representation: €=Ot €=ou This translates to the assembly instructions: cmp byte ptr [di], 4Fh ; Compare input with 'O' (4Fh) jz ... ; Jump if equal cmp byte ptr [di], 6Fh ; Compare input with 'o' (6Fh) jnz ... ; Jump if not equal 🛠️ The Modification To replace this verification with 'Y' (Hex: 59) and 'y' (Hex: 79), change the characters within that sequence: Open your binary file in any Hex Editor (such as HxD, Bless, or xxd). Search for the text string: €=Ot €=ou (or the hex values 80 3D 4F 74 and 80 3D 6F 75). Replace the character O (4F) with Y (59). Replace the character o (6F) with y (79). Modified Hex Pattern: 80 3D 59 74 ... 80 3D 79 75 New Text Representation: €=Yt €=yu Save the file, and the application will now seamlessly accept Y or y as the confirmation keys instead!
-
@diegobaca @Toastie@evank @alexGS @Mr Hobbles @Bliss I have made some modifications to fit Alex translation of Legolines for C64. C64 english translation https://archive.org/details/en-legolines IBM english translation https://archive.org/download/lego-lines-ms-dos-english All Alex sample files from the C64 have been included and now the confirmation will show "(O for Yes/ N for No)" Just remember to click the "O" key instead of your "Y" key for "Yes". Apart of that it is 100% english. Also remember the F5 function key is used for loading and saving your files. Also added message to show that it is an unofficial translation. Side by side the IBM and C64 vestions
-
I was specifically thinking about his plotter code library. It it possible to control the 1092 plotter using logo or basic ? I was specifically thinking about his plotter code library. Is it possible to control the 1092 plotter using logo or basic for printing a file like his project does ?
-
https://github.com/Atkelar/LegoControlDriver @diegobaca @Toastie@evank @alexGS @Mr Hobbles @Bliss There was another project by Atkelar with arduino and 1092 plotter driver support. Is it possible to integrate it somehow inside your current projects ?
-
Dacta Control Lab Software
amine replied to Dazmundo's topic in LEGO Technic, Mindstorms, Model Team and Scale Modeling
Thank you so much !!!