1 ; **************************************************************************** 2 ; writestr.s - TRDOS 386 (TRDOS v2.0.3) Test Program - write string 3 ; ---------------------------------------------------------------------------- 4 ; 5 ; 05/12/2020 (03/12/2020) 6 ; 7 ; **************************************************************************** 8 9 ; 01/03/2017 10 ; 16/10/2016 11 ; 29/04/2016 12 ; TRDOS 386 system calls (temporary list!) 13 _ver equ 0 14 _exit equ 1 15 _fork equ 2 16 _read equ 3 17 _write equ 4 18 _open equ 5 19 _close equ 6 20 _wait equ 7 21 _creat equ 8 22 _link equ 9 23 _unlink equ 10 24 _exec equ 11 25 _chdir equ 12 26 _time equ 13 27 _mkdir equ 14 28 _chmod equ 15 29 _chown equ 16 30 _break equ 17 31 _stat equ 18 32 _seek equ 19 33 _tell equ 20 34 _mount equ 21 35 _umount equ 22 36 _setuid equ 23 37 _getuid equ 24 38 _stime equ 25 39 _quit equ 26 40 _intr equ 27 41 _fstat equ 28 42 _emt equ 29 43 _mdate equ 30 44 _video equ 31 45 _audio equ 32 46 _timer equ 33 47 _sleep equ 34 48 _msg equ 35 49 _geterr equ 36 50 _fpsave equ 37 51 _pri equ 38 52 _rele equ 39 53 _fff equ 40 54 _fnf equ 41 55 _alloc equ 42 56 _dalloc equ 43 57 _calbac equ 44 58 59 %macro sys 1-4 60 ; 29/04/2016 - TRDOS 386 (TRDOS v2.0) 61 ; 03/09/2015 62 ; 13/04/2015 63 ; Retro UNIX 386 v1 system call. 64 %if %0 >= 2 65 mov ebx, %2 66 %if %0 >= 3 67 mov ecx, %3 68 %if %0 = 4 69 mov edx, %4 70 %endif 71 %endif 72 %endif 73 mov eax, %1 74 ;int 30h 75 int 40h ; TRDOS 386 (TRDOS v2.0) 76 %endmacro 77 78 ; TRDOS 386 (and Retro UNIX 386 v1) system call format: 79 ; sys systemcall (eax) , , 80 81 ;======================================================================== 82 ; TEST VESA VBE 3 16 BIT PROTECTED MODE INTERFACE FAR CALL FOR TRDOS 386 83 ;======================================================================== 84 85 [BITS 32] ; 32-bit intructions 86 87 [ORG 0] 88 START_CODE: 89 ; clear video page (set video mode to 03h again) 90 ;mov eax, 13h 91 ;int 31h 92 00000000 B803000000 mov eax, 03h 93 00000005 CD31 int 31h 94 95 ; write character string 96 97 00000007 BD[2D000000] mov ebp, message 98 ;mov ecx, msg_end - message 99 0000000C B9BF000000 mov ecx, m_length 100 00000011 BB0F000000 mov ebx, 0Fh ; white 101 00000016 BA00010000 mov edx, 0100h ; row 1, column 0 102 0000001B B801130000 mov eax, 1301h 103 00000020 CD31 int 31h ; int 10h 104 105 00000022 30E4 xor ah, ah 106 00000024 CD32 int 32h 107 108 ;mov eax, 03h 109 ;int 31h 110 111 sys _exit 111 <1> 111 <1> 111 <1> 111 <1> 111 <1> %if %0 >= 2 111 <1> mov ebx, %2 111 <1> %if %0 >= 3 111 <1> mov ecx, %3 111 <1> %if %0 = 4 111 <1> mov edx, %4 111 <1> %endif 111 <1> %endif 111 <1> %endif 111 00000026 B801000000 <1> mov eax, %1 111 <1> 111 0000002B CD40 <1> int 40h 112 113 ;----------------------------------------------------------------- 114 ; MESSAGE 115 ;----------------------------------------------------------------- 116 117 message: 118 0000002D 0D0A db 0Dh,0Ah 119 0000002F 5452444F5320333836- db "TRDOS 386 Video Bios Write String Test" 119 00000038 20566964656F204269- 119 00000041 6F7320577269746520- 119 0000004A 537472696E67205465- 119 00000053 7374 120 00000055 0D0A0D0A db 0Dh,0Ah,0Dh,0Ah 121 00000059 30302C30312C30322C- db "00,01,02,03,04,05,06,07,08,09,10" 121 00000062 30332C30342C30352C- 121 0000006B 30362C30372C30382C- 121 00000074 30392C3130 122 00000079 31312C31322C31332C- db "11,12,13,14,15,16,17,18,19,20,21" 122 00000082 31342C31352C31362C- 122 0000008B 31372C31382C31392C- 122 00000094 32302C3231 123 00000099 0D0A db 0Dh,0Ah 124 0000009B 412C422C432C442C45- db "A,B,C,D,E,F,G,H,I,J,K,L,M" 124 000000A4 2C462C472C482C492C- 124 000000AD 4A2C4B2C4C2C4D 125 000000B4 0D0A db 0Dh, 0Ah 126 000000B6 4E2C4F2C502C512C52- db "N,O,P,Q,R,S,T,U,V,X,W,Y,Z" 126 000000BF 2C532C542C552C562C- 126 000000C8 582C572C592C5A 127 000000CF 0D0A0D0A db 0Dh,0Ah,0Dh, 0Ah 128 000000D3 287072657373206120- db "(press a key to exit)" 128 000000DC 6B657920746F206578- 128 000000E5 697429 129 000000E8 0D0A0D0A db 0Dh,0Ah,0Dh,0Ah 130 m_length equ $ - message 131 ;msg_end: 132 000000EC 00 db 0 133 134 000000ED 4572646F67616E2054- db "Erdogan Tan - 05/12/2020 (TRDOS 386 v2.0.3)" 134 000000F6 616E202D2030352F31- 134 000000FF 322F32303230202854- 134 00000108 52444F532033383620- 134 00000111 76322E302E3329 135 00000118 00 db 0