include machine.e sequence regs clear_screen() -- Int 21h Function 30h regs = repeat (0,10) -- Init registers regs[REG_AX] = #3000 -- mov AX, 3000h ==> AL=00h AH=30h regs = dos_interrupt(#21, regs) puts (1, "Using Int 20h Function 30h\n") -- This is the same as dosint.ex puts (1, "May become modified by setver command\n") puts (1, "OEM Number AL:AH = ") print (1, remainder(regs[REG_AX], #100)) puts(1,".") print (1, floor(regs[REG_AX]/#100)) regs[REG_AX] = #3001 regs = dos_interrupt(#21, regs) puts (1, "\nVer flag = ") print (1, remainder(regs[REG_AX], #100)) puts(1,".") print (1, floor(regs[REG_AX]/#100)) puts (1, "\nSerial number BL:CX = ") -- BL:CX print (1, remainder(regs[REG_BX], #100)) print (1, regs[REG_CX]) puts(1, "\nDOS on ROM = ") -- If BH = 08h DOS runs on ROM, else RAM print (1, floor(REG_BX / #100)) -- Int 21h Function 3306h puts(1, "\n\nUsing Int 21h Function 3306h") regs[REG_AX] = #3306 regs = dos_interrupt(#21, regs) puts (1, "\nVersion number : ") print (1, remainder(regs[REG_BX], #100)) puts(1,".") print (1, floor(regs[REG_BX]/#100)) puts (1, "\n") print (1, regs[REG_BX]) puts (1, "\nRevision number = ") print (1, remainder(regs[REG_DX], #100)) puts (1, "\nVersion Flags = ") print (1, floor(regs[REG_DX]/#100)) if floor(regs[REG_DX]/#1000) = 1 then puts(1,"\nDOS runs on high memory area\n\n") else puts(1,"\nDOS runs on conventional memory\n\n") end if