User Tag List

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

Тема: Старый-Новый Язык Noahsoft PL65

Древовидный режим

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

    Регистрация
    26.02.2011
    Адрес
    Москва
    Сообщений
    258
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    25
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я, конечно огорчён, что программулька не работает гладко, но на Real HW ВСЕ работает !!!
    Вот изящный код.
    Код:
    !====================================!
    ! BANKS.PRG                          !
    !   Using 130XE Extended Banks in    !
    !     PL65 Programming Language      !
    !------------------------------------!
    ! Evgeny Zolotarev,(aka 576XE), 2020 !
    !====================================!
    INCLUDE TERMINAL.LIB
    
    !- CONSTANTS & VARIABLES:
    CONST bkMask=%10010001
    BYTE PORTB=$D301,NMIEN=$D40E,bkTag
    INT bkNum
    
    !- DUMMY array representing ---------!
    !- selected BANK's slice ------------!
    BYTE bkMem[$4000]=$4000
    
    !- Bank Selector Values 576XE -------!
    !- Atari800WinPlus/Altirra (Rambo) --!
    BYTE bkSel[33]
      DATA $91,
        $81,$83,$85,$87,$89,$8B,$8D,$8F,
        $A1,$A3,$A5,$A7,$A9,$AB,$AD,$AF,
        $C1,$C3,$C5,$C7,$C9,$CB,$CD,$CF,
        $E1,$E3,$E5,$E7,$E9,$EB,$ED,$EF;
    
    ! String VAR  to store in all BANKS
    STRING inp$[4+27]
      DATA " => User DATA from Bank #00";
    
    ! Set string as VAR for appending
    STRING out$[4+27]
      DATA "                           ";
    
    !- PROCEDURES:
    !- Clear Screen Procedure -----------!
    PROC clrScr()
      CONST clr=255
    BEGIN WRTSTR(CHR$(125)) END
    
    !- Wait for Any Key Pressed ---------!
    PROC anyKey()
      CONST none=255
      BYTE CH=764
    BEGIN
      WRTSTR("Wait for a Key...") CR()
      WHILE CH=none DO ENDWHILE
      CH=none
    END
    
    !- Place bkSel Tags into PORTB ------!
    PROC setBk*(BYTE bkTag)
    BEGIN
    !- Wrapper STOPs/STARTs IRQ & NMI ---!
      SEI LDA #$00 STA NMIEN
      LDA PORTB
      AND bkMask OR bkTag
      STA PORTB
      LDA #$40 STA NMIEN CLI
    END
    
    !- Send bkNum to setBk subroutine ---!
    PROC setBank(INT bkNum)
    BEGIN
      bkTag=bkSel[bkNum]
      setBk*(bkTag)
    END
    
    !- Writes to Bank -------------------!
    PROC writBk()
    BEGIN
      FOR bkNum=0 TO 32 DO
        WRTSTR("Writing to BANK #") WRITE(bkNum) CR()
        IF bkNum<10 THEN
          inp$[25,25]=STR$(0) inp$[26,26]=STR$(bkNum)
        ELSE inp$[25]=STR$(bkNum) ENDIF
        out$=inp$
        setBank(bkNum)
        MOVE(.out,LEN(out$),.bkMem)
      NEXT
    END
    
    !- Reads from Bank ------------------!
    PROC readBk()
    BEGIN
      FOR bkNum=0 TO 32 DO
        WRTSTR("Reading BANK #") WRITE(bkNum) CR()
        setBank(bkNum)
        MOVE(.bkMem,LEN(out$),.out)
        WRTSTR(out$) CR()
      NEXT
    END
    
    !------------------------------------!
    MAIN()
      BYTE PORT
    BEGIN
      LDA PORTB STA PORT
      clrScr() anyKey() writBk()
      anyKey() clrScr() readBk()
      LDA PORT  STA PORTB
    END
    ! >>> EOF <<< !
    Проблемы возникают только при переходе от 0-го (основного) банка памяти к расширенной памяти.
    Что интересно, данные заносятся и в основную память. Проверял в мониторе.
    При работе только с расширенной памятью(bkNum от 1 to 32) их нет! Что-то в эмулях !!!

    zen
    Последний раз редактировалось ezswift; 22.12.2020 в 12:36.
    MAC и PC - это всего лишь периферия для Атари...
    130XE|XC12|CA2001|XF551|IDEPlus2.0|SIO2SD|SIO2IDE| RAM576XE+Covoх|SIO2PC|MAXFLASH8|MAXFLASH1|The Ultimate Cartridge|

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

    Oleg N. Cher(22.12.2020)

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

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

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

Похожие темы

  1. ПК8000 - Софт: Старый и Новый
    от ivagor в разделе ПК8000
    Ответов: 344
    Последнее: 08.11.2025, 06:55
  2. Новый старый ZX-Next: сборка, тестирование, производство.
    от ZXFanat в разделе Несортированное железо
    Ответов: 51
    Последнее: 01.10.2011, 08:41
  3. про новый-старый спектрум
    от xailar в разделе ZX Концепции
    Ответов: 3
    Последнее: 06.12.2010, 10:42

Ваши права

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