Is deze code Xbasic of ander basic dialect?

Pagina: 1
Acties:
  • 779 views

Vraag


Acties:
  • 0 Henk 'm!

  • mimi040
  • Registratie: Oktober 2010
  • Laatst online: 17-04 23:17
Beste Tweakers,

Ik wat broncode ontvangen voor het aansturen van apparatuur.
Het betreft code geschreven in een basic dialect.
Het lijkt XBasic te zijn maar als ik het probeer te compileren lukt het niet.
Maar het is mij onduidelijk of dit komt de xbasic IDE of doordat het een ander basic dialect is.
Wie kan mij vertellen of de code hieronder Xbasic is?

...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
'PrograillJD zur Steuerung eines !1W-Generators über RS-232 Schnittstelle
'Version 2 . 21, 9600 Baud, COMl, 20.01.1993
'MUEGGE ELECTRONIC GmbH, Mergbachstrasse 56, 6101 Reichelsheim
'Telefon 06164/2002
DECLARE SUB RAHMEN ()
DECLARE SUB ANAIN ()
DECLARE SUB ANAOUT ()
DECLARE SUB CUROUT ()
DECLARE SUB PERIOUT ()
DECLARE SUB PULSOUT ()
DECLARE SUB TIME ()
DECLARE SUB DIGOUT ()
DECLARE SUB STATUS ()
DECLARE SUB STATMASK ()
DECLARE SUB FEHLHAND ()
DECLARE FUNCTION Myinput% (col%, row%, length%, s$)
DECLARE FUNCTION GetKey% ()
DECLARE SUB StrOutput (col%, row%, StrPos%, s$)
DECLARE SUB Erlaubt (ch%, length%, StrPos%, s$)
DECLARE FUNCTION Trim$ (s$, length%)
DECLARE SUB EditKey ( ch%, length%, StrPos% , s$)

'Vereinbarung globaler Variablen
DIM SHARED DIGIOUT
DIM SHARED DIGIOUTC
DIM SHARED PULS
DIM SHARED PERIOD
DIM SHARED TEILER

'Konstantendefinition: Sondertasten-ASCII-Codes
CONST KEYRETURN% = 13
CONST KEYESC% = 27
CONST KEYRIGHT% = 77 + 255
CONST KEYLEFT% = 75 + 255
CONST KEYHOME% = 71 + 25.5
CONST KEYEND% = 79 + 255
CONST KEYDEL% = 83 + 255
CONST KEYBACK% = 8

'Konstantendefinition: Grafikzeichen
CONST HORIZONTAL$= "-"
CONST VERTIKAL$ = "|"
CONST TOPLEFT = "r"
CONST TOPRIGHT = "1"
CONST BOTTOMLEFT = ""
CONST BOTTOMRIGHT = ""
CONST VERTMIDLEFT = "~"
CONST VERTMIDRIGHT = "1"
CONST HORIZONTALDOP = "="
CONST VERTMIDLEFTDOP = "~"
CONST VERTMIDRIGHTDOP = "9 11"
'COPYRIGHT:

'Fehlerbehandlung Schnittstelle aktivieren
ON ERROR GOTO FEHLER

'Löschen des gesamten Bilclschinns
LOCATE , , 0
COLOR, 1
CLS

'Inizialisierung der Schnittstelle
OPEN "COMl:9600,N,8,l" FOR RANDOM AS #1

'Beginn des Gesamtprogra:mms
BEGINN:

'Aufbau der Bildschirm-Rahmen
CALL RAHMEN

'Aufbau statische Bildschirm-Maske
CALL STATMASK

'Grundeinstellung des MW-Generator
' Ausgabeport. 1 abschalten (Adresse O)
PRINT #1, CHR$(0); CHR$(32);
CALL TIME
DIGIOUT = 0
PRINT #1 , CHR$(0); CHR$(DIGIOUT);

' Ausgabeport 2 abschalten (Adresse 96)
PRINT #1, CHR$(96); CHR$(2);
CALL TIME
DIGIOUTC = 0
PRINT #1, CHR$(96); CHR$(DIGIOUTC);

' Pulsgenerator auf Grundwerte einstellen
'Pulsgenerator Zähler O auf 1 us einstellen (4MHz Clock/4) Adresse 64- 67
TEILER= 4
PRINT #1, CHR$(67); CHR$ (54);
PRINT #1, CHR$(64); CHR$ (TEILER); CHR$(64); CHR$(0);

'Pulsgenerator Zähler 1 Periode auf 50 us einstellen
PERIOD = 50
PRINT #1, CHR$(67); CHR$(118);
PRINT #1, CHR$(65); CHR$(PERIOD); CHR$(65); CHR$(0);

'Pulsgenerator Zähler 2 Puls auf 10 us e•instellen
PULS= 10
PRINT #1, CHR$(67); CHR$(178);
PRINT #1, CHR$(66); CHR$(PULS); CHR$(66); CHR$(0);

'Bildschirmmaske auf Eingrangsstellung
LOCATE 3, 52
COLOR 15, 6
PRINT " OFF "
LOCATE 3, 69
COLOR 15, 6
PRINT " OFF "

'Microwellen-·Sollwert auf 0% (Adresse 32)
PRINT #1, CHR$(32); CHR$(0);

'Strom-Sollwert auf 0% (Adresse 112)
PRINT #1, CHR$(112); CHR$(0);

'Hauptprogramm
EINGABE:

'Einlesen des Generator Status und Ausgabe auf dem Bildschirm
CALL STATUS

'Einlesen des Istwertes und der Reflexion vom Generator
CALL ANAIN

'Ausgabe der Steuersignale ZUlll Generator
CALL DIGOUT

GOTO EINGABE

END

'Fehlerbehandlung der Seriellen Schnittstelle
FEHLER:
CALL FEHLHAND
RESUME BEGINN

SUB ANAIN
'Einlesen des Istwertes, der Reflexion und des Stromes vom Generator

'A/D-Wandler Kanal o auf 8 Bit einstellen
PRINT #1, CHR$(48); CHR$(0);
CALL TIME
PRINT #1, CHR$(177);

'Einlesen der Leistung und Ausgabe
POWER = ASC ( INPUT$ ( 1, #1) )
POWER = CINT( ( 100 * POWER) / 255)
LOCATE 9 , 40 , 0
COLOR 15, 5
PRINT USING "###"; POWER

'A/D-Wandler Kanal 1 auf 8 Bit einstellen
PRINT #1, CHR$(48); CHR$(1);
CALL TIME
PRINT #1, CHR$(177);

'Einlesen der Reflexion und Ausgabe
REFLEX = ASC ( INPUT$ ( 1, #1))
REFLEX = CINT( (100 * REFLEX) / 255)
LOCATE 9, 68, 0
COLOR 15, 5
PRINT USING "###"; REFLEX

'A/D-Wandler Kanal 2 auf B Bit einstellen
PRINT #1, CHR$(48); CHR$(2);
CALL TIME
PRINT #1, CHR$(177);

'Einlesen des Stromes und Ausgabe
STROM = ASC ( INPUT$ ( 1, #1) )
STROM = CINT( (100 * STROM) / 255)
LOCATE 19, 58, 0
COLOR 15, 5
PRINT USING "###"; STROM
END SUB

SUB ANAOUT
'Eingabe des Sollwertes und Ausgabe zum Generator

STATIC ANALOGOUT
BEGI:

'Eingaberoutine Myinput% zur Eingabe des Sollwertes
COLOR 15, 5
x% = Myinput%(15, 9, 3, s$)
ANALOG = VAL(s$)
IF ANALOG> 100 THEN
    BEEP
    LOCATE 9, 15, 0
    GOTO BEGI
else
    LOCATE 9, 15, 0
    PRINT USING "###"; ANALOG
    ANALOGOUT = ANALOG
end if

'Ausgabe des analogen Sollwertes zmn Generator
'A/D-Wandler 0-lOV
VALUE = CINT( ( 255 * ANALOGOUT) / 100)
PRINT #1, CHR$(32); CHR$(VALUE);

END SUB

SUB CDROUT
'Eingabe des Stromwertes und Ausgabe zum Generator

STATIC CURROUT
BEGIN:

'Eingaberoutine Myinput% zur Eingabe des Stromwertes
COLOR 15, 5
x% = Myinput-%(25, 19, 3, :s$)
ANALOGCUR = VAL(s$)
IF ANALOGCUR > 100 THEN
    BEEP
    LOCATE 19, 25, 0
    GOTO BEGIN
ELSE
    LOCATE 19, 25, O
    PRINT USING "###"; ANALOGCUR
    CURREOUT = ANALOGCUR
END IF

'Ausgabe des analogen Sollwertes ZUlll Generator
'AjD-Wandler 0-lOV
VALUECUR = CINT((255 * CU.RREOUT) / 100)
PRINT #1, CHR$(112); CHR$(VALUECUR);

END SUB

SUB DIGOUT
'Ausgabe der Steuersignale zum Generator

SHARED FUNKT$

'Abfrage der Steuerzeichen
FUNKT$= UCASE$(INKEY$)
SELECT CASE FUNKT$
    CASE "D"
        GOTO STANDBY
    CASE "U"
        GOTO PULSE
    CASE "A"
        GOTO START
    CASE "O"
        GOTO STOPP
    CASE "R"
        GOTO RESETT
    CASE "N"
        GOTO ONC
    CASE "F"
        GOTO OFFC
    CASE "S"
        GOTO RESETC
    CASE "V"
        GOTO VALUE
    CASE "L"
        GOTO CURRENT
    CASE "E"
        GOTO PERIODE
    CASE "P"
        GOTO PULSSEE
    CASE ""
        GOTO FINISHE
END SELECT

'Ausgabe Piep-Ton bei falschem Steuerzeichen
BEEP
GOTO FINISHE

'Ausgabe BIT 3 ( z18) 11Standby ON/OFF"
STANDBY:
TEST = DIGIOUT AND 247
DIVIS= DIGIOUT - TEST
IF DIVIS= 0 THEN
    DIGIOUT = DIGIOUT + 8
    LOCATE 3, 52, 0
    COLOR 15, 2
    PRINT " ON " ;
    COLOR 15, 1
    PRINT " "
ELSE
    DIGIOUT = DIGIOUT - 8
    LOCATE 3, 52, 0
    COLOR 15, 6
    PRINT " OFF "
end if
goto finish

'Ausgabe BIT 5 (b12) "Pulse ON/OFF"
PULSE:
TEST = DIGIOUT AND 239
DIVIS = DIGIOUT - TEST
IF DIVIS= 0 THEN
    DIGIOUT = DIGIOUT + 16
    LOCATE 3, 69, 0
    COLOR 15, 2
    PRINT " ON ";
    COLOR 15, 1
    PRINT " "
ELSE
    DIGIOUT = DIGIOUT - 16
    LOCATE 3, 69, 0
    COLOR 15 , 6
    PRINT" OFF"
END IF
GOTO FINISH

'Ausgabe Bit 1 (z30) "Start"
START:
TEST= DIGIOUT AND 253
DIVIS= DIGIOUT - TEST
IF DIVIS= 0 THEN
    DIGIOUT = DIGIOUT + 2
ELSE
    GOTO FINISH
END IF
GOTO FINISH

'Ausgabe Bit 1 (z30) "Stop"
STOPP:
TEST= DIGIOUT AND 253
DIVIS= DIGIOUT - TEST
IF DIVIS= 0 THEN
    GOTO FINISH 
ELSE
    DIGIOUT = DIGIOUT - 2
END IF
GOTO FINISH 

'Ausgabe Bit 5 (b12) "Reset"
RESETT:
    DIGIOUT = DIGIOUT + 32
    PRINT #1, CHR$(0); CHR$(DIGIOUT);
    CALL TIME
    DIGIOUT = DIGIOUT - 32

'Rücksetzen des standby-Bit
TEST= DIGIOUT AND 247
DIVIS= DIGIOUT - TEST

IF DIVIS== 0 THEN
    GOTO STOOP
ELSE
    DIGIOUT = DIGIOUT - 8
    LOCATE 3, 52, 0
    COLOR 15, 6
    PRINT" OFF•
END IF

'Rücksetzen dles Start-Bit
STOOP:
TEST= DIGIOUT AND 253
DIVIS= DIGIOUT - TEST
IF DIVIS= 0 THEN
    GOTO FINISH
ELSE
    DIGIOUT = DIGIOUT - 2
END IF

GOTO FINISH

FINISH:
'Ausgabe des digitalen Steuerwortes 1 (Adresse 0)
PRINT #1, CHR$ ( 0) ; CHR$ ( DIGIOUT);
GOTO FINISHE

'Ausgabe Bit O ( STl/13) "CUrrent ON"
ONC:
TEST= DIGIOUTC AND 254
DIVIS= DIGIOOTC - TEST
IF DIVIS= 0 THEN
    DIGIOUTC = DIGIOUTC + 1
ELSE
    GOTO FINISHC
END IF
GOTO FINISHC

'Ausgabe Bit O (STl/13) "Current OFF"
OFFC:
TEST= DIGiourc AND 254
DIVIS= DIGIOUTC - TEST
IP DIVIS= 0 THEN
    GOTO FINISHC
ELSE
    DIGIOUTC = DIGIOUTC - 1
END IF
GOTO FINISHC

'Ausgabe Bit ). ( St1/14) "CUrrent RESET"
RESETC:
    DIGIOUTC = DIGIOUTC + 2
    PRINT #1, CHR$(96); CHR$(DIGIOUTC};
    CALL TIME
    DIGIOUTC = DIGIOUTC - 2

'Rücksetzen des Start~Bit
TEST= DIGIOUTC AND 254
DIVIS= DIGIOUTC - TEST
IF DIVIS= 0 THEN
    GOTO FINISHC
ELSE
    DIGIOUTC = DIGIOUTC - 1 
END IF

FINISHC:
'Ausgabe des digitalen stieuerwortes 2 (Adresse 96)
PRINT #1, CHR$(96); CHR$(DIGIOUTC);

GOTO FINISHE

SUB Erlaubt (ch% , length% , StrPos%, s$)

'   Funktion: Fügt ein eingegebenes Zeichen in den Eingabestring ein
'   Hin:    ch% : Zeichencode
'       length% : Maximale Eingabelänge I StrPos% : Aktuelle Cursorposition im Eingabestring ,
'               s$ : Eingabestring
'
'   Zurück : StrPos% : neue Cursorposition
'               s$ : editierter Eingabestring

    ch$ = CHR$ (ch%)
    IF RIGHT$(s$, l) = " " THEN
        s$ = LEFT$(s$, StrPos% - 1) +ch$+ MID$(s$, StrPos%)
        strPos% = StrPos% + 1
    ELSE
        BEEP
    END IF
END SUB

SUB FEHLHAND
'Fehlerbehandlung der Seriellen Schnittstelle
SELECT CASE ERR
        CASE 24
            FEHL$ = " MW-Generator nicht erreichbar " 
        CASE 25
            FEHL$ = " Verbindung zum MW-Generator gestört "
        CASE
            FEHL$ = " Verbindung zum MW-Generator unterbrochen "
END SELECT

LOCATE 7, 5
COLOR, l
PRINT "
LOCATE 7, 8
COLOR 31, 4
PRINT FEHL$
LOCATE 7, 54
COLOR 15, 1
PRINT "Neuer Versuch:";
COLOR 0, 3
PRINT " J/N ";
IN:
NEU$ = UCASE$(INKEY$)
SELECT CASE NEU$
    CASE "J"
        GOTO NEU
    CASE "N"
        GOTO ENDE
    CASE ELSE
        GOTO IN
END SELECT

ENDE:
'Löschen des gesrunten Bildschirms
LOCATE , , 0
COLOR 15, 0
CLS

SYSTEM

NEU:
LOCATE 7, 5
COLOR , 1
PRINT "
END SUB

FUNCTION GetKey%
'   Funktion: wartet auf eine Taste und prüft,
'       ob normale oder Sondertaste gedrückt .
'   Fkt.Wert: Taste, bei Sondertasten Tastencode+ 255

    DO
        ch$= INKEY$
    LOOP WHILE ch$= ""

    IF LEN(ch$) = 1 THEN
        GetKey% = ASC(ch$)
    ELSE
        GetKey% = ASC(RIGHT$(ch$, 1)) + 255
    END IF
END FUNCTION

FUNCTION Myinput% (col%, row%, length%, s$)

'   Funktion: Eingaberoutine ähnlich der, die das QuickBasic-System
'       verwendet, allerdings etwas einfacher.
'   Hin :col%   : Startspalte der Eingabezone
'   Zurück :
'   Fkt.Wert:
    ' row% : Startzeile der Eingabezone
    ' length%: Länge der Eingabezone
    ' vor$ : Vorgabestring
    ' s$ : Eingabe


        s$ = :mit <Return> beendet
    O = mit <Esc> beendet
    StrPos% = 1
    s$ = vor$
    DO
        s$ = Trim$( (s$), (length%))
        CALL Str0utput((col%), (row%), (StrPos%), (s$))
    
        ch%= GetKey%
        IF ch% >= 48 AND ch% <= 57 THEN
            CALL Erlaubt((ch%), (length%), StrPos%, s$)
        ELSEIF ch1l; >= 32 AND ch% <= 47 THEN
            BEEP
        ELSEIF ch% >= 58 AND ch% <= 255 THEN
            BEEP
        ELSE
            CALL EditKey( (ch%), (length%), StrPos%, s$)
        END IF
    
    LOOP UNTIL ch% = KEYRETURN% OR ch% = KEYESC%
    s$ = RTRIM$(s$)

    IF ch% = KEYRETURN% THEN MyInput% = 1 ELSE MylInput% = 0
END FUNCTION

SUB PERIOUT
'Eingabe des Perioden-Wertes und Ausgabe zum Taktgenerator

BEGIl:

'Eingaberoutine Myinput% zur Eingabe des Sollwertes
COLOR 15, 5
x%= MyInput%(26, 11, 4, s$)
ANALOG = VAL (s$)
IF ANALOG > 2000 THEN
    BEEP
    LOCATE 11, 26, 0
    GOTO BEGIl
ELSE
    IF ANALOG < 50 TffEN
        BEEP
        LOCATE ll, 26, 0
        GOTO BEGIl
    ELSE
        IF PULS > ANALOG - ( TEILER / 4) THEN
            'Ändern des Pulswertes auf :maximal zulässigen Wert
            PULS = ANALOG - ( TEILER / 4)
            LOCATE 11, 52, 0
            PRINT USING "####"; PULS
        ELSE

        END IF
            LOCATE 11, 26, 0
            PRINT USING "####"; ANALOG
            IF ANALOG > 200 THEN
                'Änderung des ·vorteilers auf 4 o
                TEILRR = 40
                PERIOD = ANALOG / 10
                PULSEN = PULS/ 10   
            ELSE
                'Änderung des 'Vorteilers auf 4
                TEILER = 4
                PERIOD = ANALOG
                PULSEN= PULS
            END IF  
        END IF
END IF
'Ausgabe des neuen Vorteiler-Wertes zma Taktgrenerator
PRINT #1, CHR$(67); CHR$(54);
PRINT #1, CHR$(64); CHR$(TEILER); CHR$:(64); CHR$(0);
'Ausgabe des neuen Perioden-Wertes zum Taktgenerator
PRINT #1, CHR$(67); CHR$(118);
PRINT #1, CHR$(65); CHR$(PERIOD); CHR$(65); CHR$(0);
'Ausgabe des neuen Puls-W~es zum Taklt:genera.tor
PRINT #1, CHR$(67); CHR$(178); .
PRINT #1, CHR$(66); CHR$(PULSEN); CHR$(66); CHR$(0);

PERIOD = ANALOG

PRINT BOTTOMLEFT$;
FOR I% = 1 TO 76
    PRINT HORIZONTAL$;
NEXT I%
PRINT B0TTOMRIGHT$

LOCATE 8, 2
PRINT VERTMIDLEFT$;
FOR I% = 1 TO 76
    PRINT HORIZONTAL$;
NEXT I%
PRINT VERTMIDRIGHT

LOCATE 18, 2
PRINT VERTMIDLEFT$;
FOR I% = 1 TO 76
    PRINT HORIZONTAL$;
NEXT I%
PRINT VERTMIDRIGHT

LOCATE 12, 2
PRINT VERTMIDLEFT$;
    FOR I% = 1 TO 76
PRINT HORIZONTAL$;
NEXT I%
PRINT VERTMIDRIGHT$

LOCATE 14, 2
PRINT VERTMIDLEFTDOP$;
FOR I% = l TO 76
    PRINT HORIZONTALDOP$;
NEXT I%
PRINT VERTMIDRIGHTDOP

LOCATE 20, 2
PRINT VERTMIDLEFT$;
FOR I% = 1 TO 76
    PRINT HORIZONTAL$;
NEXT I%
PRINT VERTMIDRIGHT$

END SUB

SUB STATMASK
'Aufbau statische Bildschirm-Maske

LOCATE 1, 1, 0
COLOR 0, 7
PRINT " Fernsteuerung HW·-Generator über RS-232, Version 2.21, 9600 "
LOCATE 23, 1, 0
PRINT " MÜGGE ELEKTRONIK GmbH, Hergbachstraße 56, 6101 Reichelsheim„ Tel "
LOCATE 3, 8, 0
COLOR 15, 1
PRINT "HAINS:"
LOCATE 3, 14
COLOR 15, 6
PRINT " "

END SUB

SUB PULSOUT
'Eingabe des Puls-Wertes und Ausgabe zum Taktgenerator

BEGI2:

'Eingaberoutine Myinput% zur Eingabe des Sollwertes
COLOR 15, 5
x% = Myinput%(52, 11, 4, s$)
ANALOG = VAL ( s$)
IF ANALOG > PERIOD - ( TEILER / 4) THEN
    BEEP
    LOCATE ll, 52, 0
    GOTO BEGI2
ELSE
    IF ANALOG < 10 THEN
        BEEP    
        LOCATE 11, 52, 0
        GOTO BEGI2
    ELSE
        LOCATE 11, 52, 0
        PRINT USING "####"; ANALOG
        IF TEILER> 10 THEN
            PULS= ANALOG/ 10
        ELSE
            PULS= ANALOG
        END IF
    END IF
END IF

'Ausgabe des neuen Puls-Wertes zum Taktgenerator
PRINT #1, CHR$(67); CHR$(178);
PRINT #1, CHR$(66); CHR$(PULS); CHR$(66); CHR$(0);

PULS= ANALOG

END SUB

SUB RAHMEN
'Ausgabe des Bildschirm-Rahmens
COLOR 15, 1
LOCATE 2, 2
PRINT TOPLEFT$;
FOR I% = 1 TO 76
    PRINT HORIZONTAL$;
NEXT I%
PRINT TOPRIGHT$
FOR I% = 1 TO 19
LOCATE 2 + I%, 2
    PRINT VERTIKAL$
LOCATE 2 + I%, 79
    PRINT VERTIKAL$
NEXT I%
LOCATE 22, 2
LOCATE 3, 24
COLOR 15, 1
PRINT "INTERLOCK:"
LOCATE 3, 34
COLOR 15, 6
PRINT " "
LOCATE 3, 44
COLOR 15, 1
PRINT "STANDBY:"
LOCATE 3, 52
COLOR 15, 6
PRINT " "
LOCATE 3, 63
COLOR 15, l
PRINT "PULSE:"
LOCATE 3, 69
COLOR 15, 6
PRINT " "
LOCATE 5, 18
COLOR 15, l
PRINT "GENERATOR:"
LOCATE 5, 28
COLOR 15, 6
PRINT " "
LOCATE 5, 49
COLOR 15, 1
PRINT "MICROWAVE:"
LOCATE 5, 59
COLOR 15, 6
PRINT " "

LOCATE 9, 8
COLOR 0, 3
PRINT "V";
COLOR 15, 1
PRINT "ALUE:"
LOCATE 9, 14
COLOR 15, 5
PRINT " "; " .0"; " % "
LOCATE 9, 33
COLOR 15, 1
PRINT "POWER:"
LOCATE 9, 39
COLOR 15, 5
PRINT " "; " .0"; " % "
LOCATE 9, 57
COLOR 15, 1
PRINT "REFLEXION:"
LOCATE 9, 67
COLOR 15, 5
PRINT " "; " .0"; " % "
LOCATE 11, 45
COLOR 0, 3
PRINT "P";
COLOR 15, 1
PRINT "ULSE:"
LOCATE 11, 51
COLOR 15, 5

PRINT " "; " 10 ";
COLOR 15, 1
PRINT " * lus "
LOCATE 11, 18
COLOR 15, 1
PRINT "P";
COLOR 0, 3
PRINT "E";
COLOR 15, 1
PRINT "RIOD:"
LOCATE 11, 25
COLOR 15, 5
PRINT " "; " 50 ";
COLOR 15, 1
PRINT " * lus "
LOCATE 13, 8
COLOR 15, 1
PRINT "ST";
COLOR 0, 3
PRINT "A";
COLOR 15, 1
PRINT "RT"
LOCATE 13, 23
COLOR 15, l
PRINT "ST";
COLOR 0, 3
PRINT "O";
COLOR 15, 1
PRINT "P"
LOCATE 13, 37
COLOR 15, 1
PRINT "STAN";
COLOR 0, 3
PRINT "D";
COLOR 15, 1
PRINT "BY"
LOCATE 13, 55,
COLOR 15, 1
PRINT "P";
COLOR 0, 3
PRINT "U";
COLOR 15, 1
PRINT "LSE"
LOCATE 13, 69
COLOR 0, 3
PRINT "R";
COLOR 15, 1
PRINT "ESET"

'Programmteil fuer die .Anzeige der E-Hagnet Versorgung
LOCATE 15, 18, 0
COLOR 15, 1
PRINT "POWER:" ·
LOCATE 15, 24
COLOR 15, 6
PRINT " "
LOCATE 15, 45
COLOR 15, 1

PRINT "ELECTROMAGNET:"
LOCATE 15, 59
COLOR 15, 6
PRINT " "

LOCATE 19, 18
COLOR 15, 1
PRINT "VA";
COLOR 0, 3
PRINT "L";
COLOR 15, 1
PRINT "UE:"
LOCATE 19, 24
COLOR 15, 5
PRINT ""; " 0"; " % "
LOCATE 19, 49
COLOR 15, 1
PRINT "CURRENT:"
LOCATE 19, 57
COLOR 15, 5
PRINT ""; " 0"; "%"

LOCATE 21, 18
COLOR 15, 1
PRINT "0";
COLOR 0, 3
PRINT "N"
LOCATE 21, 38
COLOR 15, l
PRINT "O";
COLOR 0, 3
PRINT "F";
COLOR 15, 1
PRINT "F"
LOCATE 21, 59
COLOR 15, 1
PRINT "RE";
COLOR 0, 3
PRINT "S";
COLOR 15, 1
PRINT "ET"

END SUB

SUB STATUS
'Einlesen des Generator Status und Ausgabe auf dem Bildschirm (.Adresse 16/
PRINT #1, CHR$(146);
STAT = ASC(INPUT$(1, #1))

'Auswertung Bit o (z1O) "Generator: ON/OFF"
RESULT = STAT AND 254
DIV= STAT - RESULT
IF DIV = 0 THEN
    L0CATE 5, 28
    COLOR 15, 2
    PRINT " ON ";
    COLOR, 1
    PRINT " "
ELSE
    LOCATE 5, 28
    COLOR 15, 6
    PRINT " OFF "
END IF

'Auswertung BIT 1 (b08) "Failure"
RESULT = STAT AND 253
DIV = STAT - RESULT
IF DIV = 0 THEN
    LOCATE 7, 8
    COLOR 31, 4
    PRINT " FAILURE "

'Start-Bit zurücksetzen
TEST = DIGIOUT AND 253
DIVIS= DIGIOUT - TEST
IF DIVIS= 0 THEN
    GOTO FINISHl
ELSE
    DIGIOUT = DIGIOUT - 2

'Ausgabe des digitalen Steuerwortes 1 ( .Adress,e o)
    PRINT #1, CHR$(0); CHR$(DIGIOUT);
END IF
FINISHl:

ELSE
    LOCATE 7, 8
    COLOR , 1
    PRINT " "
END IF

'.Auswertung BIT 2 (intern) "Hains: OK"
RESULT = STA.T AND 251
DIV= STAT - RESULT
IF DIV = 0 THEN
    LOCATE 3, 14
    COLOR 15, 6
    PRINT " "
ELSE
    LOCATE 3, 14
    COLOR 15, 2
    PRINT " OK "
END IF

'Einlesen des. Generator Status und .Ausgabe auf: dem Bildschirm (Adresse 72
PRINT #1, CHR$ (210) ; 
STATl = ASC ( INPUT$ ( 1, #1) )

'Auswertung BIT 2 (St2/l) "Interlock: OK"
RESULTl = STATl AND 251
DIVl = STAT1 - RESULTl
IF DIV1 = 0 THEN
    LOCATE·3, 34
    COLOR 15, 2
    PRINT" OK"
ELSE
    LOCATE 3, 34
    COLOR 15, 6
    PRINT" "

'Start-Bit zurücksetzen
TEST= DIGIOUT AND 253
DIVIS= DIGIOUT - TEST
IF DIVIS= 0 THEN
    GOTO FINISH2
ELSE
    DIGIOUT = DIGIOUT - 2
'Ausgabe des digitalen Steuerwortes 1 (Adresse O)
    PRINT #1, CHR$(0); CHR$(DIGIOUT);
END IF
FINISH2:

END IF

'Auswertung BIT O (St2/4) "MICROWAVE: ON/OFF"
RESULTl = STATl AND 254
DIVl = STATl - RESULTl
IF DIVl = 0 THEN
    LOCATE 5, 59
    COLOR 15, 2
    PRINT " ON ";
    COLOR, 1
    PRINT" "
ELSE
    LOCATE 5, 59
    COLOR 15, 6
    PRINT" OFF"
END IF

'Auswertung BIT 3 (St2/2) "OVERLOAD"
RESULTl = STATl AND 247
DIV1 = STAT1 - RESULT1
IF DIV1 = 0 THEN
    COLOR 31, 4
    LOCATE 7, 35
    PRINT " OVERLOAD "
ELSE
    LOCATE 7, 35
    COLOR , 1
    PRINT " "
END IF

'Auswertung BIT 1 (St2/3) "COOLING"
RESULT1 = STATl AND 253
DIV1 = STAT1 - RESULT1
IF DIV1 = D THEN
    LOCATE 7, 65
    COLOR 31, 4
    PRINT " COOLING "
ELSE
    LOCATE 7, 65
    COLOR , 1
    PRINT " "
END IF

'Auswertung Bit 7 (St1/1) "Electromagnet: ON/OFF"
RESULT = STAT AND 127
DIV= STAT - RESULT
IF DIV = 0 THEN
    LOCATE 15, 59
    COLOR 15, 2
    PRINT " ON ";
    COLOR , l
    PRINT " "
ELSE
    LOCATE 15, 59
    COLOR 15, 6
    PRINT " OFF "
END IF

'Auswertung BIT 6 ( STl/2) "Failure"
RESULT = STAT ANDs 191
DIV= STAT - RESULT
IF DIV = 0 THEN
    LOCATE 17, 18
    COLOR 31, 4
    PRINT " FAILURE "

'Start-Bit zurücksetzen
TEST = DIGIOUTC AND 254
DIVIS = DIGIOUTC - TEST
IF DIVIS = 0 THEN
    GOTO FINISH3
ELSE
    DIGIOUTC = DIGIOTC - 1
'Ausgabe des digitalen Steuerwortes 2 (Adresse 96)
    PRINT #1, CHR$(96) ; CHR$ ( DIGIOUTC) ;
END IF
FINISH3:

ELSE
    LOCATE 17 F 18
    COLOR , 1
    PRINT " "
END IF

'Auswertung BIT 5 (St1/4) "Power: OK"
RESULT = STAT AND 223
DIV = STAT - RESULT
IF DIV= 0 THEN
    LOCATE 15, 24
    COLOR 15, 2
    PRINT" OK"
ELSE
    LOCATE 15, 24
    COLOR 15, 6
    PRINT " "
END IF
'Auswertung BIT 4 ( Stl./3) "OVERLOAD"
RESULT = STAT .AND 23 9
DIV = STAT - RESULT
IF DIV = 0 THEN
    LOCATE 178 54
    COLOR 31, 4
    PRINT " OVERLOAD "  
ELSE
    LOCATE 17, 54
    COLOR , 1
    PRINT " "
END IF

END SUB

SUB StrOutput (col%, row%, strPos%, s$)
' I Funktion:
' I Hin
' Ausgabe
' auf die
' des Eingabest rings und Cursor posit ionierung
' aktuelle Eingabeposition
' col%
' row%
' : Startspalte der Eingabezone
' : Startzeile der Eingabezone
' StrPos:t
' s$
' : Aktuelle Cursorposition im Eingabestring
' : Eingabestrif\g
    LOCATE row%, col%, 0
    PRINT s$
    LOCATE row%, col% + StrPos% - 1, 1
END SUB

SUB TIME

FOR Tl= 1 TO 50
NEXT Tl
END SUB

FUNCTION Trim$ (s$, length%)

' Funktion: "Trillllllt" einen String auf die gewünschte
' durch .AnhängenjLöschen von Leerzeichen
' Hin : s $ : Eingabestring
' length%: gewünschte Länge
' Fkt.Wert: auf Solläng1e gebrachter string

    IF LEN(s$) < length% THEN
        Trim$ = s$ + SPACE$ ( length% - LEN(s$) )
    ELSEIF LEN(s$) >= length% THEN
        Trim$ = LEFT$(s$, length%)
    END IF
END FUNCTION



...

Ik probeer dus de code te compileren en te testen met behulp van:
Max Reason's XBasic (v6.2.3) implementatie in windows 10.
De met deze IDE kan ik gewoon "Hello world aan de praat krijgen".
Dus het ligt niet aan Windows 10 compatibiliteit.
....
Alvast bedankt voor elke input mogelijk.

[ Voor 0% gewijzigd door RobIII op 13-03-2020 13:32 . Reden: Code tags ipv quote tags ]

Beste antwoord (via mimi040 op 13-03-2020 22:01)


  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
mimi040 schreef op vrijdag 13 maart 2020 @ 21:22:
[...]


In een zeker opzichten heb je gelijk. Het liefste zou ik het willen omzetten naar Python.
Maar om te kijken wat het programmetje doet zou ik het graag testen met de originele broncode.

Hierna zou ik met een logic analyzer in kaart kunnen brengen wat er op apparaat niveau gebeurt.
Vervolgens zou ik een oplossing kunnen mcgyveren met arduino of dergelijk.
Het is een text-based serieel protocol, de hele statemachine zit in dat stukje code. Geen analyser voor nodig ;-)

Alle reacties


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Tja, wat verwacht je nu concreet? Dat iemand dat hele blok code regel voor regel en teken voor teken gaat doornemen om te kijken of het wel klopt met xbasic?

Want daarvoor heb je gewoon compilers en die geven waarschuwingen en regelnrs etc af.

Oftewel wat is de fout die je krijgt en wat kan je daarover vinden via google?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Die vragen die hier staan wanneer je een nieuw topic opent en die je ("voor het gemak"?) maar even hebt weggehaald...
Mijn vraag
...

Relevante software en hardware die ik gebruik
...

Wat ik al gevonden of geprobeerd heb
...
...die staan hier niet voor niets. Sowieso is het wellicht handig als je onze Quickstart eens even doorneemt.
mimi040 schreef op vrijdag 13 maart 2020 @ 13:09:
Ik wat broncode ontvangen voor het aansturen van apparatuur.
En heb je 't al eens gevraagd aan diegene van wie je 't hebt gekregen? Of al eens contact opgenomen met MUEGGE ELECTRONIC GmbH?

[ Voor 6% gewijzigd door RobIII op 13-03-2020 13:36 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • +1 Henk 'm!

  • Heroic_Nonsense
  • Registratie: Januari 2015
  • Laatst online: 09:54

Heroic_Nonsense

bartonsontheweb.nl

Waarom bel je MEUGGE niet gewoon? Het bedrijf bestaat nog steeds. Ze leveren industriële apparatuur, en geen kleine jongen, dus wellicht is het een eigen taal.

https://www.muegge.de/en/

Such Heroic Nonsense - Proud admin of https://www.bartonsontheweb.nl and owner of https://netstek.nl


Acties:
  • 0 Henk 'm!

  • MSteverink
  • Registratie: Juni 2004
  • Laatst online: 24-09 15:32
Ik gok op QuickBasic of QBasic

Acties:
  • 0 Henk 'm!

  • downtime
  • Registratie: Januari 2000
  • Niet online

downtime

Everybody lies

Gokken kunnen we allemaal. Maar wat is de onderbouwing?

Acties:
  • 0 Henk 'm!

  • Archie_T
  • Registratie: Januari 2002
  • Laatst online: 08:30
Het lijkt QuickBasic gezien de simpele opdrachten (basic is lang geleden) maar je zegt:
Het lijkt XBasic te zijn maar als ik het probeer te compileren lukt het niet.
"Lukt het niet" is geen foutmelding, wat lukt niet? Krijg je nog een reden waarom het niet lukt?

Acties:
  • 0 Henk 'm!

  • Barreljan
  • Registratie: December 2001
  • Laatst online: 30-09 13:10

Barreljan

...Zoom-Zoom...

Dat is toch niet lastig? Even google naar 'Qbasic online'. Eerste hit: https://repl.it/languages/QBasic

Als ik daar de hele code in plak, lijkt het qua syntax in orde. Maar draaien lukt daarin niet (geen com port etc)

Time Attacker met de Mazda 323F 2.5 V6 J-spec | PV output


Acties:
  • 0 Henk 'm!

  • mimi040
  • Registratie: Oktober 2010
  • Laatst online: 17-04 23:17
Dank je wel voor het meedenken. Maar na wat syntax vergelijking moet ik concluderen dat het geen QBasic is.

Acties:
  • 0 Henk 'm!

  • synoniem
  • Registratie: April 2009
  • Niet online
Het lijkt het meest op QB4 syntax maar het zou Powerbasic kunnen zijn.

Acties:
  • 0 Henk 'm!

  • mimi040
  • Registratie: Oktober 2010
  • Laatst online: 17-04 23:17
Archie_T schreef op vrijdag 13 maart 2020 @ 14:50:
Het lijkt QuickBasic gezien de simpele opdrachten (basic is lang geleden) maar je zegt:

[...]

"Lukt het niet" is geen foutmelding, wat lukt niet? Krijg je nog een reden waarom het niet lukt?
Afbeeldingslocatie: https://tweakers.net/i/23YN7QzjRh7A_bk42I7b6ZNNJ7c=/800x/f/image/cYwrbmdv3ZmD6w3m2R8Dk0Ht.png?f=fotoalbum_large

Het lukt niet om de software te starten en ik.
Als ik tutorials XBasic uitvoer dan krijg ik dit probleem niet.

Acties:
  • 0 Henk 'm!

  • mimi040
  • Registratie: Oktober 2010
  • Laatst online: 17-04 23:17
synoniem schreef op vrijdag 13 maart 2020 @ 21:03:
Het lijkt het meest op QB4 syntax maar het zou Powerbasic kunnen zijn.
Bedoel je QB64?

Acties:
  • 0 Henk 'm!

  • synoniem
  • Registratie: April 2009
  • Niet online
Nee de Microsoft Quickbasic 4 compiler. Hier de verschillende versies op een rij.

Acties:
  • 0 Henk 'm!

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
het zijn maar 1000 regels, ben je niet sneller af door het gewoon om te zetten naar C of python?

Acties:
  • 0 Henk 'm!

  • synoniem
  • Registratie: April 2009
  • Niet online
johnkeates schreef op vrijdag 13 maart 2020 @ 21:13:
het zijn maar 1000 regels, ben je niet sneller af door het gewoon om te zetten naar C of python?
QB4 e.a. zijn DOS programma's dus C misschien maar Python?

Acties:
  • 0 Henk 'm!

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
synoniem schreef op vrijdag 13 maart 2020 @ 21:14:
[...]

QB4 e.a. zijn DOS programma's dus C misschien maar Python?
Aan de code en het protocol te zien lijkt dat niet echt uit te maken. Zitten geen vreemde control structures in ofzo. Je zou het haast in JavaScript kunnen doen als de jitter niet zo ernstig was.

Acties:
  • 0 Henk 'm!

  • synoniem
  • Registratie: April 2009
  • Niet online
Gezien de spullen die MUEGGE ELECTRONIC GmbH levert vermoed ik dat TS een ouder apparaat heeft wat hij wil aansturen met mogelijk embedded DOS versie. Maar dat is inlegkunde van mijn kant.

Acties:
  • 0 Henk 'm!

  • mimi040
  • Registratie: Oktober 2010
  • Laatst online: 17-04 23:17
johnkeates schreef op vrijdag 13 maart 2020 @ 21:13:
het zijn maar 1000 regels, ben je niet sneller af door het gewoon om te zetten naar C of python?
In een zeker opzichten heb je gelijk. Het liefste zou ik het willen omzetten naar Python.
Maar om te kijken wat het programmetje doet zou ik het graag testen met de originele broncode.

Hierna zou ik met een logic analyzer in kaart kunnen brengen wat er op apparaat niveau gebeurt.
Vervolgens zou ik een oplossing kunnen mcgyveren met arduino of dergelijk.

Acties:
  • Beste antwoord
  • +2 Henk 'm!

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
mimi040 schreef op vrijdag 13 maart 2020 @ 21:22:
[...]


In een zeker opzichten heb je gelijk. Het liefste zou ik het willen omzetten naar Python.
Maar om te kijken wat het programmetje doet zou ik het graag testen met de originele broncode.

Hierna zou ik met een logic analyzer in kaart kunnen brengen wat er op apparaat niveau gebeurt.
Vervolgens zou ik een oplossing kunnen mcgyveren met arduino of dergelijk.
Het is een text-based serieel protocol, de hele statemachine zit in dat stukje code. Geen analyser voor nodig ;-)

Acties:
  • +1 Henk 'm!

Verwijderd

een sub TIME die tot 50 telt, gebruikt tussen twee comport prints, moet wel oude meuk zijn. Zelfs als je het zou kunnen laten draaien op een windows10 machine zal het alleen al om die reden out of the box never nooit niet gaan werken.

Doe gewoon wat johnkeates hierboven zegt, schrijf het ff uit op een a4tje, zo moeilijk kunnen 1k regels basic zoals hierboven nooit zijn...

Acties:
  • 0 Henk 'm!

  • mimi040
  • Registratie: Oktober 2010
  • Laatst online: 17-04 23:17
Verwijderd schreef op vrijdag 13 maart 2020 @ 21:41:
een sub TIME die tot 50 telt, gebruikt tussen twee comport prints, moet wel oude meuk zijn. Zelfs als je het zou kunnen laten draaien op een windows10 machine zal het alleen al om die reden out of the box never nooit niet gaan werken.

Doe gewoon wat johnkeates hierboven zegt, schrijf het ff uit op een a4tje, zo moeilijk kunnen 1k regels basic zoals hierboven nooit zijn...
Nog andere tips?

Acties:
  • 0 Henk 'm!

  • synoniem
  • Registratie: April 2009
  • Niet online
mimi040 schreef op vrijdag 13 maart 2020 @ 21:22:
[...]


In een zeker opzichten heb je gelijk. Het liefste zou ik het willen omzetten naar Python.
Maar om te kijken wat het programmetje doet zou ik het graag testen met de originele broncode.

Hierna zou ik met een logic analyzer in kaart kunnen brengen wat er op apparaat niveau gebeurt.
Vervolgens zou ik een oplossing kunnen mcgyveren met arduino of dergelijk.
Tenzij je een DOS-machine hebt gaat het niet werken. QB en varianten willen rechtstreeks toegang tot de seriële port en dat vindt Windows niet goed. Heel misschien als je het draaiend kan krijgen in Visual Basic for Dos. Als ik het goed herinner gebruikt die de COM port zoals die door Windows beschikbaar wordt gesteld.

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 13:10

Creepy

Tactical Espionage Splatterer

Het wordt denk ik tijd dat je zelf eens wat gaat proberen, je negeert RobIII volledig namelijk, kijk RobIII in "Is deze code Xbasic of ander basic dialect?" nog eens door. Mocht je echt zelf aan de slag zijn gegaan en een wat meer concrete vraag hebben, dan kan je rustig een nieuw topic openen.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.