Last modified by Max on 2025/03/02 15:18

From version 2.92
edited by Max
on 2025/02/25 18:32
Change comment: (Autosaved)
To version 2.93
edited by Max
on 2025/02/25 18:34
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1728,60 +1728,61 @@
1728 1728  Example program:
1729 1729  
1730 1730  {{code language="assembler"}}
1731 - ;4. авторизация пользователя
1732 - ;технически это отправка JSON
1733 - ;{"SID":"хеш сессии","CMD":"AUTH_USER","NIKNAME":"никнейм пользователя","PASSWORD":"пароль пользователя"}
1734 - ;ответ тоже JSON
1735 - ;{"SID":"хеш сессии","RESULT":"OK","UID":"хеш пользователя"}
1736 - ;или
1737 - ;{"SID":"хеш сессии","RESULT":"ERROR","DESCRIPTION":"USER_NOT_FOUND_OR_WRONG_PASSWORD"}
1738 - ;{"SID":"хеш сессии","RESULT":"ERROR","DESCRIPTION":"SERVER_ERROR"}
1739 - ;{"SID":"хеш сессии","RESULT":"ERROR","DESCRIPTION":"SESSION_NOT_EXISTS_OR_EXPIRED"}
1731 + ;4. user authentication
1732 + ;technically, this is sending a JSON
1733 + ;{"SID":"session hash","CMD":"AUTH_USER","NIKNAME":"user nickname","PASSWORD":"user password"}
1734 + ;the response is also JSON
1735 + ;{"SID":"session hash","RESULT":"OK","UID":"user hash"}
1736 + ;or
1737 + ;{"SID":"session hash","RESULT":"ERROR","DESCRIPTION":"USER_NOT_FOUND_OR_WRONG_PASSWORD"}
1738 + ;{"SID":"session hash","RESULT":"ERROR","DESCRIPTION":"SERVER_ERROR"}
1739 + ;{"SID":"session hash","RESULT":"ERROR","DESCRIPTION":"SESSION_NOT_EXISTS_OR_EXPIRED"}
1740 1740  
1741 - ; загоняем команду CMD04
1742 - mov #CMD04,R1
1743 - mov #ADRMEM,R2
1744 - add #42.,R2 ; cдвигаем указатель на длину блока с SID
1745 -33$: movb (R1)+,(R2)+
1746 - bne 33$
1741 + ; load command CMD04
1742 + mov #CMD04,R1
1743 + mov #ADRMEM,R2
1744 + add #42.,R2 ; shift the pointer to the SID block length
1745 +33$: movb (R1)+,(R2)+
1746 + bne 33$
1747 1747  
1748 - .Print #ADRMEM
1748 + .Print #ADRMEM
1749 1749  
1750 - .Print #HOF05
1751 - ; отсылаем команду и ждем ответа
1752 - ; закачиваем в буфер
1753 - MOV #AZ$CSR,R1
1754 -331$: TSTB (R1) ; Проверим готовность контроллера
1755 - BPL 331$ ; Если не готов ждем
1756 - mov #23,(R1) ; командуем что будем писать данные в буфер
1757 -34$: TSTB (R1) ; проверяем результат выполнения
1758 - BPL 34$ ; ждем
1759 - TST (R1)+ ; инкрементируем
1760 - mov #ADRMEM,R3
1761 - mov #256.,R2 ;
1762 -35$: mov (R3)+,(R1) ; отдаем в контроллер
1763 - sob R2,35$
1764 - tst -(R1) ; декрементируем
1750 + .Print #HOF05
1751 + ; send the command and wait for a response
1752 + ; load into buffer
1753 + MOV #AZ$CSR,R1
1754 +331$: TSTB (R1) ; Check controller readiness
1755 + BPL 331$ ; If not ready, wait
1756 + mov #23,(R1) ; command to write data into buffer
1757 +34$: TSTB (R1) ; check execution result
1758 + BPL 34$ ; wait
1759 + TST (R1)+ ; increment
1760 + mov #ADRMEM,R3
1761 + mov #256.,R2 ;
1762 +35$: mov (R3)+,(R1) ; send to controller
1763 + sob R2,35$
1764 + tst -(R1) ; decrement
1765 1765  
1766 - ; обмен - команда 026
1767 - MOV #AZ$CSR,R1
1768 -361$: TSTB (R1) ; Проверим готовность контроллера
1769 - BPL 361$ ; Если не готов ждем
1770 - mov #26,(R1)
1771 -36$: TSTB (R1) ; проверяем результат выполнения
1772 - BPL 36$ ; ждем
1766 + ; exchange - command 026
1767 + MOV #AZ$CSR,R1
1768 +361$: TSTB (R1) ; Check controller readiness
1769 + BPL 361$ ; If not ready, wait
1770 + mov #26,(R1)
1771 +36$: TSTB (R1) ; check execution result
1772 + BPL 36$ ; wait
1773 1773  
1774 - ; получим результат
1775 -371$: TSTB (R1) ; Проверим готовность контроллера
1776 - BPL 371$ ; Если не готов ждем
1777 - mov #22,(R1) ; отдать на шину буфер
1778 -37$: TSTB (R1) ; проверяем результат выполнения
1779 - BPL 37$ ; ждем
1780 - TST (R1)+ ; инкрементируем
1781 - mov #ADRMEM,R3
1782 - mov #256.,R2 ; читаем 256. слов; первое слово - результат чтения
1783 -38$: mov (R1),(R3)+ ; читаем блок слов в память
1784 - sob R2,38$
1774 + ; receive result
1775 +371$: TSTB (R1) ; Check controller readiness
1776 + BPL 371$ ; If not ready, wait
1777 + mov #22,(R1) ; send buffer to the bus
1778 +37$: TSTB (R1) ; check execution result
1779 + BPL 37$ ; wait
1780 + TST (R1)+ ; increment
1781 + mov #ADRMEM,R3
1782 + mov #256.,R2 ; read 256 words; first word is the read result
1783 +38$: mov (R1),(R3)+ ; read block of words into memory
1784 + sob R2,38$
1785 +
1785 1785  {{/code}}
1786 1786  
1787 1787