User Tag List

Показано с 1 по 10 из 29

Тема: Компилирование кода MSX Basic в COM-файл

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    06.09.2025
    Адрес
    г. Киев, Украина
    Сообщений
    240
    Спасибо Благодарностей отдано 
    412
    Спасибо Благодарностей получено 
    29
    Поблагодарили
    25 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от axe_chita Посмотреть сообщение
    Но прекрасно сработает Print CHR$(7); Эмуляция VT52 прекрасно работает.
    Спасибо, заменил.

    Цитата Сообщение от axe_chita Посмотреть сообщение
    А что тут переделывать?
    Добавляем две пользовательские функции
    DEF FNL$(X,Y)=CHR$(27)+"Y"+CHR$(32+Y)+CHR$(32+X) - как определение LOCATE и DEF FNCL$=chr$(12) - как определение CLS
    используем их с ведущим оператором PRINT. Т.е PRINT FNL$(X,Y); вместо LOCATE, а PRINT FNСL$ вместо CLS
    Заменил и здесь, теперь компилируется, но пашет не ахти:



    Цитата Сообщение от axe_chita Посмотреть сообщение
    Вообще Renum есть и MSX Basic
    Знаю, только благодаря NTVDM можно запускать GW-Basic в Windows 10 без эмуляции и перебрасывания исходников через образы дискет. =)

    Цитата Сообщение от axe_chita Посмотреть сообщение
    Кстати, маленькое правка вашей программы с целью её упрощения
    Спасибо, код рабочий, заменил также.

    Цитата Сообщение от axe_chita Посмотреть сообщение
    Так вроде на MSX официальная раскладка почти полностью совпадает с КОИ-8, имеются небольшие отличия в начертании символов псевдографики
    Сейчас займусь подстановкой символов псевдографики и попробую ещё раз компилировать.
    Последний раз редактировалось yevrowl; 18.10.2025 в 14:20.
    ÷)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    15.06.2010
    Адрес
    г. Чита
    Сообщений
    65
    Спасибо Благодарностей отдано 
    110
    Спасибо Благодарностей получено 
    13
    Поблагодарили
    9 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от yevrowl Посмотреть сообщение
    Спасибо, заменил.
    Пожалуйста

    Цитата Сообщение от yevrowl Посмотреть сообщение
    Заменил и здесь, теперь компилируется, но пашет не ахти:
    В чистом MSXBasic всё работает без проблем

    Цитата Сообщение от yevrowl Посмотреть сообщение
    Знаю, только благодаря NTVDM можно запускать GW-Basic в Windows 10 без эмуляции и перебрасывания исходников через образы дискет. =)
    DOSBox с примонтированной папкой как диск С не проще будет?

    Цитата Сообщение от yevrowl Посмотреть сообщение
    Спасибо, код рабочий, заменил также.
    Пожалуйста

    Цитата Сообщение от yevrowl Посмотреть сообщение
    Сейчас займусь подстановкой символов псевдографики и попробую ещё раз компилировать.
    Вот вариант программы в PURE ASCII
    Код:
    7 DEF FNL$(X,Y)=CHR$(27)+"Y"+CHR$(32+Y)+CHR$(32+X)
    8 DEF FNCL$=chr$(12)
    1000 KEY OFF
    1010 DEFINT A-Z
    1020 REM RANDOMIZE TIMER
    1030 SCREEN 0
    1040 WIDTH 40
    1050 COLOR 15, 13
    1060 PRINT FNCL$
    1070 PRINT
    1080 PRINT " ######################################"
    1090 PRINT " #                                    #"
    1100 PRINT " #            BRAIN TEASER            #"
    1110 PRINT " #                                    #"
    1120 PRINT " #            for MSXdev25            #"
    1130 PRINT " #                                    #"
    1140 PRINT " #            by Y. R. Sova           #"  
    1150 PRINT " #                                    #"
    1160 PRINT " ######################################"
    1170 PRINT " #                                    #"
    1180 PRINT " # This computer game is based on     #"
    1190 PRINT " # BrainTeaser by Wim Nijland.        #"
    1200 PRINT " #                                    #"
    1210 PRINT " # Choose digits from 1 to 9, split   #"
    1220 PRINT " # by reaction method into three      #"
    1230 PRINT " # groups (1-3-7-9, 2-4-6-8, and 5).  #"
    1240 PRINT " #                                    #"
    1250 PRINT " # The goal is to display all digits  #"
    1260 PRINT " # except 5, without letting the      #"
    1270 PRINT " # field be cleared.                  #"
    1280 PRINT " #                                    #"
    1290 PRINT " ######################################"
    1300 K$ = INKEY$
    1310 IF K$ = "" THEN GOTO 1300
    1320 PRINT FNCL$
    1330 Z = 0
    1340 PRINT
    1350 PRINT "    ###############################"
    1360 PRINT "    #         #         #         #"
    1370 PRINT "    #         #         #         #"
    1380 PRINT "    #         #         #         #"
    1390 PRINT "    #         #         #         #"
    1400 PRINT "    #         #         #         #"
    1410 PRINT "    #         #         #         #"
    1420 PRINT "    ###############################"
    1430 PRINT "    #         #         #         #"
    1440 PRINT "    #         #         #         #"
    1450 PRINT "    #         #         #         #"
    1460 PRINT "    #         #         #         #"
    1470 PRINT "    #         #         #         #"
    1480 PRINT "    #         #         #         #"
    1490 PRINT "    ###############################"
    1500 PRINT "    #         #         #         #"
    1510 PRINT "    #         #         #         #"
    1520 PRINT "    #         #         #         #"
    1530 PRINT "    #         #         #         #"
    1540 PRINT "    #         #         #         #"
    1550 PRINT "    #         #         #         #"
    1560 PRINT "    ###############################"
    1570 REM PRINT
    1580 S1 = INT(RND(1) * 2) + 1
    1590 S2 = INT(RND(1) * 2) + 1
    1600 S3 = INT(RND(1) * 2) + 1
    1610 S4 = INT(RND(1) * 2) + 1
    1620 S5 = INT(RND(1) * 2) + 1
    1630 S6 = INT(RND(1) * 2) + 1
    1640 S7 = INT(RND(1) * 2) + 1
    1650 S8 = INT(RND(1) * 2) + 1
    1660 S9 = INT(RND(1) * 2) + 1
    1670 IF S1 + S2 + S3 + S4 + S5 + S6 + S7 + S8 + S9 = 18 THEN GOTO 1580
    1680 X = 6
    1690 Y = 3
    1700 IF S1 = 1 THEN GOSUB 4190 ELSE GOSUB 4640
    1710 X = 16
    1720 IF S2 = 1 THEN GOSUB 4240 ELSE GOSUB 4640
    1730 X = 26
    1740 IF S3 = 1 THEN GOSUB 4290 ELSE GOSUB 4640
    1750 X = 6
    1760 Y = 10
    1770 IF S4 = 1 THEN GOSUB 4340 ELSE GOSUB 4640
    1780 X = 16
    1790 IF S5 = 1 THEN GOSUB 4390 ELSE GOSUB 4640
    1800 X = 26
    1810 IF S6 = 1 THEN GOSUB 4440 ELSE GOSUB 4640
    1820 X = 6
    1830 Y = 17
    1840 IF S7 = 1 THEN GOSUB 4490 ELSE GOSUB 4640
    1850 X = 16
    1860 IF S8 = 1 THEN GOSUB 4540 ELSE GOSUB 4640
    1870 X = 26
    1880 IF S9 = 1 THEN GOSUB 4590 ELSE GOSUB 4640
    1890 K$ = INKEY$
    1891 IF K$ = "" THEN 1890 ELSE K=asc(K$)
    1892 IF K = 27 THEN PRINT FNCL$: END
    1893 IF (K>=49 and K<=57) THEN ON (K-49) GOTO 2010,2050,2090,2130,2170,2210,2250,2290,2330
    1990 '
    2000 GOTO 1890
    2000 GOTO 1890
    2010 IF S1 = 2 THEN  PRINT CHR$(7); ELSE GOSUB 2370
    2020 GOSUB 3570
    2030 IF Z <> 0 THEN GOTO 3600
    2040 GOTO 1890
    2050 IF S2 = 2 THEN  PRINT CHR$(7); ELSE GOSUB 2520
    2060 GOSUB 3570
    2070 IF Z <> 0 THEN GOTO 3600
    2080 GOTO 1890
    2090 IF S3 = 2 THEN  PRINT CHR$(7); ELSE GOSUB 2630
    2100 GOSUB 3570
    2110 IF Z <> 0 THEN GOTO 3600
    2120 GOTO 1890
    2130 IF S4 = 2 THEN  PRINT CHR$(7); ELSE GOSUB 2780
    2140 GOSUB 3570
    2150 IF Z <> 0 THEN GOTO 3600
    2160 GOTO 1890
    2170 IF S5 = 2 THEN  PRINT CHR$(7); ELSE GOSUB 2890
    2180 GOSUB 3570
    2190 IF Z <> 0 THEN GOTO 3600
    2200 GOTO 1890
    2210 IF S6 = 2 THEN  PRINT CHR$(7); ELSE GOSUB 3070
    2220 GOSUB 3570
    2230 IF Z <> 0 THEN GOTO 3600
    2240 GOTO 1890
    2250 IF S7 = 2 THEN  PRINT CHR$(7); ELSE GOSUB 3180
    2260 GOSUB 3570
    2270 IF Z <> 0 THEN GOTO 3600
    2280 GOTO 1890
    2290 IF S8 = 2 THEN  PRINT CHR$(7); ELSE GOSUB 3320
    2300 GOSUB 3570
    2310 IF Z <> 0 THEN GOTO 3600
    2320 GOTO 1890
    2330 IF S9 = 2 THEN  PRINT CHR$(7); ELSE GOSUB 3430
    2340 GOSUB 3570
    2350 IF Z <> 0 THEN GOTO 3600
    2360 GOTO 1890
    2370 S1 = 2
    2380 IF S2 = 1 THEN S2 = 2 ELSE S2 = 1
    2390 IF S4 = 1 THEN S4 = 2 ELSE S4 = 1
    2400 IF S5 = 1 THEN S5 = 2 ELSE S5 = 1
    2410 X = 6
    2420 Y = 3
    2430 GOSUB 4640
    2440 X = 16
    2450 IF S2 = 1 THEN GOSUB 4240 ELSE GOSUB 4640
    2460 X = 6
    2470 Y = 10
    2480 IF S4 = 1 THEN GOSUB 4340 ELSE GOSUB 4640
    2490 X = 16
    2500 IF S5 = 1 THEN GOSUB 4390 ELSE GOSUB 4640
    2510 RETURN
    2520 S2 = 2
    2530 IF S1 = 1 THEN S1 = 2 ELSE S1 = 1
    2540 IF S3 = 1 THEN S3 = 2 ELSE S3 = 1
    2550 X = 16
    2560 Y = 3
    2570 GOSUB 4640
    2580 X = 6
    2590 IF S1 = 1 THEN GOSUB 4190 ELSE GOSUB 4640
    2600 X = 26
    2610 IF S3 = 1 THEN GOSUB 4290 ELSE GOSUB 4640
    2620 RETURN
    2630 S3 = 2
    2640 IF S2 = 1 THEN S2 = 2 ELSE S2 = 1
    2650 IF S5 = 1 THEN S5 = 2 ELSE S5 = 1
    2660 IF S6 = 1 THEN S6 = 2 ELSE S6 = 1
    2670 X = 26
    2680 Y = 3
    2690 GOSUB 4640
    2700 X = 16
    2710 IF S2 = 1 THEN GOSUB 4240 ELSE GOSUB 4640
    2720 X = 16
    2730 Y = 10
    2740 IF S5 = 1 THEN GOSUB 4390 ELSE GOSUB 4640
    2750 X = 26
    2760 IF S6 = 1 THEN GOSUB 4440 ELSE GOSUB 4640
    2770 RETURN
    2780 S4 = 2
    2790 IF S1 = 1 THEN S1 = 2 ELSE S1 = 1
    2800 IF S7 = 1 THEN S7 = 2 ELSE S7 = 1
    2810 X = 6
    2820 Y = 10
    2830 GOSUB 4640
    2840 Y = 3
    2850 IF S1 = 1 THEN GOSUB 4190 ELSE GOSUB 4640
    2860 Y = 17
    2870 IF S7 = 1 THEN GOSUB 4490 ELSE GOSUB 4640
    2880 RETURN
    2890 S5 = 2
    2900 IF S2 = 1 THEN S2 = 2 ELSE S2 = 1
    2910 IF S4 = 1 THEN S4 = 2 ELSE S4 = 1
    2920 IF S6 = 1 THEN S6 = 2 ELSE S6 = 1
    2930 IF S8 = 1 THEN S8 = 2 ELSE S8 = 1
    2940 X = 16
    2950 Y = 10
    2960 GOSUB 4640
    2970 Y = 3
    2980 IF S2 = 1 THEN GOSUB 4240 ELSE GOSUB 4640
    2990 Y = 17
    3000 IF S8 = 1 THEN GOSUB 4540 ELSE GOSUB 4640
    3010 X = 6
    3020 Y = 10
    3030 IF S4 = 1 THEN GOSUB 4340 ELSE GOSUB 4640
    3040 X = 26
    3050 IF S6 = 1 THEN GOSUB 4440 ELSE GOSUB 4640
    3060 RETURN
    3070 S6 = 2
    3080 IF S3 = 1 THEN S3 = 2 ELSE S3 = 1
    3090 IF S9 = 1 THEN S9 = 2 ELSE S9 = 1
    3100 X = 26
    3110 Y = 10
    3120 GOSUB 4640
    3130 Y = 3
    3140 IF S3 = 1 THEN GOSUB 4290 ELSE GOSUB 4640
    3150 Y = 17
    3160 IF S9 = 1 THEN GOSUB 4590 ELSE GOSUB 4640
    3170 RETURN
    3180 S7 = 2
    3190 IF S4 = 1 THEN S4 = 2 ELSE S4 = 1
    3200 IF S5 = 1 THEN S5 = 2 ELSE S5 = 1
    3210 IF S8 = 1 THEN S8 = 2 ELSE S8 = 1
    3220 X = 6
    3230 Y = 17
    3240 GOSUB 4640
    3250 Y = 10
    3260 IF S4 = 1 THEN GOSUB 4340 ELSE GOSUB 4640
    3270 X = 16
    3280 IF S5 = 1 THEN GOSUB 4390 ELSE GOSUB 4640
    3290 Y = 17
    3300 IF S8 = 1 THEN GOSUB 4540 ELSE GOSUB 4640
    3310 RETURN
    3320 S8 = 2
    3330 IF S7 = 1 THEN S7 = 2 ELSE S7 = 1
    3340 IF S9 = 1 THEN S9 = 2 ELSE S9 = 1
    3350 X = 16
    3360 Y = 17
    3370 GOSUB 4640
    3380 X = 6
    3390 IF S7 = 1 THEN GOSUB 4490 ELSE GOSUB 4640
    3400 X = 26
    3410 IF S9 = 1 THEN GOSUB 4590 ELSE GOSUB 4640
    3420 RETURN
    3430 S9 = 2
    3440 IF S5 = 1 THEN S5 = 2 ELSE S5 = 1
    3450 IF S6 = 1 THEN S6 = 2 ELSE S6 = 1
    3460 IF S8 = 1 THEN S8 = 2 ELSE S8 = 1
    3470 X = 26
    3480 Y = 17
    3490 GOSUB 4640
    3500 Y = 10
    3510 IF S6 = 1 THEN GOSUB 4440 ELSE GOSUB 4640
    3520 X = 16
    3530 IF S5 = 1 THEN GOSUB 4390 ELSE GOSUB 4640
    3540 Y = 17
    3550 IF S8 = 1 THEN GOSUB 4540 ELSE GOSUB 4640
    3560 RETURN
    3570 IF S1 + S2 + S3 + S4 + S6 + S7 + S8 + S9 = 8 AND S5 = 2 THEN Z = 1
    3580 IF S1 + S2 + S3 + S4 + S5 + S6 + S7 + S8 + S9 = 18 THEN Z = 2
    3590 RETURN
    3600 K$ = INKEY$
    3610 IF K$ = "" THEN GOTO 3600
    3620 PRINT FNCL$
    3630 PRINT
    3640 PRINT
    3650 PRINT
    3660 PRINT
    3670 PRINT
    3680 PRINT
    3690 PRINT
    3700 PRINT "     ##############################"
    3710 PRINT "     #                            #"
    3720 PRINT "     #                            #"
    3730 PRINT "     #                            #"
    3740 PRINT "     #                            #"
    3750 PRINT "     #                            #"
    3760 PRINT "     #                            #"
    3770 PRINT "     #                            #"
    3780 PRINT "     #                            #"
    3790 PRINT "     ##############################"
    3800 IF Z = 1 THEN GOSUB 3910
    3810 IF Z = 2 THEN GOSUB 3980
    3820 K$ = INKEY$
    3830 IF K$ = "" THEN GOTO 3820
    3840 GOSUB 4050
    3850 K$ = INKEY$
    3860 IF K$ = CHR$(89) THEN GOTO 1320
    3870 IF K$ = CHR$(121) THEN GOTO 1320
    3880 IF K$ = CHR$(78) THEN PRINT FNCL$: END
    3890 IF K$ = CHR$(110) THEN PRINT FNCL$: END
    3900 GOTO 3850
    3910 X = 7
    3920 Y = 10
    3930 PRINT FNL$(X,Y+0);"   ## ## ## _##/ _####_   "
    3940 PRINT FNL$(X,Y+1);"   ## ## ##  ##  ##  ##   "
    3950 PRINT FNL$(X,Y+2);"   ## ## ##  ##  ##  ##   "
    3960 PRINT FNL$(X,Y+3);"   '######' _##/ ##  ##   "
    3970 RETURN
    3980 X = 7
    3990 Y = 10
    4000 PRINT FNL$(X,Y+0);"##     _####_ _####_ _####"
    4010 PRINT FNL$(X,Y+1);"##     ##  ## ##___  ##___"
    4020 PRINT FNL$(X,Y+2);"##     ##  ##  '''## ##'''"
    4030 PRINT FNL$(X,Y+3);"###### '####' '####' '####"
    4040 RETURN
    4050 X = 7
    4060 Y = 9
    4070 PRINT FNL$(X,Y+0);"___ _ ___ _   _ _____  ___"
    4080 PRINT FNL$(X,Y+1);"# # # #_  '#_#'   #     _#"
    4090 PRINT FNL$(X,Y+2);"# #_# #__ #' '#   #     _ "
    4100 PRINT FNL$(X,Y+3);"_  _ ___ ___   _ ___ _ ___"
    4110 PRINT FNL$(X,Y+4);"#__# #_  #__  #  # # # # #"
    4120 PRINT FNL$(X,Y+5);" _/  #__ __# #   # #_# #_#"
    4130 RETURN
    4140 PRINT FNL$(X,Y+0);"_#####_"
    4150 PRINT FNL$(X,Y+1);"##  _##"
    4160 PRINT FNL$(X,Y+2);"##_' ##"
    4170 PRINT FNL$(X,Y+3);"'#####'"
    4180 RETURN
    4190 PRINT FNL$(X,Y+0);"  _##  "
    4200 PRINT FNL$(X,Y+1);"_#'##  "
    4210 PRINT FNL$(X,Y+2);"'  ##  "
    4220 PRINT FNL$(X,Y+3);" ######"
    4230 RETURN
    4240 PRINT FNL$(X,Y+0);"_#####_"
    4250 PRINT FNL$(X,Y+1);"  __##'"
    4260 PRINT FNL$(X,Y+2);"_##''  "
    4270 PRINT FNL$(X,Y+3);"#######"
    4280 RETURN
    4290 PRINT FNL$(X,Y+0);"######_"
    4300 PRINT FNL$(X,Y+1);"  ___##"
    4310 PRINT FNL$(X,Y+2);"  '''##"
    4320 PRINT FNL$(X,Y+3);"######'"
    4330 RETURN
    4340 PRINT FNL$(X,Y+0);"_#  ## "
    4350 PRINT FNL$(X,Y+1);"##__##_"
    4360 PRINT FNL$(X,Y+2);"''''##'"
    4370 PRINT FNL$(X,Y+3);"    ## "
    4380 RETURN
    4390 PRINT FNL$(X,Y+0);"#######"
    4400 PRINT FNL$(X,Y+1);"##____ "
    4410 PRINT FNL$(X,Y+2);" ''''##"
    4420 PRINT FNL$(X,Y+3);"######'"
    4430 RETURN
    4440 PRINT FNL$(X,Y+0);"_#####_"
    4450 PRINT FNL$(X,Y+1);"##____ "
    4460 PRINT FNL$(X,Y+2);"##'''##"
    4470 PRINT FNL$(X,Y+3);"'#####'"
    4480 RETURN
    4490 PRINT FNL$(X,Y+0);"######_"
    4500 PRINT FNL$(X,Y+1);"   _##'"
    4510 PRINT FNL$(X,Y+2);"  ##'  "
    4520 PRINT FNL$(X,Y+3);"  ##   "
    4530 RETURN
    4540 PRINT FNL$(X,Y+0);"_#####_"
    4550 PRINT FNL$(X,Y+1);"'#___#'"
    4560 PRINT FNL$(X,Y+2);"##'''##"
    4570 PRINT FNL$(X,Y+3);"'#####'"
    4580 RETURN
    4590 PRINT FNL$(X,Y+0);"_#####_"
    4600 PRINT FNL$(X,Y+1);"##___##"
    4610 PRINT FNL$(X,Y+2);" '''###"
    4620 PRINT FNL$(X,Y+3);" ####' "
    4630 RETURN
    4640 PRINT FNL$(X,Y+0);"       "
    4650 PRINT FNL$(X,Y+1);"       "
    4660 PRINT FNL$(X,Y+2);"       "
    4670 PRINT FNL$(X,Y+3);"       "
    4680 RETURN

    Этот пользователь поблагодарил axe_chita за это полезное сообщение:

    yevrowl(19.10.2025)

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 31
    Последнее: 10.09.2022, 14:22
  2. MSX BASIC — Промежуточный код
    от GreyWolf в разделе MSX
    Ответов: 7
    Последнее: 05.12.2019, 21:42
  3. Ответов: 30
    Последнее: 28.11.2017, 02:51
  4. Ответов: 0
    Последнее: 24.04.2017, 16:24
  5. Spectaculator - BASIC LLIST в текстовый файл
    от Gelip в разделе Эмуляторы
    Ответов: 3
    Последнее: 16.07.2011, 02:30

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •