Dear Programmers
Can you please look at if there errors and can you corrected if
there is one displayed
Thanks for your help
This is ONLY for PBDOS
------------------
Can you please look at if there errors and can you corrected if
there is one displayed
Thanks for your help
This is ONLY for PBDOS
Code:
'IDEAL 'MODEL MEDIUM, BASIC 'PUBLIC ClearEol 'CODESEG ' PROC ClearEol ' USES SI, DI ' MOV AH, 0Fh ' INT 10h ' CMP AL, 2 ' JNB @@80 ' ' MOV AX, 40 ' PUSH AX ' JMP @@getcursor '@@80: ' MOV AX, 80 ' PUSH AX '@@getcursor: ' MOV AH, 03h ' MOV BH, 00h ' INT 10h ' ' POP AX ' MOV DH, 00h ' SUB AX, DX ' PUSH AX ' MOV AH, 08h ' MOV BH, 00h ' INT 10h ' MOV BL, AH ' POP CX ' MOV AL, 32 ' MOV BH, 00h ' MOV AH, 09h ' INT 10h ' ' RET ' ENDP ClearEol 'END SUB pbClearEol() ASM mov ah, &h0f ASM int &h10 ASM cmp al, 2 ASM jnb @@80 ASM mov ax, 40 ASM push ax ASM jmp @@getcursor @@80: ASM mov ax, 80 ASM push ax @@getcursor: ASM mov ah, &h03 ASM mov bh, &h00 ASM int &h10 ASM pop ax ASM mov dh, &h00 ASM sub ax, dx ASM push ax ASM mov ah, &h08 ASM mov bh, &h00 ASM int &h10 ASM mov bl, ah ASM pop cx ASM mov al, 32 ASM mov bh, &h00 ASM mov ah, &h09 ASM int &h10 ASM ret END SUB 'IDEAL 'MODEL MEDIUM, BASIC 'PUBLIC ClrScr 'CODESEG ' PROC ClrScr ' USES SI, DI ' ' MOV AH, 0Fh ' INT 10h ' MOV AH, 00h ' INT 10h ' ' RET ' ENDP ClrScr 'END SUB pbClrScr() ASM mov ah, &h0f ASM int &h10 ASM mov ah, &h00 ASM int &h10 ASM ret END SUB 'IDEAL 'MODEL MEDIUM, BASIC 'PUBLIC Dec 'CODESEG ' PROC Dec ' ARG getal:WORD ' ' MOV AX, [WORD getal] ' DEC AX ' RET 'END SUB pbDecr(BYVAL wGetal AS WORD) ASM mov ax, [WORD wGetal] ASM dec ax ASM ret END SUB 'IDEAL 'MODEL MEDIUM, BASIC 'PUBLIC delline 'CODESEG ' PROC delline ' USES SI, DI ' ' MOV AH, 03h ' MOV BH, 00h ' INT 10h ' ' PUSH DX ' PUSH CX ' ' MOV AH, 08h ' MOV BH, 00h ' INT 10h ' POP CX ' POP DX ' MOV BL, AH ' MOV CH, DH ' MOV CL, 00 ' MOV DL, 80 ' MOV AX, 0600h ' INT 10h ' RET ' ENDP delline 'END SUB pbDelLine() ASM mov ah, &h03 ASM mov bh, &h00 ASM int &h10 ASM push dx ASM push cx ASM mov ah, &h08 ASM mov bh, &h00 ASM int &h10 ASM pop cx ASM pop dx ASM mov bl, ah ASM mov ch, dh ASM mov cl, 00 ASM mov dl, 80 ASM mov ax, &h0600 ASM int &h10 ASM ret END SUB 'IDEAL 'MODEL MEDIUM, BASIC 'PUBLIC DiskFree 'CODESEG ' PROC DiskFree ' ARG drive :WORD ' ' MOV AH, 36h ' MOV DL, [BYTE drive] ' INT 21h ' ' CMP AX, 65535 ' JNE @@disk_ok ' ' MOV AX, -1 ' MOV DX, -1 ' RET ' '@@disk_ok: ' MUL CX ' MUL BX ' ' RET ' ENDP DiskFree 'END SUB pbDiskFree(BYVAL wDrive AS WORD) ASM mov ah, &h36 ASM mov dl, [BYTE wDrive] ASM int &h21 ASM cmp ax, 65535 ASM jne @@disk_ok ASM mov ax, -1 ASM mov dx, -1 ASM ret @@disk_ok: ASM mul cx ASM mul bx ASM ret END SUB 'IDEAL 'MODEL MEDIUM, BASIC 'PUBLIC DiskSize 'CODESEG ' PROC Disksize ' ARG drive :WORD ' ' MOV AH, 36h ' MOV DL, [BYTE drive] ' INT 21h ' ' CMP AX, 65535 ' JNE @@disk_ok ' ' MOV AX, -1 ' MOV DX, -1 ' RET ' '@@disk_ok: ' MUL DX ' MUL CX ' RET ' ENDP Disksize 'END SUB pbDiskFree(BYVAL wDrive AS WORD) ASM mov ah, &h36 ASM mov dl, [BYTE wDrive] ASM int &h21 ASM cmp ax, 65535 ASM jne @@disk_ok ASM mov ax, -1 ASM mov dx, -1 ASM ret @@disk_ok: ASM mul dx ASM mul cx ASM ret END SUB 'IDEAL 'MODEL MEDIUM, BASIC 'PUBLIC DSeg 'CODESEG ' PROC DSeg ' MOV AX, DS ' RET ' ENDP DSeg 'END SUB pbDSeg() ASM mov ax, ds ASM ret END SUB 'IDEAL 'MODEL MEDIUM, BASIC 'PUBLIC GetVerify ' 'CODESEG ' PROC GetVerify ' MOV AH, 54h ' INT 21h ' MOV AH, 00h ' RET ' ENDP GetVerify 'END SUB pbGetVerify() ASM mov ah, &h54 ASM int &h21 ASM mov ah, &h00 ASM ret END SUB 'IDEAL 'MODEL MEDIUM, BASIC 'PUBLIC INC 'CODESEG ' PROC INC ' ARG getal:WORD ' MOV AX, [WORD getal] ' INC AX ' RET 'END SUB pbIncr(BYVAL wGetal AS WORD) ASM mov ax, [WORD wGetal] ASM inc ax ASM ret END SUB 'IDEAL 'MODEL MEDIUM, BASIC 'PUBLIC insline 'CODESEG ' PROC insline ' USES SI, DI ' MOV AH, 03h ' MOV BH, 00h ' INT 10h ' PUSH DX ' PUSH CX ' MOV AH, 08h ' MOV BH, 00h ' INT 10h ' POP CX ' POP DX ' MOV BL, AH ' MOV CH, DH ' MOV CL, 00 ' MOV DL, 80 ' MOV AX, 0701h ' INT 10h ' RET ' ENDP insline 'END SUB pbInsLine() ASM MOV AH, &h03 ASM MOV BH, &h00 ASM INT &h10 ASM PUSH DX ASM PUSH CX ASM MOV AH, &h08 ASM MOV BH, &h00 ASM INT &h10 ASM POP CX ASM POP DX ASM MOV BL, AH ASM MOV CH, DH ASM MOV CL, 00 ASM MOV DL, 80 ASM MOV AX, &h0701 ASM INT &h10 ASM RET END SUB 'IDEAL 'MODEL MEDIUM, BASIC 'PUBLIC KeyPressed 'CODESEG ' PROC KeyPressed ' MOV AH, 01h ' INT 16h ' JZ @@geen_toets ' MOV AX, -1 ' RET ' '@@geen_toets: ' MOV AX, 0 ' RET ' ENDP KeyPressed 'END SUB pbKeyPressed() ASM mov ah, &h01 ASM int &h16 ASM jz @@No_key ASM mov ax, -1 ASM ret @@No_Key: ASM mov ax, 0 ASM ret END SUB 'IDEAL 'MODEL MEDIUM, BASIC 'PUBLIC Odd 'CODESEG ' PROC Odd ' ARG getal:WORD ' MOV AX, [WORD getal] ' MOV DX, AX ' SHR DX, 1 ' SHL DX, 1 ' CMP AX, DX ' JE @@even ' MOV AX, -1 ' RET '@@even: ' MOV AX, 0 ' RET ' ENDP Odd 'END SUB pbOdd(BYVAL wGetal AS WORD) ASM mov ax, [WORD wGetal] ASM mov dx, ax ASM shr dx, 1 ASM shl dx, 1 ASM cmp ax, dx ASM je @@Odd ASM mov ax, -1 ASM ret @@Odd: ASM mov ax, 0 ASM ret END SUB 'IDEAL 'MODEL MEDIUM, BASIC 'PUBLIC SeekEof 'CODESEG ' PROC SeekEof ' ARG handle :WORD ' MOV AX, 4202h ' MOV CX, 0000h ' MOV DX, 0000h ' MOV BX, [WORD handle] ' INT 21h ' ' RET ' ENDP SeekEof 'END SUB pbSeekEOF(BYVAL wfHandle AS WORD) ASM mov ax, &h4202 ASM mov cx, &h0000 ASM mov dx, &h0000 ASM mov bx, [WORD wfHandle] ASM int &h21 ASM ret END SUB 'IDEAL 'MODEL MEDIUM, BASIC 'PUBLIC SeekEoln 'CODESEG ' PROC SeekEoln ' USES SI, DI ' MOV AH, 0Fh ' INT 10h ' CMP AL, 2 ' JNB @@80 ' MOV AX, 39 ' PUSH AX ' JMP @@getcursor ' '@@80: ' MOV AX, 79 ' PUSH AX '@@getcursor: ' MOV AH, 03h ' MOV BH, 00h ' INT 10h ' MOV AH, 02h ' MOV BH, 00h ' POP CX ' MOV DL, AL ' INT 10h ' RET ' ENDP SeekEoln 'END SUB pbSeekEOLN() ASM MOV AH, &h0F ASM INT &h10 ASM CMP AL, 2 ASM JNB @@80 ASM MOV AX, 39 ASM PUSH AX ASM JMP @@getcursor @@80: ASM MOV AX, 79 ASM PUSH AX @@getcursor: ASM MOV AH, &h03 ASM MOV BH, &h00 ASM INT &h10 ASM MOV AH, &h02 ASM MOV BH, &h00 ASM POP CX ASM MOV DL, AL ASM INT 10h ASM RET END SUB 'IDEAL 'MODEL MEDIUM, BASIC 'PUBLIC SetCBreak 'CODESEG ' PROC SetCBreak ' ARG flag :WORD ' MOV DX, [WORD flag] ' NEG DX ' MOV AX, 3301h ' INT 21h ' RET ' ENDP SetCBreak 'END SUB pbSetCtrlBreak(BYVAL wFlag AS WORD) ASM mov dx, [WORD wFlag] ASM neg dx ASM mov ax, &h3301 ASM int &h21 ASM ret END SUB 'IDEAL 'MODEL MEDIUM, BASIC 'PUBLIC SPTR 'CODESEG ' PROC SPTR ' MOV AX, SP ' RET ' ENDP SPTR 'END SUB pbStackPtr() ASM mov ax, sp ASM ret END SUB 'IDEAL 'MODEL MEDIUM, BASIC 'PUBLIC SSEG 'CODESEG ' PROC SSEG ' MOV AX, SS ' RET ' ENDP SSEG 'END SUB pbStackSeg() ASM mov ax, ss ASM ret END SUB
------------------
Comment